Katıştırılmış yazı tipleri olmadan bir Word belgesini PDF * olarak nasıl kaydedebilirim?


9

Microsoft Word 2010'um var ve bunu bir PDF belgesi oluşturmak için kullanmaya çalışıyorum. Ben do DEĞİL yazı herhangi gömülü kullanılan istiyorum. Ancak, denediğim tüm kaydetme seçenekleri "Katıştırılmış Altküme" yazı tipleriyle sonuçlanır. HERHANGİ yazı tiplerini gömmeden PDF olarak kaydetmenin bir yolu var mı?


1
Bu PDF'leri oluşturmak için şu anda ne kullanıyorsunuz? PDF'lerin temelde elektronik belgeler basılması ve az ya da çok değişmez olması amaçlanmıştır . Ayrıca, yazı tiplerinin belgeye yazdırılmasını istemediğiniz şeylerle ne okuyorsunuz? Onları ne için kullanıyorsun?
Austin T Fransız

Ben yazı edildi testi senaryolara diğer görüntü biçimlerine dönüştürme (örn tiff) ve ihtiyacını test ediyorum DEĞİL emin onlar hizalama ve aralık atmak olmayan bir şeyin eşlenir olmak gömülü. Yüklü tüm sistem fontlarını içeren bir word doc oluşturmak yeterince kolaydır, ancak fontları gömülmeden bir pdf olarak kaydetmek / dışa aktarmak istiyorum.
slipsec

Yanıtlar:


3

WordML xml belge türünü oluşturan tüm yazı tiplerini kaldırmak mümkündür.

<?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>

Ancak, özgün belgenin tüm stillerini ve yazı tiplerini silseniz bile, Word varsayılan olarak belge stilinin açılması sırasında atayacaktır. Ayrıca, en az bir yazı tipi Acrobat belgesinde açılmış gibi hareket etmiyormuş gibi görünür.

Office WordML XML Dosyası, Word varsayılan yükleme stili:

Office WordML XML Dosyası

Acrobat'ta PDF olarak kaydettikten sonra bir yazı tipini görüntüleyin

Acrobat belge yazı tipi desteği

İyi bir çözüm, hala pdf dosyasında olacak en az bir yazı tipi seçip kullanmaktır.

2. Yol: Kullanılmayan Stilleri Word'den Kaldırma

resim açıklamasını buraya girin

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 

Bkz . Metin Alanı Varsayılan Değerleri için Yazı Tiplerini Biçimlendirme

Stil neredeyse her zaman diğer boyutların belirlenmesi için kullanılan yazı tipi ve yazı tipi boyutunu içerir. Paragraf, satır aralığı vb. Farklı bir stil mekaniğine ihtiyacınız varsa belgenin kendisini oluşturur. Yedek yazı tipleri dahil. Nihai PDF belgesi varsa, yerleşik Adobe JavaScript'i kullanın. Veya Adobe LiveCycle Designer ES ve XDP XML.

Adobe LiveCycle Designer XDP XML'deki yazı tipi

Acrobat JavaScript'i Formlarda Kullanma: Form Verilerini İçe ve Dışa Aktarma

XML Formlar Mimarisi PDF!


Bu, gömülü fontları değil, stil ayarlarını kendileri kaldırmayacak mı? Stili korumak istiyorum, ancak test etmeye çalıştığım dönüşüm yazılımı tarafından eşleme için bir "tahmin" zorlamak için gömülü fontları kaldırın.
slipsec

@slipsec Manuel olarak PDF oluşturmak gerekebilir?
STTR

@slipsec, Bunu başarmak için ücretli bir üçüncü taraf bileşeni kullanmanız gerekebilir.
Adam

Kullanılan iText, bittiğinde yayınlayacağım.
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()

Açıklayabilir misiniz, nedir bu?
türbanoff

@turbanoff Powershell'e benziyor itextsharp PDF kitaplığıyla (.NET için).
Bob
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.