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

★★★★★

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

После удаления из официального репозитория xpdf некоторое время был в оверлее rebutia: https://gpo.zugaina.org/Overlays/rebutia/app-text/xpdf . Обновление 2014-го года туда уже не пришло. А тут уже следующая версия.

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

Да, выше в топике про это писали. Но теперь то есть повод вернуть его обратно

sehellion ★★★★★
()

Теперь он собирается при помощи cmake и вместо Motif'а на Qt 5.

Удивительно. Сто двадцать пять очков Гриффиндору разработчикам xpdf за борьбу с маразматичным легаси.

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

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

На моих тяжелых PDFках только Foxit Reader нормально себя проявляет. xpdf тоже весьма тормозит.

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

И в чём же окуляр глючит? На моей памяти - самый адекватный просмотрщик, читает даже то, что крашит всякие евайнцы и атрилы. Да и форматов кучу поддерживает.

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

кстати да. не так давно открыл книгу в пдф она 40 секунд в лучшем случае открывалась и потом тормозила. не знал, что фоксит есть под онтоп, надо ставить +).

под сабж - в нём был смысл при мотифе, без него под линукс есть тонна кривых пдф смотрелок, так что xpdf теперь не нужен.

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

Для отсканированных книг и документов DJVU гораздо адекватнее чем PDF. При том же качестве размер файла получается гораздо меньше. Именно поэтому существует такая утилита как pdf2djvu. Да и по всему интернету тонны готовых DJVU файлов.

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

Существует технология MRC (Mixed Raster Content), которая приближает возможности PDF к возможностям формата DjVu по хранению сканированных изображений с текстом.

По-моему, проще протолкнуть это и закопать djvu окончательно.

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

Менее универсально. В том и дело, что MRC подходит только для документов с текстом. А если посреди книги начинают встречаться карты, схемы,... и другие картинки, то тут MRC уже не работает. Это всё в лучшем случае будет обычными жирными картинками. А DJVU прекрасно подходит для любых сканированых вещей, в т.ч. и комиксов.

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

CBR

Он жирный. Это просто картинки в RAR'е. Конвертирование в DJVU сильно уменьшает размер файлов.

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

Ну все, больше в линупсе нет легковесной и шустрой читалки. Спасибо, хипстота поганая за ваши культи.

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

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

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

Ну, предыдущую версию никто пока ещё не закапывал. Можно юзать именно её. Но, нового функционала там уже не будет.

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

Сто двадцать пять очков Гриффиндору разработчикам xpdf за борьбу с маразматичным легаси.

Съешь еще этих мягких гейских булок, да выпей яду.

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

Ну, предыдущую версию никто пока ещё не закапывал. Можно юзать именно её.

Так геи все повыкинут из дистров. Если Qt4 выкидывают из дебиана, я уже и не знаю как это назвать. Просто разгул содомии захлестнул это ваше сообщество.

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

А так то да, можно самому тащить старые версии, и вообще lfs собирать. Но это локалхост-онли. На предприятии линупс я буду развнедрять, задолбали.

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

Чтобы evince было откуда брать код для рендерига PDF.

Я не в тренде моды последних лет, но разве poppler не для этого сделан?

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

Так это Debian испортился. И, да, даже юзерам Debian'а никто не мешает собирать свои версии пакетов и везде их разворачивать.

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

