Як я можу зберегти документ Word у форматі PDF * без * вбудованих шрифтів?


9

У мене є Microsoft Word 2010, і я намагаюся використовувати його для створення PDF-документа з уловкою. Я НЕ хочу, щоб жоден із вбудованих шрифтів використовувався. Однак усі параметри збереження, які я спробував, привели до шрифтів "Вбудована підмножина". Чи є якийсь спосіб зберегти як PDF без вбудовування БУДЬ-яких шрифтів?


1
Що ви зараз використовуєте для створення цих PDF-файлів? PDF-файли в основному мають бути друкованими електронними документами і більш-менш незмінні. Крім того, що ви читаєте з ними, що не хочете, щоб шрифти насправді надрукували на документі? Для чого ви їх використовуєте?
Austin T French

Я тестую перетворення в інші формати зображень (наприклад, tiff), і потрібно перевірити сценарії, де шрифти НЕ були вбудовані, щоб бути впевненим, що вони відображені на щось, що не скидає вирівнювання та пробіли. Досить просто створити word doc, який включає всі встановлені системні шрифти, але я хочу зберегти / експортувати як PDF, не вкладаючи шрифти.
сліпсек

Відповіді:


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, коли ви відкриваєте його, як ніби ви не діяли.

XML-файл Office WordML, стиль завантаження Word за замовчуванням:

XML-файл Office WordML

Після збереження у форматі PDF у Acrobat перегляньте один шрифт

Підтримка шрифту документа Acrobat

Гарне рішення - вибрати принаймні один шрифт, який все ще буде у файлі 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 Може знадобитися створити PDF-інструкцію?
СТТР

@slipsec, Вам може знадобитися використати платний компонент третьої сторони для цього.
Адам

iText, який використовується, буде публікувати, коли я закінчу.
сліпсек

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 Виглядає як Powershell із бібліотекою PDF itextsharp (для .NET).
Боб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.