我正在尝试使用flyingsaucer将html文档保存为PDF,但当我查看Adobe Reader中的文档属性(页面大小:8.26 x 11.69英寸)时,生成的文档最终总是具有A4维度。
我确实阅读了文档,我正在传递css@page{size:letter;}风格虽然它确实对输出有影响,但在Adobe Reader中,页面大小始终保持在8.26 x 11.69。例如,如果我将页面大小设置为legal,我的PDF仍然是A4大小,但文档顶部缺失,就像它从“纸张”上掉下来一样。
我不确定问题是出在itext端还是飞碟端。我使用的是一个相当旧的版本,所以我的第一步是升级到最新的9.1.6版本的飞碟。我也从itext 2.0.8迁移到了openPDF 1.0.1,但我仍然得到了相同的行为。
我还在调试器中跟踪到com。洛瓦吉。文本在ITextRenderer中创建文档,此时传递的文档大小是正确的。这让我觉得这个问题可能在openPDF/iText中,但我找不到我做错了什么。
真正的问题是你(无意中)正在使用不再受支持的软件。任何仍然具有名称空间lowagie(iText的创始人和首席技术官)的东西都已经过时了。
如果您只是想将HTML转换为pdf,为什么不直接使用iText并去掉中间人呢?
我们为您提供多种选择。
这是一个使用pdfHTML的相当广泛的代码示例:
public void createPdf(String src, String dest, String resources) throws IOException {
try {
FileOutputStream outputStream = new FileOutputStream(dest);
WriterProperties writerProperties = new WriterProperties();
//Add metadata
writerProperties.addXmpMetadata();
PdfWriter pdfWriter = new PdfWriter(outputStream, writerProperties);
PdfDocument pdfDoc = new PdfDocument(pdfWriter);
pdfDoc.getCatalog().setLang(new PdfString("en-US"));
//Set the document to be tagged
pdfDoc.setTagged();
pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true));
//Set meta tags
PdfDocumentInfo pdfMetaData = pdfDoc.getDocumentInfo();
pdfMetaData.setAuthor("Joris Schellekens");
pdfMetaData.addCreationDate();
pdfMetaData.getProducer();
pdfMetaData.setCreator("iText Software");
pdfMetaData.setKeywords("example, accessibility");
pdfMetaData.setSubject("PDF accessibility");
//Title is derived from html
// pdf conversion
ConverterProperties props = new ConverterProperties();
FontProvider fp = new FontProvider();
fp.addStandardPdfFonts();
fp.addDirectory(resources);//The noto-nashk font file (.ttf extension) is placed in the resources
props.setFontProvider(fp);
props.setBaseUri(resources);
//Setup custom tagworker factory for better tagging of headers
DefaultTagWorkerFactory tagWorkerFactory = new AccessibilityTagWorkerFactory();
props.setTagWorkerFactory(tagWorkerFactory);
HtmlConverter.convertToPdf(new FileInputStream(src), pdfDoc, props);
pdfDoc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
有关更多信息,请访问http://itextpdf.com/itext7/pdfHTML
事实证明,PDF生成正确地使用了@page size声明,问题发生在我们软件的后期。我没有注意到的是,在生成PDF后,调用了另一种方法将多个PDF合并为一个。这个方法可能不应该被调用,但那是另一回事。
底线是这个方法创建了一个新的com。洛瓦吉。文本Document(),默认情况下创建A4大小的文档,然后在pdf的所有页面上迭代,使用pdfWriter将页面添加到新文档中。getImportedPage(pdfReader,currentPage)。这些导入的页面没有保留其原始大小。
我通过在创建合并文档对象时传递第一页的页面大小来修复它:
document = new Document(pdfReader.getPageSize(1));
使用飞碟以PDF格式打印图像。 超文本标记语言代码: 当我使用飞碟将HTML转换为PDF时。生成的PDF不会打印图像。 我需要使用任何特定的软件包来打印PDF格式的图像吗。如果你有任何问题,请告诉我。
我正在使用飞碟将超文本标记语言转换为PDF。我想在我的超文本标记语言中使用像CheckBox这样的超文本标记语言输入属性,并将其打印在生成的PDF中。但是当我用html编写复选框代码并生成PDF时,没有用PDF打印的复选框。 套餐: 我需要使用任何特定的包来打印PDF中的复选框吗。如果你有任何问题,请告诉我。任何帮助都将不胜感激。非常感谢。
问题内容: 我正在阅读一个python脚本,该脚本接受XML文件的输入并输出XML文件。但是,我不了解打印语法。可有人请解释什么的呢? 问题答案: 该方法格式化字符串字面量 和它的新功能。 甲 格式的字符串文字 或 F-串 是前缀字符串文字或。这些字符串可能包含替换字段,这些替换字段由花括号分隔。尽管其他字符串文字始终具有恒定值,但是格式化的字符串实际上是在运行时评估的表达式。 格式化字符串文字的
我正在使用飞碟/iText生成报告。现在,报告有一个条件,即如果发生特定情况,报告应移动到pdf的下一页,并在pdf上添加数据,等等<问候Pawan
问题内容: 我生成了x的两个矩阵: 第一矩阵:和。 第二矩阵:和。 使用以下代码,第一个矩阵花费了8.52秒完成: 使用此代码,第二个矩阵花费了259.152秒来完成: 运行时间显着不同的原因是什么? 正如评论所说,仅打印需要秒,而给。 正如其他指出它对他们正常工作的人一样,例如,我尝试了Ideone.com,这两段代码以相同的速度执行。 测试条件: 我从 Netbeans 7.2 运行了此测试,
所以我有这个代码,叫我白痴哈哈,但是我不能让它打印7。 代码: 我需要知道如何改变与函数中的参数同名的变量。 任何帮助都将不胜感激,如果你不明白这个问题,我很乐意解释更多。