如何考虑到Docx文件的图形的颜色时,使用phpword将其转换为PDF?

watbbzwu  于 2023-01-24  发布在  PHP
关注(0)|答案(1)|浏览(147)

以下是我用来将docx文件转换为PDF的代码:

<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory as WordIOFactory;
use PhpOffice\PhpWord\Settings;

// Set PDF renderer.
// Make sure you have `tecnickcom/tcpdf` in your composer dependencies.
Settings::setPdfRendererName(Settings::PDF_RENDERER_TCPDF);
// Path to directory with tcpdf.php file.
// Rigth now `TCPDF` writer is depreacted. Consider to use `DomPDF` or `MPDF` instead.
Settings::setPdfRendererPath('vendor/tecnickcom/tcpdf');

$phpWord = WordIOFactory::load('test/graph.docx', 'Word2007');
$phpWord->save('graph.pdf', 'PDF');

这段代码起作用了,但问题是当它把文件转换成PDF的时候。图形的颜色都丢失了,我感觉连格式都丢失了。

这是我的PDF文件:

This picture shows the PDF file I had.

以下是将DOCX文件转换为PDF文件后的结果:

This picture shows the result after converting the DOCX file to a PDF file.
正如您所看到的。PDF文件丢失了图形的颜色。那么,我想知道您是谁。**您是否有一个想法,至少考虑图形的颜色?**我做了大量研究,但没有找到任何具体的东西。您能帮助我吗?
嗯,我正在尽我所能解释我的问题。我希望我能得到一些好的答案
谢谢你的帮助。:)

wpx232ag

wpx232ag1#

Microsoft Word有许多专有功能,不能轻易地从DocX转换到更简单的丰富格式。这可以在Microsoft自己的应用程序中看到。非常简单地打开一个DocX在本机Write.exe在这里,我们看到复杂的样式不受支持。

因此,毫不奇怪,唯一可以忠实地将Word文档转换为PDF的应用程序是MS Word导出为PDF(类似于将PDF "转换为" DocX),许多转换程序/脚本可以通过调用Microsoft "Interop" DDL来调用已安装的MS Office。
Adobe Online Converter使用份MS Word,使用转换应用程序时可以看到:-

与其他品牌领先的转换器相似,清晰使用MS Word

File: graph (1).pdf
...
Application: Microsoft Office Word
PDF Producer: Aspose.Words for .NET 22.11.0
PDF Version: 1.7
File Size: 7.07 KB (7,237 Bytes)
Number of Pages: 1
Page Size: 21.0 x 29.7 cm (A4)

docX保真度的底线是您需要MS word的运行副本

次佳

有时候,您可以使用Libre Office或其他变体来接近(但并非总是如此),以便使用服务器转换时图表能够正常工作。***但是,***请注意,为了嵌入不同的MS方面,图表的大小显著增加(增加了10倍以上)。

File: graph (2).pdf
...
Application: Writer
PDF Producer: ConvertAPI
PDF Version: 1.7
File Size: 93.37 KB (95,607 Bytes)
Number of Pages: 1
Page Size: 21.0 x 29.7 cm (A4)

您可以通过使用局部电流为7.4的批次来改善(仅大5倍

    • 一月一日**

相关问题