2015-05-06 41 views
5

Tôi đang sử dụng PHPWord để tải mẫu docx và thay thế các thẻ như {test}. Điều này làm việc hoàn toàn tốt đẹp.Chuyển đổi mã HTML thành tài liệu bằng PHP và PHPWord

Nhưng tôi muốn thay thế một giá trị bằng mã html. Trực tiếp thay thế nó vào mẫu là không thể. Bây giờ có cách để làm điều này bằng cách sử dụng PHPWord, theo như tôi biết.

Tôi đã xem htmltodocx. Nhưng nó seams nó sẽ không làm việc hoặc là, nó là posible để chuyển đổi một hòa bình của mã như <p>Test<b>test</b><br>test</p> để đánh dấu tài liệu làm việc? Tôi chỉ cần mã cơ bản, không có kiểu dáng. nhưng Linebreaks phải hoạt động.

Trả lời

7

Đây là liên kết tới github. Nó hoạt động tốt Html-Docx-js.

Và bản demo cũng có sẵn here.

Tùy chọn khác là Link.

$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>"); 
    $templateProcessor->setValue('test', $toOpenXML); 
+0

Cảm ơn câu trả lời của bạn, nó hoạt động tốt, tuy nhiên, tôi chỉ muốn mã của giá trị mc nhỏ của tôi. –

+0

Tôi có thể xử lý thêm mã tài liệu này. –

+0

Ý bạn là gì? Nếu bạn đang sử dụng bất kỳ mã nào với giấy phép miễn phí, bạn chỉ cần thực hiện theo T & C của giấy phép đó. –

2

Cảm ơn câu trả lời của bạn, Varun.

Thư viện PHP đơn giản H2OXML làm việc cho tôi https://h2openxml.codeplex.com/

$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>"); 
$templateProcessor->setValue('test', $toOpenXML); 

tôi bây giờ có thể chuyển đổi mã html để chèn nó bằng cách sử PHPWord.

3

Những câu trả lời khác đề xuất H2OXML mà chỉ hỗ trợ

  • Bold, nghiêng và gạch dưới văn bản

  • Bulled liệt kê

Như mô tả trong tài liệu của họ và cập nhật cuối cùng của họ là ở 2012.

Tôi đã thực hiện một số nghiên cứu nd đã tìm thấy một giải pháp khá hay:

$var = 'Some text'; 
$xml = "<w:p><w:r><w:rPr><w:strike/></w:rPr><w:t>". $var."</w:t></w:r></w:p>"; 

$templateProcessor->setValue('param_1', $xml); 

Ví dụ trên, cho biết văn bản được làm nổi bật như thế nào. Thay vì "w: strike", bạn có thể sử dụng "w: i" để in nghiêng hoặc "w: b" đậm, v.v. Không chắc chắn nếu nó hoạt động trên tất cả các thẻ hay không.

Các vấn đề liên quan