Hướng dẫn phpoffice phpword iofactory createwriter - phpoffice phpword iofactory createwriter

Phpword

Ví dụ cơ bản

Sau đây là một ví dụ cơ bản của thư viện PHPWord. Nhiều ví dụ được cung cấp trong thư mục mẫu.

<?php
require_once 'bootstrap.php';

// Creating the new document...
$phpWord = new \PhpOffice\PhpWord\PhpWord();

/* Note: any element you append to a document must reside inside of a Section. */

// Adding an empty Section to the document...
$section = $phpWord->addSection();
// Adding Text element to the Section having font styled by default...
$section->addText(
    '"Learn from yesterday, live for today, hope for tomorrow. '
        . 'The important thing is not to stop questioning." '
        . '(Albert Einstein)'
);

/*
 * Note: it's possible to customize font style of the Text element you add in three ways:
 * - inline;
 * - using named font style (new font style object will be implicitly created);
 * - using explicitly created font style object.
 */

// Adding Text element with font customized inline...
$section->addText(
    '"Great achievement is usually born of great sacrifice, '
        . 'and is never the result of selfishness." '
        . '(Napoleon Hill)',
    array('name' => 'Tahoma', 'size' => 10)
);

// Adding Text element with font customized using named font style...
$fontStyleName = 'oneUserDefinedStyle';
$phpWord->addFontStyle(
    $fontStyleName,
    array('name' => 'Tahoma', 'size' => 10, 'color' => '1B2232', 'bold' => true)
);
$section->addText(
    '"The greatest accomplishment is not in never falling, '
        . 'but in rising again after you fall." '
        . '(Vince Lombardi)',
    $fontStyleName
);

// Adding Text element with font customized using explicitly created font style object...
$fontStyle = new \PhpOffice\PhpWord\Style\Font();
$fontStyle->setBold(true);
$fontStyle->setName('Tahoma');
$fontStyle->setSize(13);
$myTextElement = $section->addText('"Believe you can and you\'re halfway there." (Theodor Roosevelt)');
$myTextElement->setFontStyle($fontStyle);

// Saving the document as OOXML file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('helloWorld.docx');

// Saving the document as ODF file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'ODText');
$objWriter->save('helloWorld.odt');

// Saving the document as HTML file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'HTML');
$objWriter->save('helloWorld.html');

/* Note: we skip RTF, because it's not XML-based and requires a different example. */
/* Note: we skip PDF, because "HTML-to-PDF" approach is used to create PDF documents. */

Cài đặt Phpword

Lớp

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
3 cung cấp một số tùy chọn sẽ ảnh hưởng đến hành vi của Phpword. Dưới đây là các tùy chọn.

Khả năng tương thích của nhà văn XML

Tùy chọn này đặt xmlwriter :: setindent và xmlWriter :: setAdnentString. Giá trị mặc định của tùy chọn này là

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
4 (tương thích), được yêu cầu cho OpenOffice để hiển thị tài liệu OOXML một cách chính xác. Bạn có thể đặt tùy chọn này thành
\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
5 trong quá trình phát triển để làm cho tệp XML kết quả dễ đọc hơn.

\PhpOffice\PhpWord\Settings::setCompatibility(false);

Lớp zip

Theo mặc định, PHPWord sử dụng tiện ích mở rộng ZIP để xử lý các tài liệu lưu trữ và tệp được nén ZIP bên trong chúng. Nếu bạn có thể cài đặt tiện ích mở rộng zip trên máy chủ của mình, bạn có thể sử dụng thư viện Php Pure thay thế, PCLZIP, được bao gồm trong Phpword.

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);

Đầu ra thoát ra

Viết tài liệu của một số định dạng, đặc biệt là dựa trên XML, yêu cầu thoát đầu ra chính xác. Không có nó, tài liệu của bạn có thể bị hỏng khi bạn đặt các nhân vật đặc biệt như ampersand, trích dẫn và những người khác trong đó.

Thoát khỏi có thể được thực hiện theo hai cách: bên ngoài thư viện bởi một nhà phát triển phần mềm và bên trong thư viện theo cơ chế tích hợp. Theo mặc định, cơ chế tích hợp bị vô hiệu hóa để tương thích ngược với các phiên bản trước V0.13.0. Để bật tùy chọn

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
6 thành
\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
4 trong tệp cấu hình PHPWord của bạn hoặc sử dụng hướng dẫn sau khi chạy:

\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);

Giấy mặc định Bur

Theo mặc định, tất cả các phần của tài liệu sẽ in trên giấy A4. Bạn có thể thay đổi giấy mặc định bằng cách sử dụng chức năng sau:

\PhpOffice\PhpWord\Settings::setDefaultPaper('Letter');

Phông chữ mặc định

Theo mặc định, mọi văn bản xuất hiện trong Arial 10 điểm. Bạn có thể thay đổi phông chữ mặc định bằng cách sử dụng hai hàm sau:

$phpWord->setDefaultFontName('Times New Roman');
$phpWord->setDefaultFontSize(12);

Cài đặt tài liệu

