¿Cómo puedo guardar un documento de Word como PDF * sin * ninguna fuente incrustada?

9

Tengo Microsoft Word 2010 y estoy tratando de usarlo para crear un documento PDF con una captura. Yo no quiero que ninguno de los tipos de letra utilizados incrustado. Sin embargo, todas las opciones de guardado que he probado dan como resultado fuentes "Subconjunto incrustado". ¿Hay alguna forma de guardar como PDF sin incrustar CUALQUIER fuente?

slipsec
fuente
1
¿Qué estás usando actualmente para crear estos PDF? Los PDF están básicamente destinados a ser documentos electrónicos impresos y más o menos inmutables. Además, ¿con qué los está leyendo para que no desee que las fuentes se impriman realmente en el documento? ¿Para qué los estás usando?
Austin T French
Estoy probando la conversión a otros formatos de imagen (por ejemplo, tiff), y necesito probar escenarios en los que las fuentes NO están incrustadas para asegurarme de que estén asignadas a algo que no altere la alineación y el espaciado. Es bastante fácil generar un documento de Word que incluya todas las fuentes del sistema instaladas, pero quiero guardar / exportar como un PDF sin que las fuentes estén incrustadas.
slipsec

Respuestas:

3

Es posible eliminar todas las fuentes que forman el tipo de 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>

Pero, incluso si elimina todos los estilos y fuentes del documento original, Word asignará durante la apertura del estilo del documento de forma predeterminada. Además, al menos una fuente estará en el documento de Acrobat cuando la abra, como si no hubiera actuado.

Archivo XML de Office WordML, estilo predeterminado de carga de Word:

Office WordML XML File

Después de guardar como PDF en Acrobat, vea una fuente

Fuente de documento de Acrobat

Una buena solución es elegir al menos una fuente que todavía estará en el archivo pdf y usarla.

Forma 2: eliminar estilos no utilizados de Word

ingrese la descripción de la imagen aquí

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 

Consulte Formato de fuentes para valores predeterminados de campo de texto

El estilo casi siempre incluye la fuente y el tamaño de fuente utilizados para la determinación de otros tamaños. Párrafo, interlineado, etc. Si necesita una mecánica de estilo diferente, genere el documento en sí. Incluyendo fuentes sustitutas. Si el documento PDF final utiliza el Adobe JavaScript incorporado. O Adobe LiveCycle Designer ES y XDP XML.

Fuente en Adobe LiveCycle Designer XDP XML

Uso de JavaScript de Acrobat en formularios: importación y exportación de datos de formulario

XML Forms Architecture PDF!

STTR
fuente
¿No eliminará esto la configuración de estilo en sí, no las fuentes incrustadas? Quiero conservar el estilo, pero elimino las fuentes incrustadas para forzar una "suposición" para el mapeo mediante el software de conversión que estoy tratando de probar.
slipsec
@slipsec ¿Puede ser necesario crear PDF manualmente?
STTR
@slipsec, es posible que necesite usar un componente de terceros pagado para lograr esto.
Adam
usé iText, publicaré cuando lo haya terminado.
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()
slipsec
fuente
¿Puedes explicar qué es?
turbanoff
@turbanoff Parece Powershell con la biblioteca PDF itextsharp (para .NET).
Bob