[英]How to create image from PDF using PDFBox in JAVA
我想從PDF的第一頁創建一個圖像。 我正在使用PDFBox。 在網上研究后,我發現了以下代碼片段:
public class ExtractImages
{
public static void main(String[] args)
{
ExtractImages obj = new ExtractImages();
try
{
obj.read_pdf();
}
catch (IOException ex)
{
System.out.println("" + ex);
}
}
void read_pdf() throws IOException
{
PDDocument document = null;
try
{
document = PDDocument.load("H:\\ct1_answer.pdf");
}
catch (IOException ex)
{
System.out.println("" + ex);
}
List<PDPage>pages = document.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator();
int i =1;
String name = null;
while (iter.hasNext())
{
PDPage page = (PDPage) iter.next();
PDResources resources = page.getResources();
Map pageImages = resources.getImages();
if (pageImages != null)
{
Iterator imageIter = pageImages.keySet().iterator();
while (imageIter.hasNext()) {
String key = (String) imageIter.next();
PDXObjectImage image = (PDXObjectImage) pageImages.get(key);
image.write2file("H:\\image" + i);
i ++;
}
}
}
}
}
在上面的代碼中沒有錯誤。 但是這段代碼的輸出都沒有。 我原以為上面的代碼會生成一系列將保存在H盤中的圖像。 但是,從該代碼生成的代碼中沒有圖像。 為什么?
不試圖粗魯,這就是你在其主要工作循環中發布的代碼:
PDPage page = (PDPage) iter.next();
PDResources resources = page.getResources();
Map pageImages = resources.getImages();
它從PDF文件獲取每個頁面,從頁面獲取資源,並提取嵌入的圖像 。 然后它將這些寫入磁盤。
如果您要成為一名稱職的軟件開發人員,您需要能夠研究和閱讀文檔。 使用Java,這意味着Javadocs。 谷歌搜索PDPage
(或顯式轉到Apache網站) 為PDPage打開了Javadoc 。
在該頁面上,您可以找到用於將PDPage
轉換為圖像的方法convertToImage()
兩個版本。 問題解決了。
除了 ...
不幸的是,他們返回一個java.awt.image.BufferedImage
,它基於您提出的其他問題是一個問題,因為Android平台不支持您正在處理的問題。
簡而言之,你不能在Android上使用Apache的PDFBox來做你想做的事情。
在StackOverflow上搜索,您會發現同樣的問題以不同的形式多次提出,這將引導您: https : //stackoverflow.com/questions/4665957/pdf-parsing-library-for-android/4766335#4766335,其中包含以下內容:你會感興趣的答案: https : //stackoverflow.com/a/4779852/302916
不幸的是,即使是上述答案所說的那個也會起作用......對用戶不是很友好; 我找不到“如何”或文檔。 它也被標記為“alpha”。 這可能不適合虛假的事情,因為它需要閱讀和理解他們的代碼甚至開始使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.