คำตอบนี้ผ่านการทดสอบทั้งหมด แต่แผนภูมิการไหลหนึ่งในเอกสารทดสอบของคุณ
sudo apt-get install unoconv
doc2pdf respondus-docx-sample-file.docx
ทำไมวิธีนี้ถึงดีกว่าวิธีอื่น ๆ
ฉันได้ทดสอบวิธีอื่น ๆ ที่แนะนำแล้ว (โดยเฉพาะoowriter
และebook-convert
) แต่พวกเขาผ่านการทดสอบน้อยกว่าวิธีนี้ ebook-convert
วิธีแถบขอบและเป็นส่วนหนึ่งของข้อความจากเอกสาร
วิธีนี้แม้จะให้ผลลัพธ์ที่ดีกว่าแปลงมืออาชีพเป็นrainbowpdf
ฉันพยายามแปลงเป็น html ด้วย แต่การวาดด้วยสี่เหลี่ยมในวงกลมและแผนภูมิการไหลไม่ถูกต้อง
เหตุใดการทดสอบผังงานจึงล้มเหลว
ดูเหมือนว่า libreoffice และ unoconv มีปัญหาบางอย่างกับการแสดงผลแผนภูมิการไหลที่ถูกต้องในไฟล์. docx อาจเป็นเพราะมันถูกสร้างขึ้นโดยใช้ศิลปะที่ชาญฉลาดใน Microsoft Office นั่นคือปัญหา นั่นคือข้อผิดพลาดยังกล่าวถึงในหัวข้อนี้ ข้อมูลที่เป็นข้อความและภาพอยู่ในรูปแบบ pdf ซึ่งเป็นผลมาจากวิธีการด้านบนที่คุณเห็น (ฉันต้องเลือกข้อความ)

ตัวอย่างเช่นสีแบบอักษรไม่ได้อ่านอย่างเหมาะสมและบางบรรทัดยาวเกินไป ฉันไม่ได้ตระหนักถึงวิธีการแก้ปัญหาลินุกซ์ใด ๆ ที่สามารถแสดงศิลปะได้อย่างถูกต้อง :(
นี่คือเหตุผลว่าทำไมprint
โซลูชั่นทั้งหมดที่โพสต์ในหน้านี้จะไม่ตอบสนองคุณ
ในระยะสั้น
ในระยะสั้นสิ่งที่คุณกำลังทำอยู่นั้นยากมากและในปัจจุบันยังไม่มีวิธีแก้ปัญหาที่จะทำให้คุณพึงพอใจอย่างเต็มที่ จุดอ่อนของการแปลง docx2pdf เป็นศิลปะที่ชาญฉลาด หากคุณสามารถอยู่ได้โดยปราศจากสิ่งนั้นหรือหากคุณสามารถหาวิธีที่จะหางานศิลปะที่ชาญฉลาดและแปลงให้เป็นภาพคุณสามารถไปถึงเป้าหมายของคุณได้
ตัวเลือกที่ 1 บังคับให้ผู้ใช้ของคุณจัดการกับปัญหา
นี่เป็นวิธีที่ไม่เหมาะสมอย่างมาก ผู้สร้างเนื้อหาของคุณสามารถบันทึกงานศิลปะอัจฉริยะของพวกเขาเป็น jpg ตามที่อธิบายไว้ในหน้าช่วยเหลือของสำนักงานและด้วยเหตุนี้การแปลงจะเป็นไปได้บนเซิร์ฟเวอร์ของคุณ
ตัวเลือก 2 แฮ็ควิธีการของคุณเพื่อแก้ไขปัญหา
หากแผนภูมิการไหลมักจะคล้ายกันมากและขึ้นอยู่กับว่านักพัฒนาตัวเองดีแค่ไหนคุณสามารถลองและแปลงสมาร์ทอาร์ตแยกจากกัน คุณสามารถแตกไฟล์ drawing1.xml ออกจากคลัสเตอร์. docx ของเอกสารจากนั้นใช้การประมวลผลภาษาธรรมชาติและแฮ็กบ้า ๆ เพื่อสร้างสมาร์ทอาร์ท ตัวอย่างเช่นคุณต้องยุ่งกับ xml ประเภทนี้:
<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>
หรืออย่างน้อยที่สุดคุณก็แยกข้อความ ( <a:t>
?) ออกจากไฟล์และบันทึกด้วยวิธีที่ง่ายกว่า หรือหากแผนภูมิการไหลของไฟล์ PDF ของคุณเหมือนกันทั้งหมดคุณสามารถเขียนสคริปต์เพื่อเปลี่ยนสีข้อความและความยาวบรรทัดใน xml ได้ จากนั้นคุณสามารถเรียกใช้doc2pdf
และคุณมีไฟล์ที่มีข้อมูลที่ถูกต้องเป็นหลัก แต่อาจไม่ใช่การจัดรูปแบบ ในกรณีของแผนภูมิการไหลคุณอาจต้องการรวมการจัดรูปแบบบางส่วนไว้ด้วยเนื่องจากการจัดรูปแบบเป็นส่วนหนึ่งของข้อมูล
ตัวเลือก 3 ใช้บริการของบุคคลที่สาม
ฉันได้ทำบางอย่างเพิ่มเติมวิจัยไม่กี่วันที่ผ่านมาและฉันได้พบกับบริการที่ไม่แปลงอย่างสมบูรณ์แบบ: Zamzar Zamzar อนุญาตให้คุณอัปโหลดไฟล์ docx จากนั้นส่งลิงก์ถึงคุณทางอีเมล พวกเขายังมีบริการ (จ่ายเงิน) ที่คุณสามารถส่งไฟล์ใด ๆ ไปที่ pdf@zamzar.com แล้วรับไฟล์ที่แปลงแล้วกลับมาที่กล่องจดหมายของคุณ คุณสามารถสร้างระบบได้โดยง่ายซึ่งคุณจะส่งไฟล์โดยอัตโนมัติและแยกวิเคราะห์จากอีเมล มันไม่ได้ผลมากนักและผลลัพธ์ก็คือสิ่งที่ดีที่สุด
หมายเหตุ
- หากใครมีบริการอื่นที่ทำเช่นเดียวกันโปรดอย่าลังเลที่จะแก้ไข
- ฉันได้ส่งการสนับสนุน zamzar ไปทางไปรษณีย์เพื่อถามว่าพวกเขามี api นั่นจะง่ายยิ่งขึ้น
- อาจaposeสำหรับ. NET และ Java สามารถช่วยได้? หรือ docx4java เช่นเดียวกับในโพสต์นี้จึงเกี่ยวข้องมาก
- อีกทางเลือกหนึ่งคือตรวจสอบodf-converterซึ่งดูเก่าและขึ้นอยู่กับ openoffice มากกว่า libreoffice
- ตอนนี้ฉันสามารถยืนยันได้ว่า java jodconverterยังทนทุกข์กับการล้มเหลวของการแปลงแผนภูมิการไหล
ฉันใช้เวลาในการทดสอบวิธีการต่าง ๆ ที่เสนอในหน้านี้ โปรดกลับความคิดเห็นใด ๆ ด้วยการทดสอบจริง