Come posso salvare un documento Word come PDF * senza * nessun carattere incorporato?


9

Ho Microsoft Word 2010 e sto provando a usarlo per creare un documento PDF con una cattura. Io non voglio che nessuno dei font utilizzati incorporati. Tuttavia, tutte le opzioni di salvataggio che ho provato danno come risultato i caratteri "Sottoinsieme incorporato". Esiste un modo per salvare come PDF senza incorporare QUALSIASI font?


1
Cosa stai attualmente usando per creare questi PDF? I PDF sono fondamentalmente pensati per essere stampati documenti elettronici e più o meno immutabili. Inoltre, con cosa stai leggendo che non vuoi che i caratteri vengano effettivamente stampati sul documento? Per cosa li stai usando?
Austin T francese,

Sto testando la conversione in altri formati di immagine (ad esempio tiff) e ho bisogno di testare scenari in cui i caratteri NON sono stati incorporati per essere sicuri che siano mappati su qualcosa che non elimina l'allineamento e la spaziatura. È abbastanza facile generare un documento word che includa tutti i font di sistema installati, ma voglio salvare / esportare come pdf senza che i font siano incorporati.
slipsec,

Risposte:


3

È possibile rimuovere tutti i caratteri che formano il tipo di documento 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>

Ma, anche se si eliminano tutti gli stili e i caratteri del documento originale, Word assegnerà durante l'apertura dello stile del documento per impostazione predefinita. Inoltre, almeno un carattere sarà nel documento Acrobat quando lo apri, come se non avessi agito.

File XML di WordML di Office, stile predefinito di caricamento di Word:

File XML di WordML di Office

Dopo aver salvato come PDF in Acrobat, visualizzare un carattere

Prop di carattere documento Acrobat

Una buona soluzione è quella di scegliere almeno un carattere che sarà ancora nel file pdf e usarlo.

Modo 2: rimozione di stili inutilizzati da Word

inserisci qui la descrizione dell'immagine

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 

Vedere Formatta caratteri per i valori predefiniti dei campi di testo

Lo stile include quasi sempre il carattere e la dimensione del carattere utilizzati per la determinazione di altre dimensioni. Paragrafo, interlinea e così via ... Se hai bisogno di uno stile diverso, la meccanica genera il documento stesso. Compresi i caratteri sostitutivi. Se il documento PDF finale utilizza quindi il JavaScript Adobe incorporato. Oppure Adobe LiveCycle Designer ES e XDP XML.

Carattere XML di Adobe LiveCycle Designer XDP

Utilizzo di Acrobat JavaScript nei moduli: importazione ed esportazione dei dati dei moduli

PDF dei moduli XML di architettura!


Questo non rimuoverà le stesse impostazioni di stile non i caratteri incorporati? Voglio mantenere lo stile, ma rimuovere i caratteri incorporati per forzare una "supposizione" per il mapping da parte del software di conversione che sto provando a testare.
slipsec,

@slipsec Potrebbe essere necessario creare PDF manualmente?
STTR,

@slipsec, potrebbe essere necessario utilizzare un componente di terze parti a pagamento per raggiungere questo obiettivo.
Adam,

usato iText, posterò quando l'ho finito.
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()

Puoi spiegarci, cos'è?
turbanoff

@turbanoff Sembra Powershell con la libreria PDF itextsharp (per .NET).
Bob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.