我正在尝试向用户显示生成的pdf。我正在使用iText生成pdf。我创建了pdf。现在我想查看pdf。我正在尝试将pdf转换为图像并显示给用户。
public void makeImageFromPDF() throws DocumentException, IOException {
String INPUTFILE = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/iText/sample.pdf";
String OUTPUTFILE = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/iText/sample1.pdf";
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(OUTPUTFILE));
document.open();
System.out.println("............1");
System.out.println("............INPUTFILE==> "+INPUTFILE);
PdfReader reader = new PdfReader(INPUTFILE);
System.out.println("............2");
int n = reader.getNumberOfPages();
PdfImportedPage page;
for (int i = 1; i <= n; i++) {
page = writer.getImportedPage(reader, i);
Image instance = Image.getInstance(page);
byteArray = reader.getPageContent(1);
}
document.close();
}
但我收到运行时错误PDF header signature not found
。
我在这一行得到了他的错误。PdfReader reader = new PdfReader(INPUTFILE);
。
请告诉我如何解决此问题。让我以任何其他方式查看pdf。
04-04 09:24:29.326: W/System.err(12102): java.io.IOException: PDF header signature not found.
04-04 09:24:29.326: W/System.err(12102): at com.iText.text.pdf.PRTokeniser.checkPdfHeader(PRTokeniser.java:201)
04-04 09:24:29.326: W/System.err(12102): at com.iText.text.pdf.PdfReader.readPdf(PdfReader.java:490)
04-04 09:24:29.326: W/System.err(12102): at com.iText.text.pdf.PdfReader.<init>(PdfReader.java:165)
04-04 09:24:29.337: W/System.err(12102): at com.iText.text.pdf.PdfReader.<init>(PdfReader.java:154)
04-04 09:24:29.337: W/System.err(12102): at com.example.MainActivity.makeImageFromPDF(MainActivity.java:283)
04-04 09:24:29.337: W/System.err(12102): at com.example.MainActivity.NewDesingTest(MainActivity.java:262)
04-04 09:24:29.337: W/System.err(12102): at com.example.MainActivity.createNewPdf(MainActivity.java:131)
04-04 09:24:29.337: W/System.err(12102): at com.example.MainActivity$1.onClick(MainActivity.java:81)
04-04 09:24:29.337: W/System.err(12102): at android.view.View.performClick(View.java:4204)
04-04 09:24:29.337: W/System.err(12102): at android.view.View$PerformClick.run(View.java:17355)
04-04 09:24:29.347: W/System.err(12102): at android.os.Handler.handleCallback(Handler.java:725)
04-04 09:24:29.356: W/System.err(12102): at android.os.Handler.dispatchMessage(Handler.java:92)
04-04 09:24:29.356: W/System.err(12102): at android.os.Looper.loop(Looper.java:137)
04-04 09:24:29.356: W/System.err(12102): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-04 09:24:29.367: W/System.err(12102): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 09:24:29.376: W/System.err(12102): at java.lang.reflect.Method.invoke(Method.java:511)
04-04 09:24:29.376: W/System.err(12102): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-04 09:24:29.386: W/System.err(12102): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-04 09:24:29.386: W/System.err(12102): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
您没有将文件名传递给Document构造函数,因此它创建了一个没有信息的新文档。所以它没有标题。如果您正在阅读pdf文件以将其转换为图像,则根本不需要pdf编写器。你的代码真的很困惑。
摆脱文档以及PdfWriter的所有提及。用PdfReader
做部件