LINUX.ORG.RU
ФорумTalks

Вышел xpdf 4.00 - теперь на Qt 5

 ,


3

2

Тихо и незаметно вышел новый xpdf 4.00 со значительными изменениями. Теперь он собирается при помощи cmake и вместо Motif'а на Qt 5.

4.00 (2017-aug-10)
------------------
Complete rewrite of the xpdf GUI, using Qt instead of Motif.
Multithreaded rasterization in the viewer - pages are now rasterized
  in a separate thread so that scrolling and other UI activity is not
  blocked.
Added a linear text selection mode.
Limit transparency groups to the clip rectangle (performance
  optimization).
Optimized the SplashScreen code, used in 1-bit monochrome mode.
Added setmode calls to pdftopng, when writing to stdout on Windows.
  [Thanks to Robert Schroll.]
Regenerate the appearance stream for an AcroForm field if there is
  no appearance stream, even if NeedAppearances isn't set.
When regenerating AcroForm field appearance streams, use a default
  font (Helvetica) for fields that don't have a valid font.
When the line width is increased by the minLineWidth setting, force
  the line join mode to "bevel" to avoid "whiskers" at sharp corners.
Change the pdftoppm/pdftopng resolution (-r) argument from an integer
  to floating point.
Use the FontDescriptor 'CapHeight' value in place of 'Ascent' if it's
  available.
OC (optional content) entries in image XObjects were being ignored.
Added support for preblended soft-masked images.
Added optional support for using libjpeg to decode DCT (JPEG)
  streams.
Transparency groups weren't being composited correctly in mono1 mode.
Switched to a different IDCT transform in the DCT (JPEG) decoder, to
  get better accuracy; the new transform is also a bit faster.
Modified the polygon scan converter to avoid O(n^2) performance, which
  can get really bad with paths that have extremely large numbers of
  segments.
Added the maxTileWidth, maxTileHeight, tileCacheSize, and
  workerThreads xpdfrc settings.
Modified PSOutputDev so it doesn't output resources (fonts, etc.) for
  pages that are rasterized (because they use transparency).
Added the -alpha flag to pdftopng.
Handle TrueType fonts with out-of-bounds loca entries.
Optimize consectutive "q" (gsave) operations in PostScript output.
Various improvements to the XFA rendering code.
Added the -nodiag flag to pdftotext.
Switched to cmake instead of autoconf.
Look for Widget-type annotations that aren't attached to the
  AcroForm, and add them to the AcroForm.
Added the "-z" option to pdftohtml.
The JPEG 2000 decoder now treats invalid boxes after the image
  codestream as non-fatal errors.
Improved the handling of drop caps in pdftohtml.
Added the "psNeverRasterize" setting.
Pdftohtml now converts invisible PDF text to transparent HTML text.
Check for zero-width/height bitmaps in the JBIG2 decoder -- these can
  happen in corrupted JBIG2 streams.
Pdfimages was inverting 1-bit monochrome images.
Added CCITTFaxStream::getBlock() to speed up the CCITTFax decoder.
Added resolution info to PNG files generated by pdftopng.
The DCT decoder now ignores non-Adobe APP14 markers (rather than
  generating an error).
Regenerate appearance streams for FreeText annotations.
The TextString class now handles UTF-16LE in addition to UTF-16BE.
  (UTF-16LE isn't allowed by the PDF spec, but I've seen it used.)
Added the simple one-column text extraction mode (pdftotext -simple).
Added a -cmyk option to pdftoppm to write CMYK PAM files.
Modified pdfinfo to output "static XFA" or "dynamic XFA", rather than
  just "XFA".
Added the "drawFormFields" xpdfrc command.
Various performance optimizations in the rasterizer.
Fixed the tiling pattern code to avoid stripes between pattern cells,
  and to honor the TilingType flag.
Always split axial shadings into 256 slices.
Handle the case where an optional content block is left open at the
  end of a page content stream.
Accept code-to-CID-type CMaps as ToUnicode CMaps (to work around buggy
  PDF generators).
Unicode-to-unicode maps weren't working correctly with fonts that have
  an "Identity" encoding.
Modify the lexer to interpret "--123.4" as -123.4, "--123" as 0, and
  "123-45" as "123" to match Adobe's behavior.
The text extractor now reverses the order of side-by-side columns for
  right-to-left scripts.
Worked on right-to-left script support in pdftohtml (still not
  complete).
Switched the default display mode to continuous (from single page).
Added the "-bom" switch to pdftotext.
Share font objects when multiple font tags point to the same object.
The transfer function goes before alpha blending in the rasterizer
  pipeline.
