แปลง PDF เป็น Excel และ Markdown

แปลง PDF เป็น Excel และ Markdown

แปลง PDF เป็น Excel และ Markdown

คู่มือนี้แสดงวิธีแปลง PDF เป็นเวิร์กบุ๊ก Excel (.xlsx) หรือเป็น Markdown และวิธีโหลด PDF กลับจากรูปแบบใดรูปแบบหนึ่ง Document ทำการแปลงในทั้งสองทิศทาง; ExcelSaveOptions และ MarkdownSaveOptions ปรับแต่งการส่งออก, และ ExcelLoadOptions และ MarkdownLoadOptions ปรับแต่งการนำเข้า. ตั้งแต่เวอร์ชัน 26.9.0.


PDF เป็น XLSX

ตารางที่ตรวจพบใน PDF จะกลายเป็นกริดของแผ่นงานพร้อมเซลล์ที่กำหนดประเภท — ตัวเลข, วันที่, ค่าจริง/เท็จ, สกุลเงินและเปอร์เซ็นต์จะถูกเขียนเป็นค่าจริงของ Excel แทนที่จะเป็นข้อความ — และสไตล์ต้นฉบับ (ฟอนต์/ขนาด, สีข้อความ, การเติมสีเซลล์, เส้นขอบ, ความสูงแถว, ความกว้างคอลัมน์, การจัดแนว, เซลล์ที่รวม) จะถูกคัดลอกไปด้วยเช่นกัน รูปภาพภายในเซลล์ตารางจะฝังเป็นภาพวาด.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelSaveOptions;

try (Document doc = new Document("report.pdf")) {
    ExcelSaveOptions options = new ExcelSaveOptions();
    options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX); // default
    options.setMinimizeTheNumberOfWorksheets(true);        // merge pages onto fewer sheets
    options.setInsertBlankColumnAtFirst(false);            // no leading spacer column
    options.setUniformWorksheets(false);                   // allow per-sheet column widths
    options.setStructuralHeuristics(true);                 // recover tables on untagged PDFs
    options.setSuppressRunningHeadersFooters(true);         // drop repeated page furniture
    doc.save("report.xlsx", options);
}

SaveFormat.Xlsx (ชื่อแทน, SaveFormat.Excel, ก็รับได้) ให้ผลลัพธ์เดียวกันด้วยตัวเลือกเริ่มต้น: doc.save("report.xlsx", SaveFormat.Xlsx). enum ของ ExcelSaveOptions เอง ExcelFormat ยังรับค่า XmlSpreadSheet2003, CSV และ ODS เพื่อความเข้ากันได้กับ Aspose.PDF API, แต่ไลบรารีนี้จะเขียนแพคเกจ .xlsx เสมอไม่ว่าค่าจะถูกตั้งเป็นอะไร คุณยังสามารถเขียนลงสตรีมด้วย doc.save(OutputStream, ExcelSaveOptions).


XLSX เป็น PDF, รวมถึงฟอร์มแบบโต้ตอบ

โหลดเวิร์กบุ๊ก .xlsx ผ่านคอนสตรัคเตอร์ Document ที่รับ ExcelLoadOptions. แต่ละแผ่นงานจะกลายเป็นตาราง PDF พร้อมการกำหนดประเภทเซลล์และการสนับสนุนสไตล์เดียวกับทิศทางการส่งออก.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
    doc.save("book.pdf");
}

การตั้งค่า ExcelLoadOptions.setInteractiveForms(true) ทำให้เซลล์ตัวเลขและป้ายกำกับกลายเป็นแบบฟอร์ม PDF “สด” แทนข้อความคงที่: เซลล์ตัวเลขจะเป็นช่องข้อความที่แก้ไขได้, เซลล์สูตรจะเป็นช่องอ่านอย่างเดียวที่คำนวณใหม่จากอินพุตของมัน, และเซลล์ป้ายกำกับหรือคงที่จะคงเป็นข้อความคงที่ ยกเว้นว่ามีสูตรอื่นอ้างอิงถึงพวกมัน. ExcelFormulaTranslator แปลแต่ละสูตรเป็น Acrobat JavaScript; สูตรที่ฟังก์ชันไม่รองรับจะย้อนกลับไปใช้ค่าคงที่ที่คำนวณล่าสุด, ดังนั้นช่องจะยังคงแสดงตัวเลขที่ถูกต้อง. การคำนวณใหม่จะทำงานเฉพาะในโปรแกรมดูที่มีเครื่องมือ forms/JavaScript — Adobe Acrobat หรือ Foxit; โปรแกรมดูที่ไม่มีเครื่องมือนั้นจะแสดงเฉพาะค่าที่ฝังไว้เท่านั้น, ไม่มีการคำนวณใหม่แบบสด.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

ExcelLoadOptions options = new ExcelLoadOptions();
options.setInteractiveForms(true); // cells → fields, formulas → calculate actions

try (Document doc = new Document("invoice.xlsx", options)) {
    doc.save("invoice-live.pdf");
}

PDF เป็น Markdown

Document แปลง PDF ไปเป็น Markdown แบบ CommonMark / GitHub: หัวเรื่อง, ย่อหน้า, รายการ, ตาราง, การเน้น (หนา/เอียง/ขีดฆ่า), โค้ดแบบอินไลน์และโค้ดบล็อก, ลิงก์, รูปภาพ, และเชิงอรรถ.

import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownSaveOptions;

try (Document doc = new Document("article.pdf")) {
    MarkdownSaveOptions options = new MarkdownSaveOptions();
    options.setStructuralHeuristics(true);          // recover headings/lists/tables
    options.setSuppressRunningHeadersFooters(true);  // drop repeated page furniture
    options.setRasterizeVectorGraphics(true);        // charts/shapes -> referenced images
    doc.save("article.md", options);
}