Вот, кстати, можете сравнить вывод ldd:

        linux-vdso.so.1 (0x00007ffc96f17000)
	libQt5Widgets.so.5 => /usr/lib64/libQt5Widgets.so.5 (0x00007f9f9da79000)
	libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f9f9d7dd000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9f9d5bf000)
	libQt5Gui.so.5 => /usr/lib64/libQt5Gui.so.5 (0x00007f9f9ce8c000)
	libQt5Core.so.5 => /usr/lib64/libQt5Core.so.5 (0x00007f9f9c7b5000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f9f9c439000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f9f9c130000)
	libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f9f9bf19000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f9f9bb53000)
	libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f9f9b8ea000)
	libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f9f9b66a000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f9f9b332000)
	libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f9f9b122000)
	libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f9f9aef0000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f9f9acdb000)
	/lib64/ld-linux-x86-64.so.2 (0x0000559024d2c000)
	libicui18n.so.56 => /usr/lib64/libicui18n.so.56 (0x00007f9f9a84a000)
	libicuuc.so.56 => /usr/lib64/libicuuc.so.56 (0x00007f9f9a4b2000)
	libicudata.so.56 => /usr/lib64/libicudata.so.56 (0x00007f9f98acd000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f9f988c5000)
	libpcre2-16.so.0 => /usr/lib64/libpcre2-16.so.0 (0x00007f9f98656000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f9f98452000)
	libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f9f98251000)
	libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f9f98028000)
	libxcb-dri3.so.0 => /usr/lib64/libxcb-dri3.so.0 (0x00007f9f97e24000)
	libxcb-present.so.0 => /usr/lib64/libxcb-present.so.0 (0x00007f9f97c22000)
	libxcb-randr.so.0 => /usr/lib64/libxcb-randr.so.0 (0x00007f9f97a16000)
	libxcb-xfixes.so.0 => /usr/lib64/libxcb-xfixes.so.0 (0x00007f9f97810000)
	libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007f9f97607000)
	libxcb-shape.so.0 => /usr/lib64/libxcb-shape.so.0 (0x00007f9f97404000)
	libxcb-sync.so.1 => /usr/lib64/libxcb-sync.so.1 (0x00007f9f971fd000)
	libxshmfence.so.1 => /usr/lib64/libxshmfence.so.1 (0x00007f9f96ffb000)
	libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007f9f96dcc000)
	libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f9f96bca000)
	libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f9f969c4000)
	libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f9f967c3000)
	libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007f9f965ab000)
	libxcb-dri2.so.0 => /usr/lib64/libxcb-dri2.so.0 (0x00007f9f963a7000)
	libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f9f961a2000)
	libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f9f95f90000)
	libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f9f95c53000)
	libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f9f95a34000)
	libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f9f9582f000)
	libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f9f9562a000)
	libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f9f9541c000)
	libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f9f951eb000)

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

Не то, чтобы хардкод. Там чёрным по белому написано, что xpdf зависит от шрифтов ghostsript'а. strace показывает, что ситуация не изменилась:

open("/usr/share/ghostscript/fonts/n022003l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n022004l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n022024l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n022023l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n019003l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n019004l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n019024l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n019023l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/s050000l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n021004l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n021024l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n021023l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/n021003l.pfb", O_RDONLY) = 6
close(6)                                = 0
open("/usr/share/ghostscript/fonts/d050000l.pfb", O_RDONLY) = 6
close(6)

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

Причем к unixway этот бред никакого отношения не имеет.

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

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

Если не было, то через 20 лет будет одна 0сь и один фреймворк, GTK будут закапывать.
Будет один большой, цветастый, красивый и функциональный зонд.

xwicked ★★☆
()
Последнее исправление: xwicked (всего исправлений: 1)
Ответ на: комментарий от EXL

Кстати забавно, у меня после openFile() другой трейс. Все растет корнями в libpoppler:

#0  MediaRendition::copy (this=0x0) at Rendition.cc:390
#1  0x00007fffd1bb8e38 in Poppler::PageData::convertLinkActionToLink (a=0xc8d9f0, parentDoc=<optimized out>, linkArea=...) at poppler-page.cc:208
#2  0x00007fffd1bdc77f in Poppler::FormField::activationAction (this=this@entry=0xd519d0) at poppler-form.cc:149
#3  0x00007fffd1e41990 in PopplerFormFieldButton::PopplerFormFieldButton (this=0xd63480, field=0xd519d0) at /workspace/build/generators/poppler/formfields.cpp:36
#4  0x00007fffd1e3cc18 in PDFGenerator::addFormFields (this=this@entry=0xb8e840, popplerPage=popplerPage@entry=0xbc3470, page=page@entry=0xd50a50)
    at /workspace/build/generators/poppler/generator_pdf.cpp:1628