Cài đặt cho tài liệu được tạo có thể được đặt bằng cách sử dụng

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
8

Cài đặt phóng đại

Giá trị zoom mặc định là 100 phần trăm. Điều này có thể được thay đổi thành một tỷ lệ phần trăm khác

$phpWord->getSettings()->setZoom(75);

Hoặc các giá trị được xác định trước

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
9,
\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
0,
\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
1

$phpWord->getSettings()->setZoom(Zoom::BEST_FIT);

Phản ánh lề trang

Sử dụng lề gương để thiết lập các trang đối diện cho các tài liệu hai mặt, chẳng hạn như sách hoặc tạp chí.

$phpWord->getSettings()->setMirrorMargins(true);

Kiểm tra chính tả và ngữ pháp

Theo mặc định chính tả và lỗi ngữ pháp được hiển thị ngay khi bạn mở một tài liệu Word. Đối với các tài liệu lớn, điều này có thể làm chậm việc mở tài liệu. Bạn có thể ẩn các lỗi chính tả và/hoặc ngữ pháp với:

$phpWord->getSettings()->setHideGrammaticalErrors(true);
$phpWord->getSettings()->setHideSpellingErrors(true);

Bạn cũng có thể chỉ định trạng thái của kiểm tra câu thần chú và ngữ pháp, đánh dấu chính tả hoặc ngữ pháp là bẩn sẽ buộc kiểm tra lại khi mở tài liệu.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
0

Theo dõi sửa đổi Or

Các thay đổi theo dõi có thể được kích hoạt bằng cách sử dụng

\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
2, bạn có thể chỉ định chỉ định

  • Không sử dụng cú pháp di chuyển, thay vào đó các mục đã di chuyển sẽ được coi là bị xóa ở một nơi và được thêm vào một nơi khác
  • Không theo dõi sửa đổi định dạng

\PhpOffice\PhpWord\Settings::setCompatibility(false);
1

Ký hiệu thập phân¶

Biểu tượng mặc định để biểu thị một hình thập phân là

\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
3 trong tiếng Anh. Trong tiếng Pháp, bạn có thể muốn thay đổi nó thành
\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
4 chẳng hạn.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
2

Ngôn ngữ tài liệu

Ngôn ngữ mặc định của tài liệu có thể thay đổi với những điều sau đây.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
3

\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
5 có 3 tham số, một cho các ngôn ngữ Latin, một cho các ngôn ngữ Đông Á và một cho các ngôn ngữ phức tạp (hai chiều). Một vài mã ngôn ngữ được cung cấp trong lớp
\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
6 nhưng bất kỳ mã/ID hợp lệ nào cũng có thể được sử dụng.

Trong trường hợp bạn đang tạo tài liệu RTF, ngôn ngữ cần được đặt khác nhau.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
4

Thông tin tài liệu¶

Bạn có thể đặt thông tin tài liệu như tiêu đề, người tạo và tên công ty. Sử dụng các chức năng sau:

\PhpOffice\PhpWord\Settings::setCompatibility(false);
5

Đơn vị đo lường¶

Đơn vị chiều dài cơ sở trong Open Office XML là Twip. Twip có nghĩa là thứ hai mươi của một inch point, tức là 1 twip = 1/1440 inch.

Bạn có thể sử dụng các chức năng của phpword Helper để chuyển đổi inch, centimet hoặc chỉ thành twip.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
6

Bảo vệ tài liệu

Tài liệu (hoặc các phần của nó) có thể được bảo vệ mật khẩu.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
7

Tự động tính toán lại các trường trên Open¶

Để buộc cập nhật các trường có trong tài liệu, hãy đặt UpdateField thành true

\PhpOffice\PhpWord\Settings::setCompatibility(false);
8

Dấu gạch nối

Bạch cầu mô tả quá trình phá vỡ các từ với dấu gạch nối. Có một số tùy chọn để kiểm soát dấu gạch nối.

Tự động gạch nối

Để tự động lập thư văn bản, đặt

\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
7 thành
\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
4.

\PhpOffice\PhpWord\Settings::setCompatibility(false);
9

Giới hạn gạch nối liên tiếp

Số lượng văn bản liên tiếp tối đa kết thúc bằng dấu gạch nối có thể được kiểm soát bởi tùy chọn

\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
9. Không có giới hạn nếu tùy chọn không được đặt hoặc giá trị được cung cấp là
\PhpOffice\PhpWord\Settings::setDefaultPaper('Letter');
0.

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
0

Vùng gạch nối

Vùng gạch nối (trong twip) là lượng khoảng trắng cho phép trước khi gạch nối được áp dụng. Vùng gạch nối càng nhỏ thì càng nhiều từ được gạch nối. Hay nói cách khác, vùng gạch nối càng rộng thì càng ít từ được gạch nối.

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
1

CAPS ERPHENATE

Để kiểm soát xem các từ trong tất cả các chữ in hoa có được gạch nối, sử dụng tùy chọn DonothyphenateCaps.

\PhpOffice\PhpWord\Settings::setZipClass(\PhpOffice\PhpWord\Settings::PCLZIP);
2