SaveFormat.Markdown ให้ผลลัพธ์เดียวกันด้วยตัวเลือกเริ่มต้น: doc.save("article.md", SaveFormat.Markdown). Document.markdownText(MarkdownSaveOptions) คืนค่า Markdown เป็น String แทนการเขียนไฟล์ (ไม่มีตัวเข้าถึง “Markdown text” แยกต่างหาก — วิธีนี้เป็นวิธีที่ต้องเรียกใช้เพื่อรับผลลัพธ์ในหน่วยความจำ).


Markdown เป็น PDF

โหลดไฟล์ Markdown ผ่านตัวสร้าง Document ที่รับ MarkdownLoadOptions. ตัวพาร์เซอร์ย่อย CommonMark/GFM ที่เขียนด้วยมืออ่านแหล่งที่มา: หัวเรื่อง, ย่อหน้า, รายการ, ตาราง, การเน้น, โค้ด, ลิงก์, รูปภาพ, บล็อกคำพูดและเชิงอรรถ. HTML แปลกประหลาดที่ฝังอยู่ใน Markdown ไม่ได้ถูกทำซ้ำอย่างเต็มที่.

import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownLoadOptions;

try (Document doc = new Document("README.md", new MarkdownLoadOptions())) {
    doc.save("README.pdf");
}

เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • ความเที่ยงตรงเป็นในเชิงโครงสร้าง ไม่ใช่ความเที่ยงตรงระดับพิกเซลสำหรับรูปแบบใดรูปแบบหนึ่ง: การแปลงจะรักษาเนื้อหา, โครงสร้าง, รูปภาพและเรขาคณิตของหน้า, ไม่ใช่ลักษณะการแสดงผลที่ตรงตามภาพจริง.
  • ExcelSaveOptions.ExcelFormat และ MarkdownSaveOptions แฟล็กโครงสร้างจะเปลี่ยนเฉพาะ output รูปแบบแพ็กเกจหรืออัลกอริทึมเชิงประมาณ — ค่าจริงที่ PDF ของคุณถูกแท็กไว้ยังคงเป็นตัวกำหนดว่ามีการตรวจพบเป็นตาราง, หัวข้อ หรือรายการ.
  • สำหรับฟอร์ม XLSX แบบเรียลไทม์ ให้ถือค่าที่ฝังอยู่ในเซลล์เป็นการสำรองที่ถูกต้อง: มีเฉพาะ viewer ที่รองรับฟอร์มเท่านั้นที่คำนวนสูตรใหม่เมื่อเปิด.

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
ผลลัพธ์ XLSX จะมีส่วนขยาย .xlsx เสมอแม้หลังจากตั้งค่า ExcelFormat.CSV หรือ ODSตัวเขียน FOSS จะทำการซีเรียลไลซ์แพ็กเกจ OOXML .xlsx เสมอ; ค่าที่เหลือ ExcelFormat มีไว้เฉพาะสำหรับความเข้ากันได้ Aspose.PDF APIให้ถือผลลัพธ์ว่าเป็น .xlsx ไม่ว่าจะเป็นค่าของ ExcelFormat ที่คุณตั้งไว้ก็ตาม
ฟอร์ม XLSX ที่ทำการคำนวณใหม่แสดงตัวเลขคงที่แทนสูตรแบบสดผู้ดู PDF ไม่มีเครื่องมือ forms/JavaScriptเปิดไฟล์ใน Adobe Acrobat หรือ Foxit เพื่อดูการคำนวณใหม่แบบสด
เซลสูตรแสดงค่าที่ดูเก่าและไม่อัปเดตExcelFormulaTranslator ไม่รองรับฟังก์ชันของสูตรนั้นนี่คือการสำรองที่ระบุไว้ในเอกสาร: ฟิลด์จะคงค่าคงที่ที่คำนวณครั้งสุดท้ายไว้

FAQ

ฉันสามารถรับ Markdown เป็น String แทนไฟล์ได้หรือไม่?

ใช่ — เรียก Document.markdownText(MarkdownSaveOptions); มันจะคืนค่าเนื้อหา Markdown โดยตรงแทนการเขียนลงไฟล์.

ตัวนำเข้า XLSX รองรับสูตร Excel จริงหรือไม่?

เฉพาะเมื่อกำหนดค่า ExcelLoadOptions.setInteractiveForms(true) และเฉพาะชุดย่อยของฟังก์ชันที่ ExcelFormulaTranslator สามารถแปลงเป็น Acrobat JavaScript เท่านั้น ทุกอย่างอื่นจะกลับไปใช้ค่าคงที่ที่คำนวนล่าสุดของสูตรในเวิร์กบุ๊กต้นฉบับ.


API Reference สรุป

คลาส/เมธอดคำอธิบาย
ExcelSaveOptionsปรับแต่งการส่งออก PDF เป็น XLSX
ExcelLoadOptionsปรับแต่งการนำเข้า XLSX ไปเป็น PDF รวมถึงแบบฟอร์มสด
ExcelFormatรูปแบบสเปรดชีตเป้าหมายที่ได้รับการยอมรับโดย ExcelSaveOptions
ExcelFormulaTranslatorแปลงสูตร Excel เป็น Acrobat JavaScript สำหรับแบบฟอร์มสด
MarkdownSaveOptionsปรับแต่งการส่งออก PDF เป็น Markdown
MarkdownLoadOptionsปรับแต่งการนำเข้า Markdown เป็น PDF
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)ส่งคืน Markdown เป็น String

ดูเพิ่มเติม

 ภาษาไทย