#5  0x00007fffd1e3dedd in PDFGenerator::loadPages (this=this@entry=0xb8e840, pagesVector=..., rotation=rotation@entry=0, clear=clear@entry=false)
    at /workspace/build/generators/poppler/generator_pdf.cpp:658
#6  0x00007fffd1e3e457 in PDFGenerator::init (this=this@entry=0xb8e840, pagesVector=..., password=...) at /workspace/build/generators/poppler/generator_pdf.cpp:583
#7  0x00007fffd1e3e603 in PDFGenerator::loadDocumentWithPassword (this=0xb8e840, filePath=..., pagesVector=..., password=...) at /workspace/build/generators/poppler/generator_pdf.cpp:538
#8  0x00007fffd6dc6961 in ?? () from /usr/lib/x86_64-linux-gnu/libOkular5Core.so.7
#9  0x00007fffd6dc6e34 in Okular::Document::openDocument(QString const&, QUrl const&, QMimeType const&, QString const&) () from /usr/lib/x86_64-linux-gnu/libOkular5Core.so.7
#10 0x00007fffd70d432e in Okular::Part::doOpenFile (this=this@entry=0x72a070, mimeA=..., fileNameToOpenA=..., isCompressedFile=isCompressedFile@entry=0x7fffffffd59f)
    at /workspace/build/part.cpp:1292
#11 0x00007fffd70d56e6 in Okular::Part::openFile (this=0x72a070) at /workspace/build/part.cpp:1414
#12 0x00007ffff7b97001 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Parts.so.5
#13 0x00007ffff7b97f0c in KParts::ReadOnlyPart::openUrl(QUrl const&) () from /usr/lib/x86_64-linux-gnu/libKF5Parts.so.5
#14 0x00007fffd70c79d9 in Okular::Part::openUrl (this=0x72a070, _url=...) at /workspace/build/part.cpp:1567
#15 0x00000000004127dc in Shell::openUrl (this=this@entry=0x731b10, url=..., serializedOptions=...) at /workspace/build/shell/shell.cpp:277
#16 0x00000000004150a6 in Shell::openDocument (this=this@entry=0x731b10, url=..., serializedOptions=...) at /workspace/build/shell/shell.cpp:218
#17 0x00000000004151d6 in Shell::openDocument (this=this@entry=0x731b10, url=..., serializedOptions=...) at /workspace/build/shell/shell.cpp:205
#18 0x000000000040c0bf in Okular::main (paths=..., serializedOptions=...) at /workspace/build/shell/okular_main.cpp:170
#19 0x000000000040bac3 in main (argc=2, argv=<optimized out>) at /workspace/build/shell/main.cpp:69

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

unix-way разрабатывался в догуёвую эпоху. Если же переносить на gui, то написание для каждого формата отдельной программы со своим интерфейсом — это не unix-way. Вот писать отдельно gui для читалки, отдельно движки для форматов — это уже больше на unix-way похоже.

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

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

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

Так геи все повыкинут из дистров. Если Qt4 выкидывают из дебиана, я уже и не знаю как это назвать.

Так иди в мантейнеры и поддерживай Qt4. Тебе все карты в руки. Это оупенсорс, тут тебе никто ничего не должен. И если у мантейнеров нет сил и желания поддерживать мертвый тулкит - это не их проблемы.

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

Это оупенсорс, тут тебе никто ничего не должен.

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

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

Вот писать отдельно gui для читалки, отдельно движки для форматов — это уже больше на unix-way похоже

Ммм, прямо как в Zathura.

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

Кстати - спасибо, прикольная штука. Хотя:

(zathura:11699): GLib-CRITICAL **: g_key_file_set_value: assertion 'g_key_file_is_group_name (group_name)' failed

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

Не знаю что я делаю не так но на моих файлах xpdf-3.04 по скорости открытия заруливает и Zathura и FoxitReader. Одна, две и три секунды соответсвенно. Железо XPS-13. Ubuntu 16.04

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