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

★★★★★

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

Возможно, что после появления таких вещей, как systemd, это выглядит не по-современному, но это UNIX way, нравится вам это или нет.

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

Затем, что это другая реализация. Evince, кстати, на GTK.

saahriktu ★★★★★
() автор топика

Не понял. Они выкинули Мотиф вообще? Он же (xpdf), вроде как, легковесным считался, или я перепутал? А остальные «чистоиксовые» проги тоже так мутируют?

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

Возможно, мне просто кажется, что unixway имеет свои границы применимости, и что его сектантское абсолютизирование приводит к маразму, где для каждого из десятков форматов электронных документов - отдельная программа. Давайте сделаем ещё отдельные плееры для mp3, для ogg, для flac

Deleted
()

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

Фууу!

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

Возможно, что после появления таких вещей, как systemd, это выглядит не по-современному, но это UNIX way, нравится вам это или нет.

Вы просто не понимаете, что такое unix way. Есть задача: просмотр документа. Разные форматы придумали люди из-за ограничений железа. И пользователю должно быть без разницы в каком формате документ. А вы предлагаете перед чтением книги изучить спецификации форматов, узнать в чем их различия, установить 100500 разных программ? Вы вообще в своем уме?

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

Не думаю, что другая сторона медали, то есть «но делать это хорошо» позволяет обвинять unixway в каком-то сектанстве: xpdf отлично развивается, и бросив непредвзятый взгляд на проект, не скажешь, что оно деградирует в старческий маразм. Несектантский характер перехода на Qt5 и на CMAKE, кстати, говорит о том же.

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

Зачем он, если есть evince, который и djvu умеет?

Не знаю как сабж, но evince жутко тормозит на 4K комиксах

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

Они выкинули Мотиф вообще?

Да. Переписав код под Qt 5.

Он же (xpdf), вроде как, легковесным считался, или я перепутал?

Да. Так и было. До этой версии он был на Motif'е.

А остальные «чистоиксовые» проги тоже так мутируют?

Какие как. В ряде развивающихся софтин поддержка Motif'а/Xaw/Athena/etc пока ещё сохраняется. Другие, вот, переходят на комбайновые тулкиты.

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

Возможно, xpdf не лучше okular в чем-то. Но IMHO не стоит делать идол и из одного, и из другого. Если есть предпочтение, то просто пользуйтесь чем вам удобней и продуктивней. Как-то так.

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

xpdf, например, не падает, как Okular на рандомных PDF'ках:

-- Backtrace:
Application: Okular (okular), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#6  0x00007f80291c35b1 in KSycocaEntry::name() const () at /usr/lib64/libkdecore.so.5
#7  0x00007f801a01a3f2 in  () at /usr/lib64/libokularcore.so.7
#8  0x00007f801a01c02e in Okular::Document::exportFormats() const () at /usr/lib64/libokularcore.so.7
#9  0x00007f801a310581 in Okular::Part::openFile() () at /usr/lib64/kde4/okularpart.so
#10 0x00007f802aea8fa7 in  () at /usr/lib64/libkparts.so.4
#11 0x00007f802aeaa58e in KParts::ReadOnlyPart::openUrl(KUrl const&) () at /usr/lib64/libkparts.so.4
#12 0x00007f801a30501b in Okular::Part::openUrl(KUrl const&) () at /usr/lib64/kde4/okularpart.so
#13 0x000000000040fe84 in _start ()
EXL ★★★★★
()

и вместо Motif'а на Qt 5.

Значит xpdf не умрёт.

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

Над этим только ржать можно

Разжижение мозга это не смешно

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

Возможно, xpdf не лучше okular в чем-то

Внезапно, unixway сам по себе не даёт качество кода

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

А причём тут отказ от Qt4 в дистрибутиве с протухшим на 6 месяцев софтом в момент релиза. Там же с Motif на Qt5, а не с 4 на 5. Ежу понятно что никто бы не стал использовать Qt4 в качестве тулкита для нового проекта (ну или для смены тулкита).

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

По отдельной программе на формат тоже имеет право на существование. Не всем нужны сотни форматов, и может быть удобнее юзать несколько отдельных заточенных программ, чем менее удобные комбайны.

отдельные плееры для mp3, для ogg, для flac

Уже есть: mpg123, ogg123 и flac123.

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

Это удобно если у тебя какой-нибудь киоск, в котором надо играть мелодию.

Интересно busybox с кучей симлинков это юниксвей?

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

Оно крашится рандомно, нет определённой PDF. Закономерность так и не могу выявить.

P.S. проверь PDF-ку по ссылке fornlr, у него там другой случай (с формами в PDF), но тоже креш. Возможно, до сих пор не исправили.

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

Не так страшен юникс вей, как тот, кто его понял.

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

У меня эта пдфка очень медленно отрисовывается, но ничего не падает. И вообще не помню, чтобы okular когда-нибудь падал, сколько лет им пользуюсь.

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

проверь PDF-ку по ссылке fornlr, у него там другой случай (с формами в PDF), но тоже креш

Открывает без проблем

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

Где-то в ~2011-2012 годах. Тогда маинтейнеры Генты посчитали свежий xpdf слишком бажным и устаревшим, утверждали что после того, как от него форкнулась библиотека Poppler, оригинальный xpdf больше никому не нужен. Были даже попытки переписать xpdf на Poppler. Но, в итоге, через 5 лет xpdf выплыл своим ходом.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)

скатываемся в УГ :-(

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

Нет альтернатив.

Эта штука рендерит все, всегда и нереально быстро. Попробуй чем нибуть другим открыть тяжолую pdf-ку тысяч на семь страниц со смесью графики и китайских иероглифов. А теперь откройте еще несколько аналогичных и попробуйте полистать.

Мне такое требуется если нужно сравнить какието особенности близких моделей новых процессоров.

Акробат после продолжительного колдунства откроет, но листать - это только xpdf. Все остальное обычно не в состоянии даже открыть.

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