【发布时间】:2013-09-08 12:33:56
【问题描述】:
首先,这是我在网站上的第一个问题,我只想感谢大家帮助像我这样的新手。我在这个网站上发现了很多宝贵的信息!它在我的编程之旅中帮助了我很多。
所以这是我的问题。我已经使用 OpenTBS(PHP 类)用动态数据填充 .docx 模板并在文档中插入图像。
通过在图像的替代文本中输入以下命令来插入图像:
[onshow.logo_location;ope=changepic;tagpos=inside;adjust=100%;]
我有一个变量,我设置为 $logo_location,它指向要插入的图像。
此步骤完美运行。使用正确位置的适当图像创建 docx 文件。
当我尝试使用 phpdocx 将此 docx 文件转换为 PDF 时,出现错误。生成pdf的代码如下:
require_once '../bbms/classes/phpdocx/classes/TransformDoc.inc';
require_once '../bbms/classes/phpdocx/classes/CreateDocx.inc';
$docx = new CreateDocx();
$document = new TransformDoc();
$document->setStrFile('199.docx');
$document->generatePDF();
我得到的错误如下:
无法生成 PDF 文件。带有消息“未知图像类型:?image=opentbs1.”的异常“DOMPDF_Exception”在 C:\wamp\www\bbms\classes\phpdocx\pdf\include\image_cache.cls.php:188 堆栈跟踪:#0 C:\wamp\www\bbms\classes\phpdocx\pdf\include\image_frame_decorator.cls .php(88): Image_Cache::resolve_url('?image=opentbs1', NULL, '', '') #1 C:\wamp\www\bbms\classes\phpdocx\pdf\include\frame_factory.cls.php (199): Image_Frame_Decorator->__construct(Object(Frame), Object(DOMPDF)) #2 C:\wamp\www\bbms\classes\phpdocx\pdf\include\dompdf.cls.php(606): Frame_Factory::装饰框架(对象(框架),对象(DOMPDF))#3 C:\wamp\www\bbms\classes\phpdocx\classes\TransformDoc.inc(328): DOMPDF->render() #4 C:\wamp\www \discount_database\test.php(23): TransformDoc->generatePDF() #5 {main}
由于某种原因,新图像在 docx 文件中的位置被传递为“?image=opentbs1”。到 image_cache.cls.php 中的静态函数 resolve_url()。
当我尝试转换不是使用 OpenTBS 创建的普通 docx 文件时,我没有收到此错误。我检查了发送到 resolve_url() 的有效 url 是什么样子的,它看起来像这样:
“文件/files_invoice_template.docx/media/word/media/image1.png”
有没有办法配置openTBS来正确设置插入图片的url/位置?
谢谢!!
【问题讨论】:
-
快速浏览一下我会使用
from=参数的文档,看看是否是问题所在 -
是的,我同意@Dragon,我刚刚看了看,似乎没有指定 from= 参数,这可能是您遇到问题的路径
-
感谢您的快速回答!我会尝试使用 from 参数。
-
我认为这不是您的问题,如下所述。如果您实际查看 OpenTBS 生成的代码,您会发现没有奇怪的路径或缺少声明,只是 PHPDOCX 没有预料到的不同命名约定。
标签: php pdf-generation opentbs phpdocx