Konwertuj pliki PDF z osadzonymi czcionkami na EMF dla PowerPoint

7

Czy istnieje darmowy (tj. Bezpłatny) sposób konwersji pliku PDF na Windows EMF (Enhanced Meta File) w taki sposób, że tekst wykorzystujący czcionki osadzone w pliku PDF będzie renderowany w ten sam sposób w MS Office PowerPoint? Myślę, że trzeba by było zamienić tekst na wypełnioną ścieżkę, ale byłoby to w porządku, ponieważ chcę tylko pokazać wynik, a nie go edytować.

Próbowałem pstoedit , ale osadzanie czcionek wydaje się trudne. Patrząc na instrukcję obsługi czcionek , wydaje się, że -dtpowinien zamienić tekst w wypełnione ścieżki, ale w tym przypadku ścieżki są najwyraźniej tylko wielobokami, łączącymi punkty końcowe segmentów, ale nie wykonującymi żadnych krzywych Béziera pomiędzy nimi. Wynik wygląda więc dziwnie, np. Z diamentami jako kropkami całego „i”.

Czytałem w kilku miejscach (np. Tutaj ), że inkscape może być użyty do konwersji PDF na EMF. Ale w systemie Windows import PDF zawiesza się bez wyświetlania okna dialogowego. W systemie Linux pojawia się okno dialogowe importowania, ale jedyną opcją obsługi tekstu jest pozostawienie tekstu jako tekstu; Nie mogę przekonwertować na ścieżki, więc bez osadzonych czcionek jestem zmuszony użyć czcionek systemowych.

Próbowałem również ImageMagick convert , ale wydaje się, że rasteryzuje obraz, więc efekt wygląda rozmazany.

W przypadku jednej aplikacji, mianowicie osadzania formuł LaTeX w programie PowerPoint, ten post sugeruje alternatywy (przynajmniej niektóre z nich działają przez DVI zamiast PDF i MHTML zamiast EMF. Ale istnieje wiele innych narzędzi, które mogą tworzyć PDF, ale nie EMF, więc ogólny problem pozostaje.

Mam dostęp do systemu Windows, Linux i OS X, więc sugerowana odpowiedź może użyć dowolnej kombinacji systemu operacyjnego, jeśli to pomoże. Jeśli nie masz pełnego rozwiązania, częściowe rozwiązanie może nadal pomóc. Np. Jakiś konwerter plików PDF na PDF, który zastępuje tekst wypełnionymi ścieżkami. Lub jakieś narzędzie do wyodrębniania czcionek z pliku PDF i zapisywania ich w osobnych plikach, gdzie inne narzędzia (takie jak pstoedit lub inkscape) mogą je pobrać i użyć do renderowania tekstu. Lub cokolwiek innego, co uważasz za znaczący krok w kierunku rozwiązania.

MvG
źródło

Odpowiedzi:

8

Miałem taki sam problem jak Ty: miałem kilka .pdfplików (po dwie strony), które chciałem przekształcić w coś , co mogłem zaimportować do pliku Word; coś się .emfostatecznie zdarzyło (wszystkie inne formaty nie zostały zaakceptowane).

Ta odpowiedź zakłada, że ​​czujesz się komfortowo w korzystaniu z konsoli.

Narzędzie wyboru konwertować format wektor X w formacie wektora Y wydaje się być inkscape. Jednak podczas importowania .pdfpliku bezpośrednio doinkscape

  • możesz uzyskać dostęp tylko do pierwszej strony na konsoli (zgodnie z moją najlepszą wiedzą)
  • nawet jeśli wybierzesz flagę opcji -Tzamiany tekstu na ścieżki , tekst nie jest dobrze przekształcony.

Dlatego uważam za konieczne wstępne przekonwertowanie .pdfpliku na coś, co inkscapejest w stanie użyć. Uznałem tę odpowiedź za bardzo przydatną, zwłaszcza wzmiankę o pdf2svg. Moja ostatnia sekwencja była następująca:

pdf2svg input_filename.pdf interim_filename_%d.svg all
inkscape -T interim_filename_1.svg --export-emf=interim_filename_1.emf
(repeat for all additional pages of the .pdf)

Najlepsze z tego, co widzę na ekranie, przenosząc te .emfpliki na komputer z systemem Windows i otwierając je za pomocą przeglądarki obrazów systemu Windows, wynik jest identyczny z danymi wejściowymi. Ponadto, po wypróbowaniu przypadku testowego z niestandardowym dokumentem LaTeX przy użyciu czcionki, której nie ma na moim komputerze z systemem Windows, wyniki okazały się identyczne. Pominięcie początkowego pdf2svgkroku oznaczało, że odstępy zostały całkowicie pomieszane po inkscapekonwersji.

W moim przypadku nie musiałem usuwać .pdfgranic strony (miałem do czynienia z plikami całej strony). Możesz potrzebować takiego pośredniego kroku, jeśli interesuje Cię tylko niewielka część .pdfstrony. Czerpiąc z tej odpowiedzi , pdfcropwydaje się , że jest w stanie to zrobić.

Jan
źródło
Miły. Już pdf2svgzainstalowałem, ale nie zdawałem sobie sprawy, że obsługuje czcionki. Patrząc na wynik, widzę, że glify z czcionki są wyrażane jako <symbol>s w pliku svg. Zła dla kopiowania i wklejania, ale dobra dla wierności czcionek, więc po to tu jestem. Świetny!
MvG
Dla mnie inkscape zawsze dodaje mały biały margines (dolny i prawy bok) w kroku svg do wmf. Nie ma go w pliku SVG. Masz pomysł, dlaczego? I jak to stłumić?
NichtJens
0

Jeśli potrzebujesz pisać formuły w PPT, możesz użyć IguanaTex Add-In dla PPT.

To zależy od dystrybucji lateksu i jeśli chcesz również generować wykresy Tikz, będzie potrzebował ImageMagick. Służy do konwersji wynikowego pliku PDF PDFLatex na format PNG, który w PPT wygląda całkiem ładnie.

Jeśli potrzebujesz obrazów o wyższej jakości, możesz użyć Standalone Class i użyć konwersji (wymaga także ImageMagick). Tutaj możesz wygenerować PNG lub JPG ze zdefiniowanym DPI. Lub plik PDF w formacie wektorowym.

Lub możesz użyć Standalone i wywołać pstoedit w celu wygenerowania plików WMF.

\documentclass[
   convert={command=\unexpanded{
     pstoedit\space-v \space -f\space emf \space convert.pdf \space convert.emf
   }}]{standalone}

wygląda na to, że musisz edytować plik wyjściowy i wejściowy plik ręcznie.

josarn
źródło
Naprawdę szukam skalowalnego wektora WMF, a nie rastrowego PNG, więc IguanaTex wydaje się nie spełniać moich wymagań. Samodzielna klasa jest przyjemna w przycinaniu, ale nie różni się tak bardzo od ręcznego wywoływania pstoedit. W moim systemie podany kod skutkuje komunikatem, No output format specified (-f option) and format could not be uniquely deduced from suffix .wmf of output filea następnie listą obsługiwanych formatów, których brakuje, wmfale zawiera emf. Zamiast tego używam pliku EMF, który odnosi się do czcionek takich jak CIWQJE+CMMI10. Nie będzie działać bez danych czcionek.
MvG,
może musisz zaktualizować swój pstoedit.
josarn