Tag: pdf

iText中的PdfPageEventHelper

我正在创建一个pdf,其中每个pdf页面的标题将根据当前页码自定义。 例如,在第一页中标题是“第一页”,在第二页中标题是“第二页”,依此类推…… 我们现在做的是将标题添加到PdfPTable中,然后我们向PdfPTable添加了许多其他内容,因此这个PdfPTable包含几页数据。 最后,我们将这个大的PdfPTable对象添加到文档中。 现在我们要使用PdfPageEventHelper中的onStartPage()方法来获取当前页码,以便我们可以自定义每个页面的标题。 问题是onStartPage()在我们将大的PdfPTable对象添加到文档之前不会触发,这意味着我们无法在将PdfPTable对象添加到文档之前使资源包加载不同的键值,对吧? 有没有意识到这个? ——————–我们有以下代码————————- ———— Phrase title = new Phrase(); title.add(new Chunk(bundle.getString(pdfNewPageEventHandler.getKey()), headerFont)); PdfPCell cell = new PdfPCell(new Paragraph( new Phrase(title))); ……… PdfPTable table = new PdfPTable(tableSize); table.addCell(cell); ……… document.add(table); private class PdfNewPageEventHandler extends PdfPageEventHelper { private int currentPageNum = 0; private String key; @Override public void onStartPage(PdfWriter writer, Document document) […]

无法使用java命令行打开PDF文件

我正在尝试使用命令行参数as从java打开PDF文件 String command = “cmd /c start AcroRd32.exe \”” + dir + “\””; 但是当文件自动打开时,我收到错误 “Windows cannot find ‘acroRd32.exe’. Please make sure you typed the correct name.” 但是我能够在不使用命令行/ java的情况下手动打开它。 请帮帮我。

iText PdfStamper增加签名pdf的大小

为什么PdfStamper每次使用时都会增加我签名的pdf的大小? 那是我的代码: private static void test(String src, String pwd, String dest) throws Exception { byte[] pwdByte = pwd != null ? pwd.getBytes() : null; PdfReader r = null; PdfStamper stp = null; FileOutputStream fos = null; try { r = new PdfReader(src, pwdByte); fos = new FileOutputStream(dest); stp = new PdfStamper(r, fos, ‘\0’, true); } […]

使用itext的XML工作者

import java.io.FileOutputStream; import java.io.StringReader; import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.tool.xml.XMLWorkerHelper; public class HtmlToPDF2 { // itextpdf-5.4.1.jar http://sourceforge.net/projects/itext/files/iText/ // xmlworker-5.4.1.jar http://sourceforge.net/projects/xmlworker/files/ public static void main(String[] args ) { try { Document document = new Document(PageSize.LETTER); PdfWriter pdfWriter = PdfWriter.getInstance (document, new FileOutputStream(“C:/Users/Jason/Desktop/testpdf.pdf”)); document.open(); document.addAuthor(“Real Gagnon”); document.addCreator(“Real’s HowTo”); document.addSubject(“Thanks for your support”); document.addCreationDate(); document.addTitle(“Please read […]

PDFBox 2.0.7 ExtractText无效,但1.8.13和PDFReader也有效

希望您能够了解使用pdfbox 2.0.7从PDF中提取文本时出了什么问题。 结果很奇怪: 使用1.8.13,命令java -jar pdfbox-app-1.8.13.jar ExtractText -sort -nonSeq test.pdf导致 Deutsche Bank Privat- und Geschäftskunden AG Bruttoertrag 43,80 USD 37,15 EUR Kapitalertragsteuer (KESt) – 5,36 USD – 4,55 EUR Solidaritätszuschlag auf KESt – 0,29 USD – 0,25 EUR Umrechnungskurs USD zu EUR 1,1791000000 Gutschrift mit Wert 15.08.2017 32,35 EUR 使用2.0.7,命令java -jar pdfbox-app-2.0.7.jar ExtractText -sort test.pdf导致 […]

通过acrokey查找字段绝对位置和尺寸

给定一个acrokey,是否可以找到该特定字段的绝对位置和维度(getLeft,getTop,getWidth,getHeight)? 反之亦然 – 如果我知道这个位置,我可以获得该领域的大杂烩吗?

将PdfDiv添加到段落中

这是与表单元格中的列表项相关联的主题未格式化 。 我正在使用XmlWorker处理格式化控件的HTML输出(来自Dojo的dijit / Editor)。 有一些块(当你使用居中或边距格式化器时)像这样:  My centered Para  但是,当我将它们添加到像这里添加到表中的Paragraph中时: PdfPCell htmlCell = new PdfPCell(); htmlCell.setBackgroundColor(new BaseColor(213, 226, 187)); htmlCell.addElement(html2Para(html)); htmlCell.setPaddingBottom(5); htmlCell.setPaddingLeft(5); table.addCell(htmlCell); private Paragraph html2para(String html) { final Paragraph para = new Paragraph(); try { XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() { @Override public void add(Writable wri) { if (wri instanceof WritableElement) { List elems = ((WritableElement) wri).elements(); […]

字体(Myanmar3)在iText中无法正确呈现

在jasper-reports部分,有一个jasper-report-character-encoding-in-pdf问题。 这个问题在jasper报告中无法解决,因为它似乎是一个迭代问题(使用iText v.5.5.4 ) 示例代码: public class FontTest { /** The resulting PDF file. */ public static final String RESULT = “pdf/fontTest.pdf”; /** the text to render. */ public static final String TEST = “\u1005\u101B\u1004\u103A\u1038\u1021\u1004\u103A\u1038\u1019\u103B\u102C\u1038\u1011\u100A\u103A\u101E\u103D\u1004\u103A\u1038\u1001\u103C\u1004\u103A\u1038”; public void createPdf(String filename) throws IOException, DocumentException { Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); document.open(); […]

在PDFbox上将PDF设置为图像到图像

我正在尝试设置外部ttf,以便能够从包含阿拉伯语字符的pdf中渲染图像,我需要设置的字体是“Arial”,完成后控制台继续通知它正在使用defaultFont而不是arial。 org.apache.pdfbox.pdmodel.font.PDSimpleFont drawString ATTENTION: Changing font on from to the default font 这是我的代码: import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage; public class PdfBoxTest { public static void main(String[] args) { PdfBoxTest obj […]

增加AcroFields的宽度(iTextSharp)

我正在使用iTextSharp将数据填充到PDF模板,这是在OpenOffice中创建的。 它填充得很好,我得到了正确的PDF,但有些我想增加AcroField的宽度。 我做了以下代码。 它正在增加宽度但文本没有显示。 AcroFields.Item fldItem = fields.getFieldItem(fieldName); for (int i =0; i < fldItem.size(); ++i) { PdfDictionary widgetDict = fldItem.getWidget(0); PdfArray rectArr = widgetDict.getAsArray(PdfName.RECT); float origX = rectArr.getAsNumber(0).floatValue(); rectArr.set( 2, new PdfNumber( origX + 12 + 60 ) ); } 在下图中突出显示了一个。 实际字符串是10000 SUPERIOROPTICAL 123 4567 89 请帮忙。 谢谢。