TCPDF 生成动态阿拉伯文 PDF 的速度非常慢

发布于 2024-10-18 17:44:56 字数 713 浏览 5 评论 0原文

我一直在使用 nusoap 和 nusoap 的组合。 TCPDF 用于 ping Web 服务并动态填写 PDF 内容。

PDF 本身(英文)大约需要 8-9 秒才能完成,共 36 页,其中一些包含条形图。我还想指出,由于接收数据的格式,我使用“writeHTML”将其呈现在 PDF 上。

当我开始尝试用阿拉伯语翻译生成相同的 PDF 时,我的主要问题出现了。我使用 TCPDF 示例中所述的“Almohanad”字体,处理时间跃升至 2 分钟。

我尝试使用以下修复(缓存字体文件): http://www.bitrealm.net/2010/08/tcpdf-is-slow-here-is-the-solution/

唉,它似乎不起作用(“.CACHED”即使我给了 tcpdf 文件完整的用户权限,文件也没有出现)!我确实必须提到,我需要在 php 文件的“require_once”部分之后插入 ob_clean() 以避免出现以下错误:

“TCPDF 错误:某些数据已输出,无法发送 PDF”

我检查了我的 php文件中的空白并没有发现任何不合适的地方。

总之,有人可以帮助我使用 TCPDF 加速阿拉伯文 PDF 的生成,或者推荐一个更快的替代方案吗?

感谢您抽出时间。

I've been using a combination of nusoap & TCPDF to ping a web service and dynamically fill out a PDF with content.

The PDF itself (in english) takes around 8-9 seconds to complete for about 36 pages, some of which include bar charts. I'd also like to note that due to the format that the data is received in, I am using "writeHTML" to present it on the PDF.

My major issue came around when I started trying to generate the same PDFs with arabic translations. I'm using the "Almohanad" font as described in the TCPDF examples, and the processing time jumped up to 2 minutes.

I've tried using the following fix (which caches font files) : http://www.bitrealm.net/2010/08/tcpdf-is-slow-here-is-the-solution/

Alas it did not seem to work (the ".CACHED" file didn't appear even though I gave the tcpdf file full user permissions)! I do have to mention that i needed to insert ob_clean() after the "require_once" section of my php file to avoid the following error:

"TCPDF error: Some data has already been output, can't send PDF"

I checked my php files for white space and found nothing out of place.

In conclusion, could anyone help me speed up the generation of the arabic PDF using TCPDF, or else recommend a quicker alternative?

Thanks for your time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜扑 2024-10-25 17:44:56

在最新的 TCPDF 版本中,almohanad 被 aefurat 和 aealarabiya 字体取代。

最新的 TCPDF 版本使用 addTTFfont() 方法自动将字体转换为 TCPDF 格式,因此您可以轻松添加新的阿拉伯字体,如下例所示:

// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = $pdf->addTTFfont('/path-to-font/FontName.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);

另请检查 http://projects.arabeyes.org 网站提供替代阿拉伯字体和 http:// www.tcpdf.org 网站提供新字体指南。

On the latest TCPDF version, the almohanad was replaced by aefurat and aealarabiya fonts.

The latest TCPDF version automatically convert fonts into TCPDF format using the addTTFfont() method, so you can easily add new arabic fonts as on the example below:

// convert TTF font to TCPDF format and store it on the fonts folder
$fontname = $pdf->addTTFfont('/path-to-font/FontName.ttf', 'TrueTypeUnicode', '', 96);
// use the font
$pdf->SetFont($fontname, '', 14, '', false);

Check also the http://projects.arabeyes.org website for alternative Arabic fonts and the http://www.tcpdf.org website for the new fonts guide.

她比我温柔 2024-10-25 17:44:56

尝试使用 mPDF 作为替代方案,它非常易于使用,而且令人惊讶的是它支持 RTL 语言,如阿拉伯语、希伯来语、波斯语/波斯语、乌尔都语和普什图语。 这是一个示例 演示了这一点。

Try mPDF as an alternative it is very easy to use and it amazingly supports RTL languages like Arabic, Hebrew, Farsi/Persian, Urdu and Pashto. And this is an example demonstrates that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文