Tag: itext

iText 7 HTML到PDF的转换

我正在使用iText 7进行PDF生成。我需要附加包含HTML文档的Rich Text。 在itext 5中,我使用Chunk类来提取数据。 但是在itext 7中我没有看到任何API。 我尝试了代码 HtmlConverter.convertToPdf(is, os, properties); 但它给出了以下错误。 Exception in thread “main” java.lang.NoSuchMethodError: com.itextpdf.layout.font.FontSet.getFonts()Ljava/util/Set; at com.itextpdf.html2pdf.attach.impl.DefaultHtmlProcessor.processDocument(DefaultHtmlProcessor.java:107) at com.itextpdf.html2pdf.attach.Attacher.attach(Attacher.java:18) at com.itextpdf.html2pdf.HtmlConverter.convertToDocument(HtmlConverter.java:108) at com.itextpdf.html2pdf.HtmlConverter.convertToPdf(HtmlConverter.java:85) at com.itextpdf.html2pdf.HtmlConverter.convertToPdf(HtmlConverter.java:81) at com.itextpdf.html2pdf.HtmlConverter.convertToPdf(HtmlConverter.java:69) at com.itextpdf.html2pdf.HtmlConverter.convertToPdf(HtmlConverter.java:65)

通过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(); […]

在for循环中使用PdfStamper的最佳方法

我在iText代码下面读取文件并将其添加到主PDF文件中,因此它基本上是在绝对位置的现有PDF中添加PDF页面。 主PDF中的绝对位置和页码将动态决定。 有时它可能在第1页上有100,100(x,y)或第2页有250,250(x,y) 。 我循环遍历每个对象代表PDF文件的PDF对象,然后我将应用业务逻辑将PDF对象转换为PDF文件,即srcPdf 。 现在我需要将这个srcPdf添加到master PDF中的绝对位置(这里是pdfStamper ): for(ListOfPdfObject pdfObj: ListOfPdfObjects) { // code to create srcPdf so there will be new srcPdf for each iteration. srcPdf is flattened pdf of acro form field pdf. PdfReader reader2 = new PdfReader(srcPdf.getAbsolutePath()); PdfImportedPage page = pdfStamper.getImportedPage(reader2, 1); pdfStamper.insertPage(1, reader2.getPageSize(1)); pdfStamper.getUnderContent(1).addTemplate(page, 100, 100); pdfStamper.close(); // problem is […]

增加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 请帮忙。 谢谢。

找出填写pdf文件所需的字段

我开始使用我的Android应用程序中的新function,这将有助于填写某些PDF表单。 我发现最好的解决方案是使用iText库。 我可以读取文件,并从文档中读取AcroFields,但有没有可能发现特定字段被标记为必需? 我试图在API文档和Internet上找到此选项,但没有什么可以帮助解决此问题。

使用iText为字符串加下划线

所以我使用iText通过java写一个pdf。 我想要一个空白的签名和日期空格加下划线。 我读过的所有内容都是这样说的: Chunk sigUnderline = new Chunk(” “); sigUnderline.setUnderline(0.2f, -2f); Chunk dateUnderline = new Chunk(” “); dateUnderline.setUnderline(0.2f, -2f); verificationList.open(); verificationList.add(new Paragraph(“Authorized Signature: ” + sigUnderline + “Date: ” + dateUnderline)); verificationList.close(); 所以基本上我试图强调空白字符串来创建这些“字段”。 我也尝试将文本放在字符串中,并且下划线仍然不起作用。 有什么我想念的,任何帮助将不胜感激。 谢谢!

Itext阿拉伯字体作为问号

我是iText图书馆的新手。 我有一个要求,我需要提供PDF格式的输出。 pdf中包含阿拉伯字符。 我创建了一个测试servlet,如下所示。 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType (“application/pdf;charset=UTF-8”); Document document = new Document(); try{ PdfWriter.getInstance(document, response.getOutputStream()); // Code 2 document.open(); Font f1; BaseFont bf = BaseFont.createFont(“C:\\WINDOWS\\Fonts\\ARIALUNI.ttf”, BaseFont.CP1252, true); f1 = new Font(bf, 10); PdfPTable table = new PdfPTable(2); table.addCell(“hellooooo1”); table.addCell(“world2”); table.addCell(“1113”); table.addCell(“422”); // String a = “يبسبيبيبيسسسيبيببيسبيسيببي”; […]

在java中对齐AcroFields

我正在使用iTextSharp将数据填充到PDF模板,这是在OpenOffice中创建的。 它填写得很好,我得到了正确的PDF。 在那个PDF中,一些摘要将会到来,我希望那个地方与模板对齐。 我正在做下面的代码,但它不起作用。 fields.setFieldProperty(fieldName, “fflags”, PdfFormField.Q_LEFT, null); 请帮忙。 谢谢。