ฉันจะบันทึกเอกสาร Word เป็น PDF * โดยไม่มีแบบอักษรฝังตัวใด ๆ ได้อย่างไร


9

ฉันมี Microsoft Word 2010 และฉันพยายามที่จะใช้มันเพื่อสร้างเอกสาร PDF ด้วยการจับ ฉันไม่ต้องการให้ฝังฟอนต์ใด ๆ อย่างไรก็ตามตัวเลือกการบันทึกทั้งหมดที่ฉันได้ลองใช้นั้นเป็นฟอนต์ มีวิธีการบันทึกเป็น PDF โดยไม่ต้องฝังแบบอักษรใด ๆ


1
คุณใช้อะไรในการสร้าง PDF เหล่านี้ PDF นั้นมีความหมายโดยทั่วไปว่าจะพิมพ์เอกสารอิเล็กทรอนิกส์ นอกจากนี้สิ่งที่คุณอ่านพวกเขาด้วยที่คุณไม่ต้องการแบบอักษรที่พิมพ์ลงบนเอกสารจริง? คุณจะใช้อะไร
Austin T French

ฉันกำลังทดสอบการแปลงเป็นรูปแบบภาพอื่น ๆ (เช่น TIFF) และจำเป็นต้องทดสอบสถานการณ์ที่ไม่ได้ฝังแบบอักษรเพื่อให้แน่ใจว่ามีการแมปกับสิ่งที่ไม่ทำให้เกิดการจัดตำแหน่งและระยะห่าง มันง่ายพอที่จะสร้างเอกสารคำที่มีแบบอักษรระบบที่ติดตั้งทั้งหมด แต่ฉันต้องการบันทึก / ส่งออกเป็น PDF โดยไม่ต้องฝังแบบอักษร
slipsec

คำตอบ:


3

เป็นไปได้ที่จะลบแบบอักษรทั้งหมดที่ขึ้นรูปชนิดเอกสาร xml WordML

<?xml version="1.0" encoding="UTF-8"?>
<?mso-application progid="Word.Document"?>
    <w:wordDocument xml:space="preserve" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
     <w:body>

      <w:tbl>
       <w:tblPr>
        <w:tblW w:w="9570" w:type="dxa"></w:tblW>
         <w:tblBorders> <w:top w:val="nil" /><w:left w:val="nil" /><w:bottom w:val="nil" /><w:right w:val="nil" />
         </w:tblBorders>
       </w:tblPr>

    <w:tr>
     <w:tc>
    <w:tcPr><w:tcW w:w="4785" w:type="dxa" /></w:tcPr>  <w:p></w:p>  </w:tc>
     <w:tc>  
    <w:tcPr><w:tcW w:w="4785" w:type="dxa" /></w:tcPr>  <w:p></w:p>  </w:tc>
    </w:tr>   

     <w:tr>    
         <w:tc>
          <w:tcPr><w:tcW w:w="0" w:type="auto" /></w:tcPr>  <w:p><w:pPr><w:jc w:val="right" /></w:pPr>
       <w:r><w:t>Company: </w:t></w:r> 
      </w:p>
     </w:tc>   

        <w:tc>
          <w:tcPr><w:tcW w:w="0" w:type="auto" />
           <w:tcBorders>      <w:top w:val="single" w:sz="2" w:color="0070C0" />    <w:left w:val="single" w:sz="2" w:color="0070C0" /> <w:bottom w:val="single" w:sz="2" w:color="0070C0" /> <w:right w:val="single" w:sz="2" w:color="0070C0" />
           </w:tcBorders>
          </w:tcPr>
         <w:p><w:pPr><w:jc w:val="left" /></w:pPr><w:r><w:t></w:t></w:r></w:p>
        </w:tc>      
       </w:tr>       
      </w:tbl>
     </w:body>
    </w:wordDocument>

แต่แม้ว่าคุณจะลบรูปแบบและแบบอักษรทั้งหมดของเอกสารต้นฉบับ Word จะกำหนดในระหว่างการเปิดสไตล์เอกสารโดยค่าเริ่มต้น นอกจากนี้อย่างน้อยหนึ่งตัวอักษรจะอยู่ในเอกสาร Acrobat เมื่อคุณเปิดมันราวกับว่าคุณไม่ได้ทำ

ไฟล์ Office WordML XML, ลักษณะการโหลด Word เริ่มต้น:

ไฟล์ Office WordML XML

หลังจากบันทึกเป็น PDF ใน Acrobat ดูหนึ่งฟอนต์

Acrobat prop แบบอักษรของเอกสาร

ทางออกที่ดีคือการเลือกแบบอักษรอย่างน้อยหนึ่งตัวที่จะยังคงอยู่ในไฟล์ pdf และใช้มัน

วิธีที่ 2: การลบสไตล์ที่ไม่ได้ใช้ออกจาก Word

ป้อนคำอธิบายรูปภาพที่นี่

