Jawaban ini melewati semua tes, tetapi bagan alur satu di dokumen tes Anda.
sudo apt-get install unoconv
doc2pdf respondus-docx-sample-file.docx
Mengapa ini lebih baik daripada metode lain yang disarankan sejauh ini?
Saya telah menguji metode lain yang disarankan sejauh ini (terutama oowriter
dan ebook-convert
), tetapi mereka lulus tes lebih sedikit daripada metode ini. The ebook-convert
Metode strip margin dan bagian dari teks-teks dari dokumen.
Metode ini bahkan menghasilkan hasil yang lebih baik daripada konverter profesional sebagai rainbowpdf .
Saya juga mencoba mengonversinya menjadi html, tetapi gambar dengan kuadrat dalam lingkaran dan diagram alur salah.
Mengapa tes diagram alir gagal?
Tampaknya libreoffice dan unoconv memiliki beberapa masalah dengan merender diagram alur yang ada dalam file .docx dengan benar. Ini mungkin karena itu dibuat menggunakan seni pintar di Microsoft Office. Itulah masalahnya. Itu adalah bug yang juga dibahas di utas ini . Informasi tekstual dan visual hadir dalam pdf yang dihasilkan dari metode di atas seperti yang Anda lihat (meskipun saya harus memilih teks).
Warna font, misalnya, tidak dibaca dengan benar dan beberapa baris terlalu panjang. Saya tidak mengetahui adanya solusi linux yang dapat menampilkan seni pintar dengan benar. :(
Ini juga alasan mengapa semua print
solusi yang diposting di halaman ini tidak akan memuaskan Anda.
Pendeknya
Singkatnya, apa yang Anda lakukan sangat sulit dan saat ini tidak ada solusi yang akan memuaskan Anda sepenuhnya. Tumit achilles dari konversi docx2pdf adalah seni yang cerdas. Jika Anda dapat hidup tanpa itu atau jika Anda dapat menemukan cara untuk melihat seni pintar dan mengubahnya entah bagaimana menjadi gambar, Anda dapat mencapai tujuan Anda.
Opsi 1. Paksa pengguna Anda untuk menghadapi masalah
Ini adalah solusi yang sangat tidak tepat. Pembuat konten Anda dapat menyimpan seni cerdas mereka sebagai jpg seperti yang dijelaskan di halaman bantuan kantor dan karenanya konversi mungkin dilakukan di server Anda.
Opsi 2. Retas jalan Anda di sekitar masalah
Jika diagram alir sering sangat mirip dan tergantung pada seberapa baik pengembang Anda, Anda dapat mencoba dan mengonversi seni pintar secara terpisah. Anda bisa, mengekstrak file drawing1.xml dari .docx kumpulan dokumen dan kemudian menggunakan pemrosesan bahasa alami dan beberapa peretasan gila untuk membangun kembali seni cerdas. Misalnya, Anda harus mengacaukan xml jenis ini:
<dsp:txBody>
<a:bodyPr spcFirstLastPara="0" vert="horz" wrap="square" lIns="8255" tIns="8255" rIns="8255" bIns="8255" numCol="1" spcCol="1270" anchor="ctr" anchorCtr="0">
<a:noAutofit/>
</a:bodyPr>
<a:lstStyle/>
<a:p>
<a:pPr lvl="0" algn="ctr" defTabSz="577850">
<a:lnSpc><a:spcPct val="90000"/>
</a:lnSpc>
<a:spcBef>
<a:spcPct val="0"/>
</a:spcBef>
<a:spcAft>
<a:spcPct val="35000"/>
</a:spcAft>
</a:pPr>
<a:r>
<a:rPr lang="en-US" sz="1300" b="1" kern="1200"/>
<a:t>All three sides are different lengths
</a:t>
</a:r>
</a:p>
</dsp:txBody>
Atau sebagai solusi minimal Anda setidaknya mengekstrak teks ( <a:t>
?) Dari file dan menyimpannya dengan cara yang lebih mudah. Atau jika diagram alir pdf Anda sama, Anda bisa menulis skrip untuk mengubah warna teks dan panjang baris dalam xml itu sendiri. Kemudian Anda dapat menjalankan doc2pdf
dan Anda akan memiliki file yang pada dasarnya memiliki semua info yang benar, tetapi mungkin tidak memformat. Dalam hal diagram alir Anda mungkin juga ingin menyertakan beberapa pemformatan, karena pemformatan adalah bagian dari info.
Opsi 3. Gunakan layanan pihak ketiga
Saya telah melakukan beberapa penelitian lebih lanjut beberapa hari terakhir dan saya telah menemukan layanan yang melakukan konversi dengan sempurna: zamzar . Zamzar memungkinkan Anda untuk mengunggah file docx dan kemudian mengirimkan tautan kepada Anda melalui email. Mereka juga memiliki layanan (membayar?) Di mana Anda dapat mengirim file apa pun ke pdf@zamzar.com dan kemudian mendapatkan file yang dikonversi kembali di kotak masuk Anda. Anda dapat dengan mudah membangun sistem di sekitar tempat ini untuk mengirim file secara otomatis dan menguraikannya dari email. Ini bukan pekerjaan yang banyak dan hasil akhirnya adalah yang terbaik.
Catatan
- Jika ada yang memiliki layanan lain yang melakukan hal yang sama, silakan mengeditnya.
- Saya telah mengirimkan dukungan zamzar untuk menanyakan apakah mereka memiliki api. Itu akan lebih mudah.
- Mungkin apose untuk .NET dan Java juga bisa membantu? Atau docx4java seperti dalam posting SO yang sangat terkait ini .
- Pilihan lain adalah untuk melihat ke odf-converter yang tampaknya tanggal dan tergantung pada openoffice daripada libreoffice.
- Sekarang saya dapat mengonfirmasi bahwa java jodconverter juga mengalami kegagalan diagram alir konversi.
Saya sebenarnya telah meluangkan waktu untuk menguji berbagai metode yang diusulkan pada halaman ini. Harap cadangkan semua komentar dengan tes yang sebenarnya.