问题标签 [flying-saucer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1396 浏览

java - 如何在 iTextRenderer 转换中显示小于等于

我已经尝试了我所知道的一切,但仍然无法让 ≥ 和 ≤ 字符显示在我的由 Flying Saucer 的 iTextRenderer 从 xHTML 生成的 PDF 中。当然,它们在我的浏览器中显示为 HTML。我尝试了不同的 xml 编码类型、文档类型,并使用十进制和十六进制值而不是快捷方式名称。尽管如此,没有显示错误,但我在字符应该存在的地方得到了一个空格。

有没有人使用带有 ≤ 和 ≥ 特殊符号的 iTextRenderer 成功地将 xhtml 转换为 pdf,如果是,如何?

解决方案:好的,我解决了这个问题。事实证明,我确实需要使用以下 Java 代码行将 Verdana 字体嵌入到 PDF 中:

0 投票
1 回答
3174 浏览

java - FlyingSaucer ITextRenderer 完成错误(不平衡的保存/恢复和空白 PDF)

我正在使用带有 IText 的 Flying Saucer,以便从 HTML 文件生成 PDF,特别是利用org.xhtmlrenderer.pdf.ITextRenderer该类。我的代码很简单。生成代码被封装在这样的方法中:

编辑:

我的生成器类实际上是由 Spring 作为单例对象管理的。我有一个管理器类,它有一个 ExecutorService 作为 PDF 生成任务的队列。该管理器使用单例生成器来生成对象。因此,我只实例化 ITextRenderer 一次并重用它。现在我将队列设置为同时操作最多 2 个线程。我刚刚意识到这是否可能导致了这种情况,因为我遇到了两个线程正在使用我的一个渲染器来渲染两组单独的 PDF 的情况。

现在,我才意识到我实际上每次渲染都调用了两次“完成”!一个在createPDF()错误调用中(传递 true 作为第二个参数),一个显式调用finishPDF().

这已经运行了很长一段时间,并且大部分时间都成功地生成了 PDF 。我偶尔会遇到两种不同类型的错误:

  1. 由于不平衡的保存/恢复状态运算符而导致的运行时异常。示例堆栈跟踪如下:

    /li>
  2. 生成的 PDF 有缺失/变形的部分,或者最坏的情况是空白页。

对于问题 2,我相当有信心这是由于调用了 finishPDF() 两次。但是,对于问题 1,它发生对 finishPDF() 的调用执行之前,所以我实际上不知道这是否是导致问题的原因。

有没有人在将飞碟与 iText 一起使用时处理这两个问题的经验?

0 投票
5 回答
3325 浏览

java - 根据 HTTP 请求创建的 PDF 不会在 Internet Explorer 中打开

我有一个 servlet,它根据请求中的一些参数在响应中生成 PDF。当我尝试在 IE 中打开/下载此文件时,我收到以下消息:

“无法从 [站点] 下载 [文件名]。无法打开此 Internet 站点。请求的站点不可用或找不到。请稍后再试。”

这是我设置的响应:

其他浏览器一切正常。

更新:

我试过内联而不是附件。这将打开一个新窗口而不是打开/保存对话框(我希望有对话框),错误消息消失了,但新窗口在 IE 中只是空的。仍在使用其他浏览器。

我尝试了简单的、双引号和不包含任何未转义字符的文件名。双引号和无引号没有区别,但是单引号会附加到文件名中,我当然不想要。

文件名不包含非转义字符。

我已经检查了这个页面上的测试,它说所有浏览器都通过了带有文件名的附件,没有引号。这是从一开始就使用的。

添加 Content-Lenght 标头没有区别。

顺便说一句,飞碟是用来制作 PDF 的。

0 投票
2 回答
11274 浏览

css - Unicode 字符的飞碟字体

我正在使用 Grails 导出插件(基本上是 Flying Saucer)生成 PDF。我的 GSP 页面是一个 UTF-8 页面(或者至少属性显示它是 UTF-8,在 GSP 页面的开头也有一个<?xml version="1.0" encoding="UTF-8"?>指令)。最初生成的 PDF 正确包含变音字符“äöüõ”,但 PDF 中缺少西里尔字符(根本未呈现)。然后我通过添加以下内容更改了我的css文件,如文档中所述:

ArialUni.ttf 也部署到服务器。但现在我将变音字符和西里尔字符都呈现为框。如果我将 -fs-pdf-encoding 属性值更改为 Identity-H,则元音变音字符会正确呈现,但西里尔字符会呈现为问号。

关于可以使用什么字体来正确渲染变音符号和西里尔字符的任何想法?或者可能是我的 CSS 有点错误?任何提示将不胜感激。

更新 1: 我也尝试过以下 css(由http://fontface.codeandmore.com/生成):

我已经添加了<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 我还尝试使用 -Dfile.encoding=UTF-8 运行 grails,如此处所述:http: //grails.1312388.n4.nabble.com/PDF-plugin-Having-problems-with- instalation-td2297840.html,但没有任何帮助。西里尔字符根本不显示。任何其他想法可能是什么问题?

*顺便说一句: *我将我的 PDF 打包为 zip 并在响应中将其发送回浏览器,如下所示:

我是否需要在压缩时以某种方式考虑编码????,我喜欢这样:

0 投票
2 回答
10098 浏览

jsf-2 - 如何使用带有java的itext +飞碟从xhtml页面动态生成pdf

我第一次使用 iText+flying saucer 与使用 JSF 2.0 的 xhtml 页面进行简单的注册表单,其中包含常规输入字段,如名字、姓氏、电话号码等。一旦用户输入所有数据并单击“下一步”按钮,我必须将此带有用户数据的 XHTML 页面转换为 pdf。如何准确获取该页面的源 HTML 以及页面中包含的所有样式并将其转换为 pdf。目前我正在这样绑定。

但它给我抛出了这个例外。

这是使用上面的 URL 获取我的页面的正确方法吗?该 URL 是否在单击 NEXT 按钮时获取我的页面与用户数据并将其转换为 pdf 或者我是否尝试使用错误的代码。请帮助我。例子赞赏。

0 投票
1 回答
1468 浏览

java - 无法使用 itext + 飞碟呈现表单字段

我正在使用 iText 和飞碟从 XHTML 创建 PDF。当我看到我的输出 PDF 时,我看不到 XHTML 页面中的输入文本框、复选框、单选按钮、下拉框和按钮。除了输出 PDF 中的段落外,我看不到任何 HTML。有什么办法可以克服这个问题。

0 投票
2 回答
2854 浏览

java - 尝试呈现 pdf 时获取此“org.xhtmlrenderer.render.BlockBox 无法转换为 org.xhtmlrenderer.newtable.TableBox”

我在尝试渲染 pdf 时收到此错误。我正在将 Nicolas Leroux 的 PDF 模块用于播放框架。

这是整个堆栈跟踪:Pastebin。谷歌搜索仅显示 4 个结果。他们建议删除我已删除的任何浮动属性和位置属性,只是试一试。我仍然面临这个问题。有没有人能够解决这个问题?

编辑:这是呈现 pdf 的 html:

我正在使用 Windows 7 和 Tomcat6 作为测试环境,这里的人们面临着同样的环境。

谢谢。

0 投票
1 回答
1228 浏览

java - 如何在不阻塞 HTTP 响应的情况下通过 Flying Saucer 创建 PDF?

我已经开始使用飞碟从 JSF 文件创建 PDF,这很棒!现在我有一个问题:我想在我们的应用程序中使用它来创建 PDF 而不阻塞 HTTP 响应。

请看下面的代码:

根据我的理解,ITextRenderer 在第 3 行(在函数 loadDocument 中)加载整个 JSF。这意味着 ITextRenderer 要求整个 JSF 将由服务器创建。

然后,ITextRenderer 在第 4 行创建 PDF 布局,并将其放入第 5 行的 outputStream 中。

如果创建 JSF 需要很长时间怎么办?上面的代码将堆叠在第 3 行,直到服务器创建整个 JSF。因此,如果我想将第 1-6 行的代码放入 servlet 中,它可能会阻止 HTTP 响应并可能导致超时问题。我希望 Flying Saucer 将开始创建输出流 HTTP 响应,而无需等到创建整个原始 JSF。最好的方法是什么?飞碟有任何API支持吗?任何帮助将不胜感激。

0 投票
2 回答
7398 浏览

java - 使用 Java 将 HTML 转换为带有特殊字符的 PDF

我正在使用带有iText 2.1.7的飞碟来转换. 它工作正常,但是当 html 中有一些中文、韩文等字符时会出现问题。html to pdf

我的 PDF 中出现了意想不到的字符,而不是正常的中文字符

我发现这个问题打开了,所以我认为目前没有办法让飞碟正确呈现 PDF?

PS:我也发现了这个问题,但我无法理解他们提供的解决方案。

这是我正在使用的代码

其中file是我要转换的 html。

还有其他方法或图书馆可以做同样的事情吗?

这是我正在使用的 CSS

我需要转换的HTML 文件

这些是与 itext 2.1..x 兼容的重新编译的飞碟 jar

0 投票
2 回答
7305 浏览

java - 如何使用飞碟将大表格转换为 PDF?

我有一个包含大量列的 html(您可以在此链接中找到示例)

现在,当我尝试使用飞碟将其转换为 PDF 时(重新编译jar 链接以使用 iText 2.1.X),生成的 PDF已截断列

有没有办法让飞碟根据html内容打破桌子或增加页面的宽度?

这是我正在使用的代码

其中file是我要转换的 html。