Sub DeleteUnusedStyles()
    Dim oStyle As Style
    For Each oStyle In ActiveDocument.Styles
        ‘Only check out non-built-in styles
        If oStyle.BuiltIn = False Then
            With ActiveDocument.Content.Find
                .ClearFormatting
                .Style = oStyle.NameLocal
                .Execute FindText:=””, Format:=True
                If .Found = False Then oStyle.Delete
            End With
        End If
    Next oStyle
End Sub 

ดูฟอนต์รูปแบบสำหรับค่าเริ่มต้นของฟิลด์ข้อความ

สไตล์เกือบจะรวมถึงตัวอักษรและขนาดตัวอักษรที่ใช้สำหรับการกำหนดขนาดอื่น ๆ ย่อหน้าเว้นวรรคบรรทัดและอื่น ๆ ... หากคุณต้องการกลไกสไตล์ที่แตกต่างสร้างเอกสารเอง รวมถึงแบบอักษรทดแทน หากเอกสาร PDF ขั้นสุดท้ายให้ใช้ Adobe JavaScript ในตัว หรือ Adobe LiveCycle Designer ES และ XDP XML

แบบอักษรที่ Adobe LiveCycle Designer XDP XML

การใช้ Acrobat JavaScript ในแบบฟอร์ม: การนำเข้าและส่งออกข้อมูลในแบบฟอร์ม

สถาปัตยกรรมแบบฟอร์ม XML PDF!


สิ่งนี้จะไม่ลบการตั้งค่าลักษณะเองไม่ใช่แบบอักษรที่ฝังอยู่หรือไม่ ฉันต้องการคงสไตล์ไว้ แต่ลบแบบอักษรที่ฝังไว้เพื่อบังคับ "คาดเดา" สำหรับการจับคู่โดยซอฟต์แวร์แปลงที่ฉันพยายามทดสอบ
slipsec

@slipsec อาจต้องสร้าง PDF ด้วยตนเองหรือไม่
STTR

@slipsec คุณอาจต้องใช้องค์ประกอบบุคคลที่สามที่ได้รับค่าใช้จ่ายเพื่อให้ได้สิ่งนี้
Adam

ใช้ iText จะโพสต์เมื่อฉันทำเสร็จแล้ว
slipsec

0
[System.Reflection.Assembly]::LoadFrom("C:\path\to\itextsharp.dll")
#by default fonts are NOT embedded
#[iTextSharp.text.FontFactory]::DefaultEmbedding -eq false

$doc = New-Object iTextSharp.text.Document
$fileStream = New-Object IO.FileStream("C:\foo\test\allFonts2.pdf", [System.IO.FileMode]::Create)
[iTextSharp.text.pdf.PdfWriter]::GetInstance($doc, $filestream)

#iTextSharp provides a class to work with fonts, but first we have to register them:
[iTextSharp.text.FontFactory]::RegisterDirectories()

#Phrase is the smallest bit of text that will understand a newline if needed.  it is a chunk[] and paragraph is a phrase[]
$phrase = new-object iTextSharp.text.Phrase 
$paragraph = New-Object iTextSharp.text.Paragraph

#Different fonts for mapping tests
$fN = [iTextSharp.text.Font]::NORMAL
$fB = [iTextSharp.text.Font]::BOLD
$fI = [iTextSharp.text.Font]::ITALIC
$fBI = [iTextSharp.text.Font]::BOLDITALIC

#Sample string
$string = "The quick brown fox jumps over the lazy dog 1234567890 ?.,:;!@#$%^&*()`"'`n"
#something I know maps nicely (I love fixed width fonts!)
$consolas = [iTextSharp.text.FontFactory]::GetFont("consolas", 9)

#create all the nesting needed.
[iTextSharp.text.FontFactory]::RegisteredFamilies | %{

    $chunk = new-object iTextSharp.text.Chunk("`n$_`n", $consolas)
    $phrase.Add($chunk) | out-null

    $a = [iTextSharp.text.FontFactory]::GetFont($_, 9, $fN)
    "adding font: $_"
    $chunk = new-object iTextSharp.text.Chunk($string, $a)
    $phrase.Add($chunk) | out-null

    $b = [iTextSharp.text.FontFactory]::GetFont($_, 9, $fB)
    $chunk = new-object iTextSharp.text.Chunk($string, $b) 
    $phrase.Add($chunk) | out-null

    $c = [iTextSharp.text.FontFactory]::GetFont($_, 9, $fI)
    $chunk = new-object iTextSharp.text.Chunk($string, $c) 
    $phrase.Add($chunk) | out-null

    $d = [iTextSharp.text.FontFactory]::GetFont($_, 9, $fBI)
    $chunk = new-object iTextSharp.text.Chunk($string, $d) 
    $phrase.Add($chunk) | out-null
}

$paragraph.add($phrase) | out-null
$doc.Open()
$doc.add($paragraph) | out-null
$doc.close()

คุณอธิบายได้ไหมมันคืออะไร
turbanoff

@turbanoff ดูเหมือนว่า Powershell ด้วยไลบรารี itextsharp PDF (สำหรับ. NET)
บ๊อบ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.