Saya memiliki aplikasi baru yang akan saya kerjakan di mana saya harus menghasilkan dokumen Word yang berisi tabel, grafik, daftar isi dan teks. Apa API yang bagus untuk digunakan untuk ini? Seberapa yakin Anda bahwa ini mendukung grafik, ToC, dan tabel? Apa saja alasan tersembunyi dalam menggunakannya?
Beberapa klarifikasi:
- Saya tidak bisa mengeluarkan PDF, mereka menginginkan dokumen Word.
- Mereka menggunakan MS Word 2003 (atau 2007), bukan OpenOffice
- Aplikasi berjalan di * nix app-server
Alangkah baiknya jika saya bisa memulai dengan dokumen template dan hanya mengisi beberapa ruang dengan tabel, grafik, dll.
Sunting: Beberapa jawaban bagus di bawah ini, masing-masing dengan kesalahan mereka sendiri sejauh situasi saya saat ini. Sulit untuk memilih "jawaban akhir" dari mereka. Pikir saya akan membiarkannya terbuka, dan berharap solusi yang lebih baik akan dibuat.
Sunting: Proyek OpenOffice UNO tampaknya paling dekat dengan apa yang saya minta. Meskipun POI lebih umum, POI terlalu tidak dewasa untuk apa yang saya inginkan.
Jawaban:
Pada tahun 2007 proyek saya berhasil menggunakan antarmuka Universal Network Objects (UNO) OpenOffice.org untuk menghasilkan dokumen yang kompatibel dengan MS-Word (* .doc) secara terprogram, serta dokumen PDF yang sesuai, dari aplikasi Java Web (kerangka Struts / JSP).
OpenOffice UNO juga memungkinkan Anda membuat bagan, spreadsheet, presentasi yang kompatibel dengan MS-Office, dll. Kami dapat membuat dokumen Word yang canggih secara dinamis, termasuk bagan dan tabel.
Kami menyederhanakan proses dengan menggunakan templat dokumen MS-Word dengan sisipan penanda tempat perangkat lunak memasukkan konten, namun Anda dapat membuat dokumen sepenuhnya dari awal. Tujuannya adalah agar perangkat lunak menghasilkan dokumen laporan yang dapat dibagikan dan selanjutnya diubah oleh pengguna akhir sebelum mengubahnya menjadi PDF untuk pengiriman akhir dan pengarsipan.
Anda secara opsional dapat menghasilkan dokumen dalam format OpenOffice jika Anda ingin pengguna menggunakan OpenOffice sebagai ganti MS-Office. Dalam kasus kami, pengguna ingin menggunakan alat MS-Office.
UNO disertakan dalam suite OpenOffice. Kami hanya menautkan aplikasi Java kami ke perpustakaan terkait UNO di dalam suite. Tersedia OpenOffice Software Development Kit (SDK) yang berisi aplikasi contoh dan Panduan Pengembang UNO.
Saya belum menyelidiki apakah OpenOffice UNO terbaru dapat menghasilkan format dokumen MS-Office 2007 Open XML.
Hal-hal penting tentang OpenOffice UNO adalah:
Berikut beberapa situs web yang berguna:
sumber
Saya pikir Apache POI dapat melakukan pekerjaan itu. Masalah yang mungkin terjadi tergantung pada penggunaan yang Anda tuju mungkin disebabkan oleh fakta bahwa HWPF masih dalam pengembangan awal.
sumber
Anda dapat menggunakan ini: http://code.google.com/p/java2word
Saya menerapkan API ini yang disebut Java2Word. dengan beberapa baris kode, Anda dapat menghasilkan satu Dokumen Microsoft Word.
Misalnya.:
Ada beberapa contoh cara menggunakan. Pada dasarnya Anda membutuhkan satu file jar. Beri tahu saya jika Anda memerlukan informasi lebih lanjut tentang cara menyiapkannya.
* Saya menulis ini karena kami memiliki satu kebutuhan nyata dalam sebuah proyek. Selengkapnya di blog saya:
http: //leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html *
sorak Leonardo
Sunting : Proyek dalam tautan dipindahkan ke https://github.com/leonardoanalista/java2word
sumber
Coba Aspose.Words untuk Java, ini berjalan di OS apa pun tempat Java diinstal.
Ini akan mengeluarkan dokumen ke DOC, DOCX atau RTF jika Anda membutuhkan format keluaran MS Word. Semua didukung sama baiknya.
Dengan menggunakan API ini, Anda dapat membuat dokumen dari awal, secara harfiah dari node dan mengatur properti pemformatannya. Anda juga dapat menggunakan DocumentBuilder yang menyediakan metode tingkat yang lebih tinggi seperti membuat baris tabel, menyisipkan bidang, dll. Atau Anda dapat menyalin / menggabungkan / memindahkan bagian antara dokumen yang sudah dibuat sebelumnya, misalnya Anda ingin menyusun kontrak, ambil dan salin saja potongan-potongan dari beberapa dokumen dan Aspose.Words akan menggabungkan gaya, format daftar dll dengan benar dalam dokumen yang dihasilkan.
Anda akan dapat memasukkan bidang TOC menggunakan Aspose.Words, tetapi untuk hari ini, bidang TOC akan membutuhkan pembaruan bidang ketika dokumen dibuka di Microsoft Word. Namun, kami akan merilis dukungan penuh untuk bidang TOC di awal tahun 2010. Misalnya, akan membangun TOC lengkap seperti yang dilakukan MS Word.
Saya anggota tim Aspose.Words.
sumber
Itu hanya disebutkan sebentar sekali, jadi saya ingin memanggil perpustakaan docx4j, karena saya lebih sukses dengan docx4j daripada yang lainnya. Dukungan Apache POI untuk dokumen Word tidak terlalu baik. Juga, tidak seperti Aspose.Words, docx4j adalah perpustakaan open source.
Satu-satunya kelemahan adalah dengan docx4j Anda harus membuat dokumen format Office Open XML (docx) daripada dokumen format berbasis OLE2 (doc). Ini adalah format default untuk Word 2007, tetapi Word 2003 dan pengguna sebelumnya perlu menginstal paket kompatibilitas.
sumber
Coba Aspose.Words untuk java.
sumber
Anda dapat menggunakan jembatan Java COM seperti JACOB . Jika dari sisi klien, opsi lain adalah menggunakan Javascript.
sumber
Saya telah menggunakan Aspose.Words untuk melakukan mail merge di .NET. Saya yakin mereka juga memiliki versi Java.
sumber
Ada alat bernama JODConverter yang menghubungkan ke kantor terbuka untuk mengekspos konverter format file, ada versi yang tersedia sebagai aplikasi web (ada di kucing jantan) yang Anda posting dan alat baris perintah. Saya telah menjalankan html dan mengonversinya ke .doc dan pdf dengan sukses itu dalam proyek yang cukup besar, belum ditayangkan tetapi saya pikir saya akan menggunakannya. http://sourceforge.net/projects/jodconverter/
sumber
iText sangat mudah digunakan.
Jika Anda meminta file doc, Anda dapat memanggil abiword ( pengolah teks multi-os ringan gratis) dari baris perintah, ia memiliki beberapa opsi konversi format konversi.
sumber
docx4j atau poi, keduanya adalah ASL v2
@wondersofcomputing: iText sebenarnya gratis dan open source
sumber
Bill, POI dan API iText sangat mirip dari perspektif pemrograman. Saya telah bekerja dengan keduanya di masa lalu dan menemukan keduanya mudah digunakan dan didokumentasikan dengan baik.
Dengan iText Anda mendapatkan keuntungan karena dapat beralih antar format (RTF dan PDF) dengan sedikit perubahan pada kode. Jika saya ingat dengan benar, konten akan disusun menggunakan panggilan yang sama dan kemudian disetel sebagai PDF atau RTF menggunakan beberapa baris kode.
Namun saya yakin pemformatan dalam RTF terbatas dibandingkan dengan DOC. Saya tidak tahu apakah Anda akan dapat menerapkan fitur-fitur canggih yang Anda cari (tabel, gambar sebaris) tanpa kerumitan yang layak, jika sama sekali.
Mengingat apa yang Anda katakan tentang HWPF yang tidak memiliki cukup fungsionalitas untuk kebutuhan Anda (saya hanya membahas sisi Excel POI) taruhan terbaik Anda mungkin adalah meyakinkan kekuatan bahwa PDF adalah teknologi terbaik untuk pekerjaan itu .
sumber
Saya telah mengembangkan file kata berbasis XML murni di masa lalu. Saya menggunakan .NET, tetapi bahasanya tidak masalah karena itu benar-benar XML. Ini bukan hal termudah untuk dilakukan (memiliki proyek yang membutuhkannya beberapa tahun yang lalu.) Ini hanya berfungsi di Word 2007 atau lebih tinggi - tetapi yang Anda butuhkan hanyalah kertas putih Microsoft yang menjelaskan apa yang dilakukan setiap tag. Anda dapat mencapai semua yang Anda inginkan dengan tag dengan cara yang sama seperti jika Anda menggunakan Word (tentu saja pada awalnya sedikit lebih menyakitkan.)
sumber
Setelah sedikit riset, saya menemukan iText , API pembuatan file PDF dan RTF. Saya rasa saya dapat menggunakan generasi RTF untuk membuat file yang dapat dibaca Doc yang kemudian dapat diedit menggunakan Doc dan disimpan kembali.
Adakah yang punya pengalaman dengan iText, digunakan dengan cara ini?
sumber
Namun kemungkinan lain, karena ini adalah aplikasi web.
Saya dapat membuat halaman HTML dengan tipe MIME yang disetel ke "application / msword", yang menyebabkan browser menelurkan Word yang mengimpor html dengan baik, memungkinkan pengeditan dan penyimpanan seolah-olah saya akan mengeluarkan dokumen Word asli.
Tabel berfungsi dengan baik, tetapi gambar saya belum berfungsi. Ini mungkin semudah hanya memberi tag di HTML, atau saya mungkin harus mengalirkan bagian terpisah dari respons yang berisi data gambar dalam biner, atau metode lain yang belum saya temukan. :)
sumber
Meskipun ini lebih lambat dari permintaan, itu mungkin membantu orang lain. Docmosis menyediakan Java API untuk membuat dokumen dalam format doc, pdf, odt menggunakan dokumen sebagai template. Ia menggunakan OpenOffice sebagai mesin untuk melakukan konversi format. Manipulasi dokumen dan populasi dilakukan oleh Docmosis sendiri.
sumber