Apache POI HWPF
اسناد باینری Microsoft Word را پردازش کنید
ایجاد، خواندن، دستکاری و تبدیل فایل های DOC از طریق کتابخانه جاوا منبع باز.
Apache POI HWPF یک پورت Apache POI برای فرمت فایل Microsoft Word DOC است. این قابلیت برای خواندن و نوشتن فایل های DOC بدون نیاز به کتابخانه های اضافی را فراهم می کند. همچنین برای فرمتهای قدیمیتر Word 6 و Word 95 پشتیبانی فقط خواندنی محدودی ارائه میکند. در این مرحله، HWPF عمدتاً با متن فرمت شده سروکار دارد. استخراج متن اصلی، استخراج متن خاص، دسترسی به هدر و پاورقی و تغییر ویژگی های متن را فراهم می کند.
توسعه دهندگان را برای ایجاد اسناد MS-Word با توانایی دستکاری پاراگراف ها، اضافه کردن سبک های مختلف به متن، اضافه کردن جدول، استخراج متن و موارد دیگر تسهیل می کند.
شروع به کار با Apache POI HWPF
اول از همه، شما باید کیت توسعه جاوا (JDK) را روی سیستم خود نصب کنید. اگر قبلاً آن را دارید، به صفحه دانلود POI Apache بروید تا آخرین نسخه پایدار را در یک آرشیو دریافت کنید. محتویات فایل ZIP را در هر دایرکتوری که از آنجا می توان کتابخانه های مورد نیاز را به برنامه جاوا شما پیوند داد استخراج کنید. این همه است!
ارجاع به POI Apache در پروژه جاوا مبتنی بر Maven شما حتی ساده تر است. تنها چیزی که نیاز دارید این است که وابستگی زیر را در pom.xml خود اضافه کنید و اجازه دهید IDE شما فایل های Apache POI Jar را واکشی و ارجاع دهد.
Apache POI Maven Dependency
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
ایجاد و اصلاح اسناد Word با استفاده از API های جاوا
Apache POI HWPF برنامه نویسان را قادر می سازد تا اسناد Word جدید را در فرمت های فایل DOC ایجاد کنند. API همچنین به توسعه دهندگان اجازه می دهد تا اسناد Word موجود را بر اساس نیازهای خود تغییر دهند. API همچنین از افزودن یک پاراگراف در سند Word، اعمال ترازبندی متن و سبکهای فونت و موارد دیگر پشتیبانی میکند.
تغییر فایل DOC - جاوا
// open an empty doc file, using APACHE POI we cannot create .doc file format from scratch
HWPFDocument doc = new HWPFDocument(new FileInputStream("empty.doc"));
Range range = doc.getRange();
// inset text
CharacterRun run = range.insertAfter("File Format Developer Guide - " +
"Learn about computer files that you come across in " +
"your daily work at: www.fileformat.com ");
OutputStream out = new FileOutputStream("document.pdf");
// save document
doc.write(out);
out.close();
با استفاده از جاوا اسناد Word را به فرمت های دیگر تبدیل کنید
pache POI HWPF توسعه دهندگان نرم افزار را قادر می سازد تا اسناد Word Microsoft را به راحتی به هر فرمت فایل پشتیبانی شده تبدیل کنند. در حال حاضر توسعه دهندگان جاوا می توانند اسناد Word را به فرمت HTML، FO و Text تبدیل کنند. بسته org.apache.poi.hwpf.converter حاوی مبدل های Word-to-HTML و Word-to-FO است.
تبدیل DOC به HTML
// load document
HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("document.doc"));
Document newDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
// initialize WordToHtmlConverter
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(newDocument );
// process document
wordToHtmlConverter.processDocument( wordDocument );
StringWriter stringWriter = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
transformer.setOutputProperty( OutputKeys.METHOD, "html" );
transformer.transform(
new DOMSource( wordToHtmlConverter.getDocument() ),
new StreamResult( stringWriter ) );
// get html
String html = stringWriter.toString();
متن از فایل DOC را بخوانید
Apache POI HWPF کلاس WordExtractor را برای خواندن متن از فرمت فایل Microsoft Word DOC ارائه می دهد. تنها با چند خط کد می توانید متن را از فایل استخراج کنید.
متن را از یک فایل DOC استخراج کنید
// load DOC file
FileInputStream fis = new FileInputStream(new File("document.doc"));
// open file
HWPFDocument doc = new HWPFDocument(fis);
// read text
WordExtractor extractor = new WordExtractor(doc);
// display text
System.out.println(extractor.getText());
هدر و پاورقی سفارشی را به DOC اضافه کنید
Apache POI HWPF توسعه دهندگان جاوا را قادر می سازد تا سرصفحه ها و پاورقی های سفارشی را در اسناد Word ایجاد کنند. Apache POI HWPF به عنوان "با عملکرد متوسط" توصیف می شود. این پشتیبانی از استخراج متن اصلی، استخراج متن خاص، دسترسی به هدر و پاورقی و تغییر ویژگی های متن را فراهم می کند. متد getText() می تواند برای دریافت متن از تمام پاراگراف ها استفاده شود یا getParagraphText() می تواند برای واکشی متن از هر پاراگراف به نوبه خود استفاده شود.
هدر و پاورقی سفارشی را در فایل Word DOC مدیریت کنید
// The path to the documents directory.
String dataDir = Utils.getDataDir(ApacheHeaders.class);
POIFSFileSystem fs = null;
fs = new POIFSFileSystem(new FileInputStream(dataDir + "MyHeader.doc"));
HWPFDocument doc = new HWPFDocument(fs);
int pageNumber = 1;
HeaderStories headerStore = new HeaderStories(doc);
String header = headerStore.getHeader(pageNumber);
System.out.println("Header Is: " + header);