Added the "-allinvisible" switch to pdftohtml.
Added overprint mode (OPM) support in Level 3 PostScript output.
Added support for DeviceN color spaces in Level 3 PostScript output.
Added the "-userunit" option to pdftops.
Added the "-raw" and "-list" options to pdfimages.
Pdfimages now writes PGM files (instead of PPM files) for DeviceGray
  and CalGray images.
Added grayscale PostScript output -- added the '-level2gray' and
  '-level3gray' switches to pdftops.
Fix up Type 1 fonts when embedding in PostScript.
Added the "problematic" column to pdffonts output.
Generate an appearance stream for signature fields in AcroForms.
Correctly handle line dash patterns with zero-length segments when the
  line cap is butt or project.
Added the "strokeAdjust cad" xpdfrc option; fixed some issues with
  stroke adjustment and projecting line caps.
Added support for Code128B bar codes in XFA forms.
Look at both the ON and OFF arrays in the default OCCD (optional
  content config dict), to work around certain broken PDF files.
Added support for XFA 'numericEdit' fields.
Added support for 'picture' formatting in XFA forms.
Added mouseClickN events (in addition to mousePressN and
  mouseReleaseN).
External CID OpenType CFF fonts should map through Unicode (similarly
  to external CID TrueType fonts).
Handle axial and radial shadings in SplashOutputDev, in device space.
Use the PDF 2.0 inline image length field.
Handle duplicate embedded Type 1 font names in PostScript output.
Handle the case of a stroked closed path with a dash pattern -- if the
  dash pattern is "on" at both the start and end of a subpath, it
  should be joined.
If the line dash phase is negative, add a multiple of 2x the total
  dash length.
Indexed color space indexes should be clipped to [0,hival].
Fix the handling of the text render mode with Type 3 fonts, in the
  rasterizer and in PostScript output.
CID font metrics shouldn't be sorted - the PDF 2.0 spec says that, in
  the case of duplicate entries, the first entry should be used.
PSOutputDev now converts tiling patterns to PostScript tiling patterns
  (in Level 2/3).
Fixed a security hole in SecurityHandler.cc (uninitialized variables).
  This vulnerability was discovered by Kushal Shah of Fortinet's
  FortiGuard Labs.
Fixed a security hole in Function.cc (write past end of array).
Fixed a security hole with the use of d0/d1 operators outside of a
  Type3 CharProc [CVE-2016-9027].

Скачать: http://www.xpdfreader.com/dl/xpdf-4.00.tar.gz
Слакбилд: https://github.com/saahriktu/modified-slackbuilds/tree/master/xpdf
Готовый пакет для Slackware x86_64: https://yadi.sk/d/Af8BkZq23MAntQ

★★★★★
Ответ на: комментарий от saahriktu

qpdfview использует библиотеку Poppler. У xpdf'а своя реализация. Poppler, конечно, форкнули от xpdf'а, но уже давно.

Poppler до сих пор код оттуда притыривает.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от cvv

Комиксы в HQ про цветных лошадей заметно притормаживают.

Комиксы про Deus (файл DXU_THE_DAWNING_DARKNESS.pdf) xpdf листает этак по три секунды. Жестко тормозит.

Тот же Foxit не то что бы моментально, но намного бодрее - раз в шесть быстрее.

fornlr ★★★★★
()
Ответ на: комментарий от fornlr

Okular её открывает. 5-6 секунд думает.

Deleted
()
Ответ на: комментарий от bread

Насколько сабж маленьк и шустёр после перехода на Qt? Если так же шустёр, почему нельзя ту же морду прикрутить к читалке djvu?

te111011010
()
Ответ на: комментарий от fornlr

Поигрался с xakep_07_2015_digital_optimized.pdf

xpdf открыл нормально - листал в среднем полторы секунды на страницу в режиме «fit page»

zathura тоже открыл нормально, листал немного медленее. Наверное два секунды на страничку.

FoxitReader открыл нормально но при листании свалился с double free/memory corruption.

evince - открыл нормально, но при попытке листать ушел в себя и не вернулся.

cvv ★★★★★
()
Ответ на: комментарий от fornlr

okular объективно быстрее работает на сложных pdfах.

thunar ★★★★★
()
9 ноября 2017 г.

и нахрен он нужен на qt5? ценность xpdf была в том, что он на motif, запускался даже на швейных машинках

buratino ★★★★★
()
Ответ на: комментарий от buratino

Motif - это, конечно, хорошо, однако, и Qt 5 вполне работает даже на Raspberry Pi. А на Raspberry Pi 3 он даже собирается из исходников. Без qtwebengine, но собирается.

saahriktu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.