Tag: pdf generation

哪个PDF生成API(Java)支持古吉拉特语字体?

我试过iText,PDFBox和Oracle Forms。 我也成功地在iText的情况下生成古吉拉特语PDF文档。 但是,不幸的是,它没有在古吉拉特语(UTF-8)语言中生成适当的字体。 我在jdk 1.4中有我的项目,这是必须使用的。 所以,我需要支持Gujarati Font的旧版API。 如果有任何选择,请建议。 示例代码: public void GeneratePDFusingiText(String lStrGujaratidata) { try { BaseFont bf = BaseFont.createFont(“C:\\Windows\\Fonts\\Shruti.ttf”, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); Font font = new Font(bf, 12); Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(“D:/GeneratePDFusingiText.pdf”)); document.open(); document.add(new Paragraph(lStrGujaratidata, font)); document.close(); } catch(Exception e) { System.out.println(“Exception while generating PDF”); e.printStackTrace(); } } 编辑1: 也许图像没有显示出来。 […]

使用iText,在内存上生成一个在磁盘上生成的PDF

我正在从Java应用程序生成PDF。 (效果很好)问题是PDF在磁盘上生成为: Document documento = new Document(PageSize.A4, 25, 25, 25, 25); PdfWriter writer = PdfWriter.getInstance(documento, new FileOutputStream(“/Users/sheldon/Desktop/Registry.pdf”)); documento.open(); // Put some images on the PDF for( byte[] imagen : imagenes ) { Image hoja = Image.getInstance(imagen); hoja.scaleToFit(documento.getPageSize().getHeight(), documento.getPageSize().getWidth()); documento.add(hoja); } documento.addTitle(“Generated Registry!”); documento.close(); 现在,当用户搜索PDF并打印它们时,我不需要将它们存储在磁盘上。 我需要(如果可能的话)在内存中生成它们并使用命令打开(使用acrobat reader)该文档。 那可能吗? 任何的想法。 如果没有,有什么建议(根据您的经验)。 提前谢谢你。 编辑: 适用于标准Java桌面应用程序。

如何将HTML内容转换为PDF而不会丢失使用Java的格式?

我有一些HTML内容(包括格式标签,如strong ,图像等)。在我的Java代码中,我想将此HTML内容转换为PDF文档,而不会丢失HTML格式。 无论如何在Java中使用它(使用iText或任何其他库)?

使用XSLFO显示SVG

我的第一个问题; 我目前正在修复使用XSLFO将我们的语法转换为FO并最终将其转换为PDF的图形服务。 以前我们一直在使用PDF导出的网页上的PNG图表,但这会产生非常难看的结果,所以我们决定使用SVG替代PDF。 但是,SVG似乎没有正确扩展到SVGcanvas。 以下是运行XSLFO之前的语法: 这是我正在使用的XSLFO: SVG确实出现在PDF中,它确实包含在canvas中 – 但无论出于何种原因,我都无法正确地进行缩放。 它真的非常非常庞大,结果是一个非常裁剪的SVG版本。 我在这里没有任何建议 – 这里有没有人有这方面的经验? PS:使用最新版本的Batik创建图像,并正确设置宽度和高度。

Flying Saucer XHTML的相对路径?

我正在使用Flying Saucer将一些PDF文档从字符串渲染为XHTML。 我的代码是这样的: iTextRenderer.setDocument(documentGenerator.generate(xhtmlDocumentAsString)); iTextRenderer.layout(); iTextRenderer.createPDF(outputStream); 我想要了解的是,当使用这种方法时,XHTML中的相对路径从哪里解决? 例如,对于图像或样式表。 我能够使用此方法成功生成基于文本的文档,但我需要了解如何引用我的图像和CSS。

iText:PdfTable单元垂直对齐

我正在尝试垂直对齐我的headet单元格文本在单元格高度的中间。 这是我的代码: PdfPCell c1 = new PdfPCell(cerate_phrase(“” ,regular_bold )); c1.setHorizontalAlignment(Element.ALIGN_CENTER); c1.setVerticalAlignment(Element.ALIGN_MIDDLE); c1.setBackgroundColor(BaseColor.LIGHT_GRAY); table_.addCell(c1); 但这不起作用..setHorizo​​ntalAlignment居中但不是setVerticalAlignment。 我做错了吗? 我怎么能在中间做到? 任何帮助都将被批准。

为什么不在java servlet中创建pdf文档?

我使用iText / Pdfbox创建PDF文档。 当我使用像这样的独立Java类创建PDF时,一切正常: public static void main(String[] args){ … … … } 文档已正确创建。 但我需要从Servlet创建一个PDF文档。 我将代码粘贴到get或post方法中,在服务器上运行该servlet,但不创建PDF文档! 此代码作为独立应用程序运行: 此代码不起作用:

如何计算元素的高度?

我正在通过XML数据生成pdf文件。 我计算段落元素的高度为: float paraWidth = 0.0f; for (Object o : el.getChunks()) { paraWidth += ((Chunk) o).getWidthPoint(); } float paraHeight = paraWidth/PageSize.A4.getWidth(); 但是这种方法不能正常工作。 你能给我一个想法吗?

使用PDFBox生成的PDF是空白的

我正在尝试将内容写入PDF文件。 我写了代码 public ByteArrayOutputStream createPDF(String text) throws IOException, COSVisitorException { PDDocument document; PDPage page; PDFont font1; PDPageContentStream contentStream; ByteArrayOutputStream output = new ByteArrayOutputStream(); document = new PDDocument(); try { page = new PDPage(); document.addPage(page); contentStream = new PDPageContentStream(document, page); contentStream.beginText(); contentStream.moveTextPositionByAmount( 100, 700 ); contentStream.drawString(“Hello World Hello World Hello World Hello World Hello World”); contentStream.endText(); […]

如何将SVG图像添加到使用HTML和Flying Saucer库(和Batik)构建的PDF?

我正在使用飞碟库(旧的但开源的)使用XHTML生成PDF。 我有这个工作,但我也想添加SVG图像。 我开始致力于整合蜡染试图让它工作,但我遇到了问题。 未绘制SVG图像。 XHTML仍然呈现,但它似乎没有显示SVG。 我已经让SVG在单独的PDF上渲染,但从未与飞碟结果一起渲染。 我添加了通常的ReplacedElementFactory(它也适用于常规图像,但还没有包含该代码)。 唯一相关的方法(确实被调用和所有内容)如下: @Override public ReplacedElement createReplacedElement(LayoutContext layoutContext, BlockBox blockBox, UserAgentCallback userAgentCallback, int cssWidth, int cssHeight) { Element element = blockBox.getElement(); if (element == null) { return null; } String nodeName = element.getNodeName(); if (“img”.equals(nodeName)) { SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(XMLResourceDescriptor.getXMLParserClassName()); SVGDocument svgImage = null; try { svgImage = factory.createSVGDocument(new […]