Java API منبع باز برای Word DOCX Documents
ایجاد، خواندن، ویرایش و تبدیل فایلهای Microsoft Word DOCX، اضافه کردن متن و جداول از طریق کتابخانه جاوا.
DOCX4J یک کتابخانه منبع باز (Apache v2) مبتنی بر JAXB برای دستکاری فرمت های فایل مایکروسافت آفیس است. قابلیت خواندن، نوشتن، ویرایش و ذخیره فرمت فایل Microsoft Word 2007 DOCX را فراهم میکند.
DOCX4J مشابه OpenXML SDK مایکروسافت است، اما برای جاوا. از JAXB برای ایجاد نمایش شی در حافظه استفاده می کند. با استفاده از API میتوانید اسناد Mircosoft Office را تولید کنید، آنها را ویرایش کنید، متن و پاراگرافها را قالببندی کنید، جداول و تصاویر را درج کنید و سایر عناصر فرم را مدیریت کنید و موارد دیگر. اساساً تأکید آن بر قدرت است، اگر فرمت از آن پشتیبانی می کند، می توانید با استفاده از API این کار را انجام دهید.
شروع کار با DOCX4J
اول از همه، شما باید کیت توسعه جاوا (JDK) را روی سیستم خود نصب کنید. ارجاع به DOCX4J در پروژه جاوا مبتنی بر Maven شما حتی ساده تر است. تنها چیزی که نیاز دارید این است که وابستگی زیر را در pom.xml خود اضافه کنید و اجازه دهید IDE شما فایل های DOCX4J Jar را واکشی و ارجاع دهد.
DOCX4J Maven Dependency
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-Internal</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-MOXy</artifactId>
<version>8.0.0</version>
</dependency>
اضافه کردن پاراگراف، تصویر و جدول به اسناد Word
DOCX4J به توسعهدهندگان اجازه میدهد پاراگرافها و تصاویر را به اسناد Word اضافه کنند. API همچنین ویژگی افزودن جداول به اسناد DOCX را فراهم میکند و در عین حال امکان ایجاد جداول ساده و تودرتو با دادههای تعریفشده توسط کاربر را فراهم میکند.
DOCX Free را با استفاده از DOCX4J - Java ایجاد کنید
// Create word package
WordprocessingMLPackage wordPackage = WordprocessingMLPackage.createPackage();
// Create main document part
MainDocumentPart mainDocumentPart = wordPackage.getMainDocumentPart();
// Add Paragraph
mainDocumentPart.addParagraphOfText("Open Source Java API for Word DOCX Documents");
// Save file
wordPackage.save(new File("FileFormat.docx"));
متن را از DOCX استخراج کنید
DOCX4J کلاس تخصصی را برای استخراج دادهها از اسناد Microsoft Word DOCX تنها با چند خط کد فراهم میکند. به همین ترتیب، میتواند سرفصلها، پاورقیها، دادههای جدول و غیره را از یک فایل Word استخراج کند.
متن را از DOCX Free - Java استخراج کنید
// Load document
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("FileFormat.docx"));
// Load main document part
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
// Extract nodes
String textNodesXPath = "//w:t";
List<Object> textNodes= mainDocumentPart.getJAXBNodesViaXPath(textNodesXPath, true);
// Print text
for (Object obj : textNodes) {
Text text = (Text) ((JAXBElement) obj).getValue();
String textValue = text.getValue();
System.out.println(textValue);
}
ایجاد و ویرایش اسناد Word با استفاده از Java API
DOCX4J برنامه نویسان نرم افزار را قادر می سازد تا اسناد Word جدید را در قالب فایل DOCX ایجاد کنند. توسعه دهندگان همچنین می توانند فایل DOCX مایکروسافت ورد موجود را بارگذاری کنند تا آن را مطابق با نیازهای برنامه خود ویرایش کنند. به شما امکان می دهد پاراگراف های جدید اضافه کنید، متن را وارد کنید، تراز و حاشیه متن را اعمال کنید، استایل متن را تغییر دهید و موارد دیگر.
تبدیل اسناد Microsoft Word Docx به PDF
کتابخانه منبع باز جاوا docx4j پشتیبانی کاملی از تولید و تبدیل اسناد Microsoft Word docx به فرمت های مختلف محبوب ارائه می دهد. در آنجا docx4j 3 روش مختلف برای تبدیل اسناد Microsoft Word docx به PDF ارائه می دهد. مثال زیر از document4j (در حال اجرا از راه دور) برای تبدیل فایل docx به PDF استفاده می کند.
تبدیل اسناد EWord Docx به PDF از طریق جاوا
public class DocxFileToPDF {
public static void main(String[] args) throws IOException, Docx4JException {
File output = new File(System.getProperty("user.dir")+"/result.pdf");
FileOutputStream fos = new FileOutputStream(output);
Documents4jRemoteServices exporter = new Documents4jRemoteServices();
exporter.export(new File(System.getProperty("user.dir")+"/../docx4j-samples-docx4j/sample-docs/sample-docx.docx") , fos, DocumentType.MS_WORD);
fos.close();
}
}