Tôi đang tạo .docx
tệp từ mẫu sử dụng PHPWord
. Nó hoạt động tốt nhưng bây giờ tôi muốn chuyển đổi các tập tin được tạo ra để PDF
.Tạo PDF từ .docx được tạo bởi PHPWord
Trước tiên tôi cố gắng sử dụng tcpdf
kết hợp với PHPWord
$wordPdf = \PhpOffice\PhpWord\IOFactory::load($filename.".docx");
\PhpOffice\PhpWord\Settings::setPdfRendererPath(dirname(__FILE__)."/../../Office/tcpdf");
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF');
if (file_exists($filename.".pdf")) unlink($filename.".pdf");
$pdfWriter->save($filename.".pdf");
nhưng khi tôi cố gắng để tải các tập tin để chuyển nó sang PDF
tôi nhận được ngoại lệ sau khi tải file
Fatal error: Uncaught exception 'BadMethodCallException' with message 'Cannot add PreserveText in Section.'
Sau một số nghiên cứu tôi thấy rằng một số người khác cũng có lỗi này (phpWord - Cannot add PreserveText in Section)
EDIT
After trying around some more I found out, that the
Exception
only occurs when I have somemail merge fields
in my document. Once I removed them theException
does not come up anymore, but the converted
Tôi nghĩ về việc sử dụng một cách khác để tạo ra PDF, nhưng tôi chỉ có thể tìm thấy 4 cách:
- Sử dụng OpenOffice - Impossible vì tôi không thể cài đặt bất kỳ phần mềm nào trên Máy chủ. Cũng đi theo cách nêu here không làm việc, hoặc như hoster của tôi (Strato) sử dụng hệ điều hành SunOS như hệ điều hành và điều này cần Linux
- Sử dụng phpdocx - Tôi không có bất kỳ ngân sách để trả tiền cho nó và bản demo không thể tạo PDF
- Sử dụng PHPLiveDocx - công trình này, nhưng có giới hạn của 250 tài liệu mỗi ngày và 20 mỗi giờ và tôi phải chuyển đổi arround 300 tài liệu cùng một lúc, thậm chí có thể nhiều lần một ngày
- Sử dụng PHP-Digital-Format-Convert - sản lượng trông đẹp hơn với
PHPWord
vàtcpdf
, nhưng vẫn không thể sử dụng làm hình ảnh bị thiếu và hầu hết (không phải tất cả!) Của kiểu
Có cách nào để tạo PDF không? Hay có giải pháp nào để làm cho các tài liệu PDF được tạo ra trông đẹp mắt?
đầu ra PDF Decent có thể sẽ yêu cầu bạn tạo một mẫu thứ hai (bạn đã có một mẫu MSWord, tiếp theo bạn sẽ muốn có một mẫu PDF lấy tài liệu nguồn của bạn để đầu vào mà tcpdf muốn). –
@Rob_M Vâng tôi đã nghĩ đến việc tạo một mẫu HTML vì có một số thư viện để chuyển đổi HTML sang PDF, nhưng tôi có khá nhiều mẫu khác nhau, vì vậy sẽ khá nhiều công việc để tạo và viết lại cách tôi điền với nội dung, vì vậy tôi hy vọng có một cách khác dễ dàng hơn ... – Pinguin895
Liên kết này có thể giúp: https://github.com/PHPOffice/PHPWord/issues/311 –