Tag: pdf

如何使用自定义字体从servlet使用iText + XMLWorker创建PDF?

使用iText / XMLWorker示例(主要是这一个 ),我可以轻松编写能够使用我自己的额外字体从HTML代码创建PDF文件的简单应用程序,但是一旦尝试在某些Web服务代码中使用我的东西,我就结束了例外: Table ‘name’ does not exist in file:/C:/work/MyServer/target/classes/fonts/My%20Font.ttf ExceptionConverter: com.itextpdf.text.DocumentException: Table ‘name’ does not exist in file:/C:/work/MyServer/target/classes/fonts/My%20Font.ttf …似乎指出在Web服务上下文中,无法按预期加载字体文件。 这是我的大部分代码: public HtmlRenderer(final String css, final String[] fontPaths) { // fontPaths = { // “/fonts/My Font.ttf”, // “/fonts/My Other Font.ttf”, // … // }; // CSS cssResolver = new StyleAttrCSSResolver(); if (css != null) […]

如何在Java中将ppt文件转换为pdf文件?

我想将MS powerpoint(ppt)文档转换为PDF。 我搜索了像officetools.jar这样的officetools.jar ,但这需要购买。 有没有什么办法可以通过itext和apache POI转换它,就像我们为doc做PDF一样?

将A4 PDF页面拆分为两个A5并再次返回

我有A4页面的PDF。 出于打印原因,每个页面包含两个相同的A5页面。 我想在我的Java程序中做的是拆分这些页面并使用每个唯一的A5页面零次多次作为模板添加/替换一些文本。 完成此操作后,我想再将A5页面粘贴回A4页面(出于相同的打印原因)。 示例:使用第一页三次,第二页一次。 拆分页面。 (扔掉相同的右A5页面) 创建第一页的三个副本和第二页的一个副本。 添加/替换文本。 将页面粘贴在一起,这样我就可以得到两页A4页面。 第一个是前两个“页面一个”,第二个是第三个“第一页”和唯一的“第二页”。 这应该是可能的吗? 不应该吗? 我正在考虑使用iText。 但如果有人有任何其他建议,我很乐意改变我的想法。

无法读取跨行突出显示的确切文本

我正在使用PDBox阅读PDF文档中突出显示的内容。 我能够以单行和多个单词的forms阅读突出显示的文本。 但是,我无法阅读突出显示的文字。 请查看以下示例代码以阅读突出显示的文本。 PDDocument pddDocument = PDDocument.load(new File(“C:\\pdf-sample.pdf”)); List allPages = pddDocument.getDocumentCatalog().getAllPages(); for (int i = 0; i < allPages.size(); i++) { int pageNum = i + 1; PDPage page = (PDPage) allPages.get(i); List la = page.getAnnotations(); if (la.size() < 1) { continue; } System.out.println("Page number : "+pageNum); for (PDAnnotation pdfAnnot: la) { if […]

如何在WebView Android Studio中打开本地pdf文件

我知道这个问题已被多次询问,但我仍然无法让它工作。 我在原始文件夹中有一个pdf,我正在尝试使用“ https://drive.google.com/viewerng/viewer?embedded=true&url= ”在webview中打开它以在webview中打开它。 我认为我的问题是我无法获得pdf文件的正确路径。 我已经尝试了三种不同的方式,并且webview说我得到一个错误(url不存在),或者它“打开”pdf,但是webview在中间显示这个文本,“No preview available” 。 这些是我尝试获取文件路径的三种方法。 “android.resource://com.an.example/raw/filename” “android.resource://”+ getPackageName()+“/”+ R.raw.filename; Environment.getExternalStorageDirectory()+“/ filename.pdf” 对于方法1和3,我尝试过“filename”和“filename.pdf” 这些都不允许在webview中加载pdf。 下面是我用来加载pdf的代码。 (注意:如果我使用url而不是本地文件,此方法可以正常工作) webview = (WebView) findViewById(R.id.webView); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setBuiltInZoomControls(true); String pdf = “one_of_the_above_methods”; webview.loadUrl(“https://drive.google.com/viewerng/viewer?embedded=true&url=” + pdf); 我究竟做错了什么? 有没有更好的方法在我的应用程序中加载本地pdf而不占用整个活动页面?

从Java打印多个PDF作为单个打印作业(物理打印)

我想在一个打印作业中从java(使用java打印服务)打印多个pdf。 我想将多个pdf作为单个作业发送到打印机。 这样,当我从打印机中取出它时,我的“批量”中的所有文档一起打印并且不与其他人的打印作业交错。 批次可能包含1000个打印作业。 我试过jpedal,但它不支持java.awt.print.Book Book book = new Book(); PdfDecoder pdfDecoder = readFileApplyOptions(“C:/Temp/singlepagetest.pdf”, pageFormat); book.append(pdfDecoder, pageFormat); PdfDecoder pdfDecoderTwo = readFileApplyOptions(“C:/Temp/printfax-test.pdf”,pageFormat); book.append(pdfDecoderTwo, pageFormat); printJob.setPageable(book); printJob.print(); 只打印出第一个pdf。 如何在单个作业中打印多个pdf? readFileAndApplyOptions()基本上创建一个新的PdfDecoder对象并返回它。 我也以类似的方式尝试了Sun的PDFRenderer PDFRenderer (使用Book对象),但我的代码仍然只打印出第一页。 有没有人遇到类似的问题? 我可能会错过一个解决方案吗?

iText动态地将值添加到PDF封面中的占位符

我有以下封面。 我需要为被许可人添加值, 日期并在框中填写另一个给定的文本。 如何使用iText完成此操作。 任何帮助表示赞赏。

从PDF中提取文字(谷歌应用引擎)

是否有用于从PDF中提取文本的免费Java库,它与Google Application Engine兼容? 我已经阅读了PDFJet,但它无法读取PDF,可以吗? 是否有其他方法可以从PDF中提取文本? 我试过http://www.pdfdownload.org/ ,遗憾的是他们没有正确处理非英文字符。

使用pdfbox从pdf中删除加密,如qpdf

使用qpdf,您可以简单地从pdf中删除限制/加密,如下所示: qpdf –decrypt infile outfile 我想用Java中的PDFBox做同样的事情: PDDocument doc = PDDocument.load(inputFilename); if( doc.isEncrypted() ) { //remove the encryption to alter the document } 我已经尝试使用StandardDecryptionMaterial,但我不知道所有者密码是什么。 qpdf如何做到这一点? 样本文件: https : //issues.apache.org/jira/secure/attachment/12514714/in.pdf

Java:将URL中的pdf文件读取到applet中的Byte数组/ ByteBuffer中

我试图找出为什么这个特定的代码片段对我不起作用。 我有一个applet应该读取.pdf并用pdf-renderer库显示它,但出于某种原因,当我读入位于我的服务器上的.pdf文件时,它们最终会被破坏。 我已经通过再次写出文件来测试它。 我已经尝试在IE和Firefox中查看applet并且发生了损坏的文件。 有趣的是,当我尝试在Safari(对于Windows)中查看applet时,该文件实际上很好! 我理解JVM可能会有所不同,但我仍然迷失方向。 我已经用Java 1.5编译了。 JVM是1.6。 读取文件的片段如下。 public static ByteBuffer getAsByteArray(URL url) throws IOException { ByteArrayOutputStream tmpOut = new ByteArrayOutputStream(); URLConnection connection = url.openConnection(); int contentLength = connection.getContentLength(); InputStream in = url.openStream(); byte[] buf = new byte[512]; int len; while (true) { len = in.read(buf); if (len == -1) { break; } […]