PHPWord là một API nguồn mở mạnh mẽ, được viết bằng PHP để tạo và đọc các định dạng tệp bao gồm DOC, DOCX, ODT, RTF, HTML và PDF. Sử dụng API, bạn có thể tạo tài liệu, đặt thuộc tính tài liệu, chèn hình ảnh, chèn biểu đồ, v.v. Hãy bắt đầu với việc tạo một tệp DOCX đơn giản bằng PHPWord Show Điều kiện tiên quyếtĐể tạo tài liệu từ bằng PHPWord, bạn cần cài đặt các tài nguyên sau trong hệ điều hành của mình
composer require zendframework/zend-escaper
composer require zendframework/zend-stdlib Cách cài đặt PHPWordSau đó, bạn đã sẵn sàng các điều kiện tiên quyết, bạn có thể cài đặt PHPWord bằng lệnh soạn thảo đơn giản composer require phpoffice/phpword Tạo tài liệu Word bằng PHPTạo một tài liệu từ rất đơn giản. Bạn cần tạo một tài liệu mới bằng phương thức PhpWord(), tạo một phần mới bằng phương thức addSection() và thêm văn bản vào đó bằng phương thức addText(). Sau đây là đoạn mã để tạo một tài liệu từ đơn giản Không biết có ai trong số các bạn có bất kỳ kinh nghiệm nào với PHPWord không (thực ra là một thư viện khá hay mà tôi tình cờ biết được), nhưng đáng để thử Vì vậy, hoặc tôi đang thiếu một cái gì đó rất rõ ràng, hoặc nếu không thì tôi gặp may mắn khủng khiếp. Tôi đang cố tải một. docx bằng PHPWord, đặt giá trị trong đó và lưu tệp. Vấn đề là tệp đã lưu xuất hiện dưới dạng tài liệu từ trống, kích thước 7kb. Tài liệu tôi đưa vào lớn và có nhiều trang. Rõ ràng là nó không tải đúng cách. mã của tôi là như sau
Tôi đã thử với nhiều bài kiểm tra. docx thuộc các loại khác nhau, nhưng tệp đầu ra luôn trống 28 Tháng Bảy, 2014 lúc 9. 38 giờ sáng #176696 __ người tham gia
Tại sao điều này là rõ ràng? . bạn chưa mô tả chi tiết những gì bạn đã cố gắng thực hiện, bạn cũng chưa cung cấp bất kỳ liên kết nào đến mã hoặc tài liệu có thể giúp chỉ ra cách thực hiện. Không có giải thích chi tiết, tất cả những gì chúng ta có thể làm là đưa ra những phỏng đoán hoang dã đoán hoang dã. bạn đang tạo một thể hiện của lớp và gán nó cho chỉnh sửa Đây có phải là thư viện bạn đang sử dụng không? . Bạn đã đặt câu hỏi của mình trên diễn đàn thảo luận của PhpWord chưa? Một đề xuất khác là đảm bảo bạn đã bật báo cáo lỗi 28 Tháng Bảy, 2014 lúc 9. 44 giờ sáng #176697 Harris Christiansen người tham gia Thư viện cho phpWord có thể được tìm thấy ở đây. https. //github. com/PHPOffice/PHPWord Có thể tìm thấy một ví dụ về cách sử dụng Mẫu phpWord tại đây. http. //phpword. đọcthedocs. org/vi/mới nhất/mẫu. html Đối với tôi, rõ ràng là nó không tải tệp mẫu bởi vì, theo các ví dụ về phpWords, nếu tôi thêm các phần và văn bản vào tệp, thì phần/văn bản đó sẽ hiển thị trong tệp đầu ra. Nhưng không có gì từ tệp mẫu đã tải hiển thị trong tệp đầu ra Báo cáo lỗi được bật để hiển thị tất cả các lỗi và cảnh báo, nhưng không có gì được hiển thị. Mặc dù nó cũng hơi khó chịu với cú pháp đối với tôi, nhưng bạn thực sự giả sử lưu biến $phpWord chứ không phải $document đã tạo. Các phần được thêm vào tệp theo cùng một cách và lưu chúng bằng cách tham khảo $phpWord thực sự hoạt động Tôi có xu hướng tránh xa trang web bạn đã liên kết vì có vẻ như dự án đã trôi dạt khỏi trang web đó, vì phiên bản được lưu trữ ở đó rất cũ so với phiên bản chính thức hiện tại trên github 28 Tháng Bảy, 2014 lúc 9. 51 giờ sáng #176698 __ người tham gia
À - theo cách tôi đọc OP của bạn, tệp đầu ra là "một tài liệu từ trống, kích thước 7kb", bất kể Nhìn sơ qua mã nguồn, có vẻ như các tác giả sử dụng các ngoại lệ để xử lý lỗi. (Bạn có đang sử dụng các khối composer require zendframework/zend-stdlib0 không?) Đảm bảo rằng bạn đã bật báo cáo lỗi trên máy chủ của mình và xem có thông báo lỗi nào hiển thị không — nếu tải mẫu không thành công, có ba hoặc bốn điểm mà bạn sẽ bị ném ngoại lệ 28 Tháng Bảy, 2014 lúc 9. 56 giờ sáng #176699 Harris Christiansen người tham gia Tôi xin lỗi vì sự nhầm lẫn tiếp tục. Tệp đầu ra là một tài liệu từ trống, kích thước 7kb, khi tất cả những gì tôi làm là tải mẫu và cố gắng đặt giá trị. Chỉ cần thông qua thử nghiệm, chẳng hạn như thêm các phần và văn bản bổ sung vào “tệp mẫu”, mọi thứ (và chỉ văn bản được thêm vào) sẽ hiển thị trên tệp đầu ra Nó không tải mẫu bị lỗi, ngoài ra không có gì hiển thị. Báo cáo lỗi được bật hoàn toàn và nếu tôi thay đổi đường dẫn tệp tải thành tệp không tồn tại, nó sẽ đưa ra ngoại lệ 28 Tháng Bảy, 2014 lúc 9. 58 giờ sáng #176700 __ người tham gia
…Điều mà tôi nhận thấy sau khi theo liên kết của bạn. Mặc dù vậy, repo github dường như có một trang Sự cố. Bạn có thể bắt đầu bằng cách xem qua các báo cáo đó để xem liệu bạn có thể tìm thấy sự cố tương tự không. (Tuy nhiên, lưu ý rằng đây là các báo cáo lỗi; đây không phải là nơi thích hợp để yêu cầu trợ giúp về một đoạn mã cụ thể. *) * mặc dù mọi người có vẻ hỏi rất nhiều câu hỏi ở đó, nên có lẽ các tác giả không bận tâm…
Được chứ
Nó liên quan nhiều hơn đến cách mã thực sự hoạt động. Ví dụ composer require zendframework/zend-stdlib1 đại diện cho toàn bộ tài liệu, trong khi các tài liệu, phần, v.v. đại diện cho các phần của tài liệu (thực ra là “lồng nhau” bên trong đối tượng PhpWord). Khi biết điều này, bạn nên lưu đối tượng PhpWord thay vì một trong các thành phần Tôi sẽ dành chút thời gian để xem xét cách thức hoạt động của tính năng này, nhưng tôi có thể không có thời gian ngay để thực sự tải xuống và kiểm tra mọi thứ. Tôi sẽ cho bạn biết nếu tôi tìm thấy bất kỳ manh mối nào 28 Tháng Bảy, 2014 lúc 10. 16 giờ sáng #176701 Harris Christiansen người tham gia Được rồi, cảm ơn bạn. Hiện tại để bạn có thể sao chép nhiều nhất có thể, tôi sẽ đưa tất cả mã cho những gì tôi đã làm và cho bạn biết tệp của tôi trông như thế nào Tôi đã thử nghiệm kịch bản với nhiều. docx, tất cả những tệp này tôi tải xuống từ trực tuyến hoặc nhập nội dung nào đó vào Microsoft Word. Tôi đã thử những thứ thậm chí cơ bản như Hello World. Tôi đang lưu các tệp của mình vì tôi sẽ lưu bất kỳ tệp Microsoft Word nào, không phải theo bất kỳ kiểu mẫu, đặc biệt nào, vì tôi không thấy bất kỳ dấu hiệu nào cho thấy tôi nên làm như vậy mã của tôi là
28 Tháng Bảy, 2014 lúc 12. 26 giờ chiều #176709 Harris Christiansen người tham gia giải quyết. Vì một số lý do, PHPWord không thích tạo tệp đầu ra để tải xuống từ các mẫu. Tôi đã có thể lưu tài liệu vào máy chủ ($document, not $PHPWord) và sau đó đọc tệp tài liệu để bắt đầu tải xuống composer require zendframework/zend-stdlib2 28 Tháng Bảy, 2014 lúc 12. 29 giờ tối #176710 __ người tham gia Mát mẻ. Tôi đã thắc mắc về điều đó, nhưng tôi không tìm thấy bất kỳ tài liệu nào về nó và có vẻ như nó sẽ hoạt động. Vui vì bạn đã giải quyết nó Làm cách nào để đọc nội dung của tệp docx trong PHP?Bạn có thể sử dụng PHPOffice để đọc nội dung docx bằng PHP . và sau đó print_r $content để xem nội dung dưới dạng chuỗi.
Làm cách nào để cài đặt PHPWord mà không cần Composer?Đối với PHPWord, tôi sẽ tải xuống tệp zip từ GitHub và chuyển nội dung của thư mục src sang thư mục có tên "lib\PhpOffice\PhpWord". Sau đó, bạn sẽ cần một trình nạp lớp PHP. . PHP5. 3. . Tiện ích mở rộng Trình phân tích cú pháp XML Thành phần Zend\Escaper Thành phần Zend\Stdlib Thành phần Zend\Validator PHPWord là gì?PHPWord là một thư viện được viết bằng PHP thuần cung cấp một tập hợp các lớp để ghi và đọc từ các định dạng tệp tài liệu khác nhau .
Làm cách nào để cài đặt PHPWord?PHPWord được cài đặt thông qua Trình soạn thảo . Bạn chỉ cần thêm phần phụ thuộc vào PHPWord vào gói của mình. Nếu bạn là nhà phát triển hoặc nếu bạn muốn giúp chúng tôi thử nghiệm thì hãy tìm nạp nhánh mới nhất dành cho nhà phát triển. Lưu ý. tất cả các đóng góp phải được thực hiện đối với chi nhánh nhà phát triển. |