Zastąp czcionkę w dokumencie PDF

13

Mam dokument PDF (niezaszyfrowany) z edytowalnymi polami formularza. Jednak czcionka dla tych pól jest zepsuta: brakuje niektórych glifów, więc kiedy wpisuję tekst, pojawiają się pewne luki.

Jak mogę zmodyfikować dokument PDF - nie mam dostępu do dokumentu źródłowego użytego do jego utworzenia - aby zastąpić inną czcionkę zamiast uszkodzonej ?

Omawiana czcionka to czcionka Caliban Regular firmy Adobe , którą widzę osadzoną w dokumencie. Glify, które wyświetlają się puste, to „i”, „T”, „V”; może inne, których nie odkryłem.

Mam też inny podobny dokument, korzystając Caliban, który robi wyświetlacz właściwie tym glifów, które są wymienione powyżej jako uszkodzony. Jeśli ktoś może mi powiedzieć, jak pobrać czcionkę z jednego pliku PDF i zastąpić ją istniejącym plikiem PDF , byłoby to rozwiązanie.

Obecnie używam:

Byłbym zainteresowany w inne wolne oprogramowanie narzędzi do edycji PDF ( czy cena zerowej lub nie ), jeśli będzie pomóc w tym zadaniu.

duży nos
źródło
Z jakiego oprogramowania do przeglądania lub edycji plików PDF korzystasz? Jakiej czcionki używają pola formularza? Czy ta czcionka jest osadzona po zapisaniu formularza PDF pod inną nazwą?
Kurt Pfeifle
Dzięki za komentarz, rozwinąłem opis, aby odpowiedzieć na twoje pytania.
bignose
Jeszcze jedno pytanie: czy możesz nazwać glify (w przybliżeniu: kształty liter), które chcesz umieścić w polach formularza i które pojawiają się jedynie jako luki?
Kurt Pfeifle,
Czy twoja czcionka Caliban wygląda następująco: linotype.com/de/202/caliban-schriftfamilie.html czy raczej tak: fontspace.com/george-williams/caliban
Kurt Pfeifle
1
@ bignose znalazłeś rozwiązanie tego problemu?
Jubei

Odpowiedzi:

5

Niezwykle trudno jest zamienić czcionkę osadzoną w pliku PDF. Nie znam żadnego oprogramowania typu free-as-in-speech (na licencji GPL) lub free-as-in-beer (gratis), które prawdopodobnie mogłoby to zrobić (najpierw usuwając czcionkę, a następnie ponownie osadzając czcionka podtrzymująca). Znam tylko dwa komercyjne produkty, które to robią: pdfToolbox4 callassoftware.com i PitStop Enfocus (oczywiście, są inne, ale nie jestem ich świadomy, a te dwa są tutaj liderami rynku).

Oto sposób na wyodrębnienie osadzonej czcionki z pliku PDF za pomocą wolnego oprogramowania. Pamiętaj, że możesz to zrobić tylko zgodnie z prawem, jeśli licencja na czcionkę tego nie zabrania. W repozytorium kodu źródłowego Ghostscript znajduje się narzędzie programu PostScript o nazwie, extractFonts.psktóre może tutaj pomóc:

  1. Zainstaluj Ghostscript. Użyj najnowszej wersji, 8.71.
  2. Pobierz plik http://svn.ghostscript.com/ghostscript/trunk/gs/toolbin/extractFonts.ps
  3. Możesz przeczytać komentarze zawarte w pobranym pliku.
  4. Uruchom następujące polecenie w polu DOS (cmd.exe):

    gswin32c.exe ^
        -q ^
        -dNODISPLAY ^
        C:/path/to/extractFonts.ps ^
        -c "(c:/path/to/your-pdf-file.pdf) extractFonts quit"
    
  5. Zwróć uwagę na wszelkie ostrzeżenia lub komunikaty o błędach, które polecenie może wypluć.
  6. Pomyślnie wyodrębnione czcionki będą teraz przechowywane w bieżącym katalogu pod tą samą nazwą jak w pliku PDF.

(Pamiętaj, że wyodrębnianie czcionek tutaj nie oznacza usuwania czcionek z pliku PDF, ale tworzenie plików czcionek, które są kopiami plików osadzonych w pliku PDF.)


Oto kolejny element składowy, który może przyczynić się do osiągnięcia tego, co chcesz. Możesz zdekompresować wszystkie skompresowane części / strumienie pliku PDF, aby łatwiej edytować plik za pomocą prostego edytora tekstu. (Ostrzeżenie: edytowanie plików PDF nie jest prostym, prostym zadaniem - twoje wysiłki związane z edycją będą wymagały dość znacznej wiedzy i sprytów na temat wewnętrznych formatów plików PDF.)

Ta sztuczka wykorzystuje również narzędzie z toolbinpodkatalogu Ghostscript Subversion .

  1. Pobierz plik http://svn.ghostscript.com/ghostscript/trunk/gs/toolbin/pdfinflt.ps
  2. Możesz przeczytać komentarze w pobranym pliku.
  3. Uruchom następujące polecenie w polu DOS (cmd.exe):

    gswin32c.exe ^
         -- ^
         c:/path/to/pdfinflt.ps ^
         c:/path/to/your-pdf-file.pdf ^
         c:/path/to/your-pdf-file-decompressed.pdf
    

To polecenie spróbuje zdekompresować wszystkie strumienie skompresowane „flate” . (Jeśli masz pecha, plik będzie również zawierał strumienie przy użyciu innych metod kompresji (takich jak „zip” ), które pozostaną niezmienione przez to polecenie).

Kurt Pfeifle
źródło