Ошибка рендеринга шрифта при конвертации pdf в jpg с помощью imagemagick - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть файл PDF, который я пытаюсь преобразовать в изображение jpg с помощью imagemagick на цифровом океаническом сервере с ОС Ubuntu 18.04.

Когда я делаю это на своем домашнем компьютере (ОС Ubuntu 16.04, настольная версия) преобразование выполнено успешно.

Когда я запускаю ту же команду на сервере, сгенерированное изображение имеет проблемы с отображением текста.В частности, на некоторых строках вместо текста я вижу прямоугольники, как вы можете видеть на изображении:

Error in displaying fonts.

Я полагаю, это связано с некоторыми шрифтами.Итак, я выполнил pdffonts в исходном файле PDF, который отображает:

name                                 type              encoding        emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- --------- 
Helvetica-Bold                       Type 1            WinAnsi          no  no  no       8  0
Helvetica                            Type 1            WinAnsi          no  no  no       9  0 
e42697+DejaVuSans                    TrueType          WinAnsi         yes no  yes     10  0

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

Команда, которую я использовалдля преобразования используется следующее:

convert invoice.pdf[0] -encoding WinAnsi -thumbnail 800x -background white -alpha remove -quality 95 -gravity center -format jpg jpg:out.jpg

Таким образом, вопрос заключается в следующем: есть ли способ добавить некоторые параметры в команду преобразования, чтобы избежать проблемы, или это какой-то пакет, который я могу установить на своем сервере?Я уже пробовал опции -font, но безуспешно.

Вот версии инструментов, которые я использую:

$ convert --version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 
http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib

$ ghostscript --version
9.22

Спасибо за вашу помощь.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

EDIT Я также пытался скомпилировать из исходного кода новейший imagemagick 7, но все равно происходит то же самое.

$ convert -list  configure

Path: /usr/local/lib/ImageMagick-7.0.8//config-Q16HDRI/configure.xml

Name           Value
-------------------------------------------------------------------------------
CC             gcc
CFLAGS         -I/usr/include/libxml2 -I/usr/include/libpng16  -                
I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 - 
I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux- 
gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -                
I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 - 
I/usr/include/OpenEXR  -I/usr/include/lqr-1 -I/usr/include/glib-2.0 - 
I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -I/usr/include/freetype2 - 
I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 - 
I/usr/include/freetype2 -I/usr/include/libpng16 -pthread    -fopenmp -g -O2 
-Wall -mtune=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 - 
DMAGICKCORE_QUANTUM_DEPTH=16
CODER_PATH     /usr/local/lib/ImageMagick-7.0.8/modules-Q16HDRI/coders
CONFIGURE      ./configure  '--with-gslib=yes'
CONFIGURE_PATH /usr/local/etc/ImageMagick-7/
COPYRIGHT      Copyright (C) 1999-2018 ImageMagick Studio LLC
CPPFLAGS       -I/usr/local/include/ImageMagick-7
CXX            g++
CXXFLAGS       -g -O2 -pthread
DEFS           -DHAVE_CONFIG_H
DELEGATES      bzlib djvu mpeg fftw fontconfig freetype gslib jbig jng jpeg lcms lqr lzma openexr pango png ps tiff wmf x xml zlib
DISTCHECK_CONFIG_FLAGS  --disable-deprecated  --with-quantum-depth=16  --with-jemalloc=no  --with-umem=no  --with-autotrace=no  --with-fontpath=  --with-rsvg=no  --with-perl=no
DOCUMENTATION_PATH /usr/local/share/doc/ImageMagick-7
EXEC-PREFIX    /usr/local
EXECUTABLE_PATH /usr/local/bin
FEATURES       DPC HDRI Cipher OpenMP
FILTER_PATH    /usr/local/lib/ImageMagick-7.0.8/modules-Q16HDRI/filters
GIT_REVISION   14730
HOST           x86_64-pc-linux-gnu
INCLUDE_PATH   /usr/local/include/ImageMagick-7
LDFLAGS        -L/usr/local/lib
LIB_VERSION    0x708
LIB_VERSION_NUMBER 7,0,8,11
LIBRARY_PATH   /usr/local/lib/ImageMagick-7.0.8
LIBS            -ljbig -llcms2 -ltiff -lfreetype  -ljpeg -lgs -llqr-1 - 
lglib-2.0 -lpng16 -lz  -ldjvulibre -lfftw3   -lfontconfig -lfreetype    - 
lwmflite  -lXext -lXt   -lSM -lICE -lX11  -llzma -lbz2 -lIlmImf -lImath - 
lHalf -lIex -lIexMath -lIlmThread -lpthread  -lpangocairo-1.0 -lpango-1.0 - 
lgobject-2.0 -lglib-2.0 -lcairo   -lxml2  -lz    -lm -lgomp
NAME           ImageMagick
PCFLAGS        -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 - 
DMAGICKCORE_QUANTUM_DEPTH=16
PREFIX         /usr/local
QuantumDepth   16
RELEASE_DATE   2018-09-22
SHARE_PATH     /usr/local/share/ImageMagick-7
SHAREARCH_PATH /usr/local/lib/ImageMagick-7.0.8/config-Q16HDRI
TARGET_CPU     x86_64
TARGET_OS      linux-gnu
TARGET_VENDOR  pc
VERSION        7.0.8
WEBSITE        http://www.imagemagick.org

Path: [built-in]

Name           Value
-------------------------------------------------------------------------------
FEATURES       OpenMP
NAME           ImageMagick
QuantumDepth   16

РЕДАКТИРОВАТЬ 2

Мне удалось ограничить проблему ghostscript.Теперь у меня возникает такая же проблема при выполнении следующей команды:

$ gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300 - 
sOutputFile=gs_out_300.png invoice.pdf
GPL Ghostscript 9.22 (2017-10-04)
Copyright (C) 2017 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Loading NimbusSans-Bold font from 
/usr/share/ghostscript/9.22/Resource/Font/NimbusSans-Bold... 4509328 2901747 2393680 1046799 3 done.
Loading NimbusSans-Regular font from /usr/share/ghostscript/9.22/Resource/Font/NimbusSans-Regular... 4575440 3079563 
2413880 1062624 3 done.
...