PDFBox convertToImage не изобразява правилно някои PDF файлове

Използвам метода PDPage.convertToImage() на PDFBox, за да конвертирам страници от зареден PDF файл в изображения. Работи добре за някои PDF файлове, но ми дава грешки на конзолата за много файлове, които след това не се изобразяват правилно на екрана - липсват изображения и текст.

Dec 31, 2013 7:15:34 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: EI
Dec 31, 2013 7:15:34 PM org.apache.pdfbox.pdmodel.font.PDTrueTypeFont getawtFont
INFO: Using font SansSerif.plain instead

Dec 31, 2013 7:02:15 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: i

Зареждането на файла се извършва просто с помощта на:

PDDocument pdfDoc = PDDocument.load(file);
List<PDPage> pages = pdfDoc.getContent().getDocumentCatalog().getAllPages();
PDPage page = pages.get(pageNo);
page.convertToImage();

Опитах да използвам loadNonSeq() вместо load(), но това не помогна. Има ли нещо, което трябва да направя с PDFStreamEngine, за да му позволя да обработва тези PDF файлове? Не съм сигурен дали четецът всъщност не може да изобрази тези или функционалността трябва да бъде активирана по някакъв начин.


person LadyBernkastel    schedule 31.12.2013    source източник
comment
EI означава край на вградено изображение. Това може да обясни липсващите изображения. Замяната на шрифта означава, че някои шрифтове не са налични или не могат да бъдат прочетени. Това може да доведе до липсващ текст. Подробности вероятно могат да бъдат разказани, след като предоставите примерен PDF файл.   -  person mkl    schedule 01.01.2014
comment
В допълнение: i дефинира толеранса на изравняване на кривата, така че това едва ли е критичен проблем тук. Странно: грешката предполага BI изглежда внедрена, но EI не е -- освен ако вашият PDF не е деформиран! За общ (европейски..) текст заместващият шрифт не трябва да води до липсващ текст.   -  person Jongware    schedule 01.01.2014
comment
Качих тук файл, който не се изобразява правилно: mega.co.nz/   -  person LadyBernkastel    schedule 01.01.2014
comment
Всичко, което получавам, са някои от редовете около текста и заглавките, не се изобразява никакъв текст.   -  person LadyBernkastel    schedule 01.01.2014
comment
@LadyRacheya За съжаление не добавихте етикет за известяване към коментара си, така че не бях виждал файла ви преди днес. Това беше казано, току-що преобразувах вашия PDF в изображение с помощта на page.convertToImage(), но получих само неподдържана/деактивирана операция: i информация, не и другите, и изображенията изглеждат според очакванията. По този начин може да е проблем или във вашата версия на PDFBox (тествам с trunk, т.е. 2.0.0-SNAPSHOT, който трябва да е практически идентичен с 1.8.4 в това отношение), или в средата за изпълнение (jdk 1.7, не без глава, в среда на MS Windows).   -  person mkl    schedule 23.01.2014
comment
@mkl Това е странно, просто няма текст за мен, въпреки че получавам само неподдържаната/забранена операция: i информация. Използвам PDFBox 1.8.3, тъй като просто изтеглих най-новия буркан, който можах да намеря, и същата настройка (jdk 1.7, windows и др.).   -  person LadyBernkastel    schedule 24.01.2014
comment
Казвате, че сте изтеглили най-новия буркан. Това ме кара да приема, че не използвате maven за автоматично зареждане на необходимите допълнителни библиотеки. Следователно трябва да добавите зависимостите ръчно. И така, включихте ли компонентите fontbox и jempbox в пътя на вашия клас?   -  person mkl    schedule 24.01.2014
comment
@mkl Не съм използвал Maven. Нямах правилните jar файлове, но след като ги добавих в classpath, той все още не работи. Въпреки това ще продължа да го разглеждам.   -  person LadyBernkastel    schedule 26.01.2014
comment
Глифовете не се показват с издадената версия (1.8.7), но се показват с неиздадената версия (2.0.0), която можете да получите със svn. Пуснатите версии не могат да показват определени шрифтове тип1 :-(   -  person Tilman Hausherr    schedule 17.10.2014


Отговори (2)


Вашият проблем е решен в предишната ми публикация с отговор, като използвате PDFRender jar е възможно.

Как да увелича разделителната способност на изображение в PDF рендър?.

Публикуваният Въпрос преобразува само първата страница на PDF, а Отговорът преобразува всички страници на PDF във формат на изображение.

person UdayKiran Pulipati    schedule 12.01.2014

опитайте fontbox jar от тук http://mvnrepository.com/artifact/org.apache.pdfbox/fontbox/1.8.5

или използвайте хранилището на maven..

person rj27    schedule 25.02.2016