Czy ktoś wie, jak przekonwertować ODT
plik (LibreOffice) PDF
?
libreoffice
pdf
openoffice.org
SoftTimur
źródło
źródło
Odpowiedzi:
Po prostu otwórz dokument z libre office i wybierz Eksportuj jako PDF ... :
W przypadku rozwiązania wiersza poleceń istnieje unoconv, który konwertuje pliki z wiersza poleceń:
Uwaga: Począwszy od wersji Ubuntu 11.10 unoconv zależy od pakietu Libre Office. Poprzednie wersje unoconv (z Ubuntu <= 11.04) zależą od Open Office (ale będzie działać również z Libre Office).
źródło
unoconv
, to świetnie!unoconv: Cannot find a suitable office installation on your system.
, dlatego jest bezużyteczny :(Możesz również użyć wiersza polecenia
libreoffice
do swoich celów. Daje to przewagę konwersji wsadowej. Ale możliwe są także pojedyncze pliki. W tym przykładzie wszystkie pliki ODT w bieżącym katalogu są konwertowane na format PDF:Uzyskaj więcej informacji na temat opcji wiersza polecenia, korzystając z:
źródło
--env:UserInstallation=file:///path/to/some/directory
.unoconv
. Na przykład zunoconv -f pdf *.ppt
powodzeniem użyłem linii .Oto kilka dodatkowych szczegółów na temat metody „non-GUI”.
Możesz użyć tej metody nie tylko do konwersji plików ODT do formatu PDF. Będzie również działał dla plików MS Word DOCX (będzie działał tak samo, jak LibreOffice jest w stanie obsłużyć konkretny ODT) i ogólnie wszystkie typy plików, które LibreOffice może otworzyć.
Nie sądzę, że istnieje plik binarny nazwany
libreoffice
jedną z innych sugerowanych odpowiedzi. Istnieje jednaksoffice(.bin)
- plik binarny, którego można użyć do uruchomienia LibreOffice z wiersza poleceń. Zwykle znajduje się w/usr/lib/libreoffice/program/
; i bardzo często dowiązanie symboliczne/usr/bin/soffice
wskazuje tę lokalizację.W większości przypadków parametry
--headless --convert-to pdf
nie są wystarczające. Musi to być:Pamiętaj, aby dokładnie przestrzegać tej wielkiej litery!
Następnie polecenie nie będzie działać, jeśli w systemie jest już uruchomiona instancja interfejsu GUI LibreOffice. Jest to spowodowane błędem # 37531, znanym od 2011 roku . Dodaj ten dodatkowy parametr do swojego polecenia:
Stworzy to nowe, oddzielne środowisko, z którego będzie mogła korzystać druga, bezgłowa instancja LO bez ingerowania w prawdopodobnie działającą pierwszą instancję LO GUI uruchomioną przez tego samego użytkownika.
Upewnij się również, że określony przez
--outdir /pdf
Ciebie plik istnieje i masz do niego uprawnienia do zapisu. Lub raczej użyj innego katalogu wyjściowego. Nawet jeśli jest to tylko pierwsza runda testowania i debugowania:W związku z tym:
Działa to dla mnie na Mac OS X Yosemite 10.10.5 z LibreOffice wer. 5.1.2.2 (używając mojej specyficznej ścieżki do pliku binarnego,
soffice
który i tak będzie inny na Ubuntu ...). Działa również na Debian Jessie 8.0 (przy użyciu ścieżki/usr/lib/libreoffice/program/soffice
). Niestety, nie można teraz przetestować na Ubuntu ....Jeśli to wszystko nie działa, podczas próby przetworzenia DOCX:
Może to być problem z konkretnym plikiem DOCX, z którym wypróbujesz polecenie ... Więc najpierw utwórz bardzo prosty dokument DOCX. Użyj do tego samego LibreOffice. Napisz „Hello World!” na skądinąd pustej stronie. Zapisz jako DOCX.
Spróbuj ponownie. Czy to działa z prostym DOCX?
Jeśli to znowu nie działa, powtórz krok 7, ale tym razem zapisz jako ODT.
Powtórz krok 8, ale tym razem odwołaj się do ODT.
Ostatni: użyj pełnej ścieżki do
soffice
, dosoffice.bin
i dolibreoffice
każdego z-h
parametrem:Porównaj je z użytym wierszem poleceń:
Dla porównania, moje własne wyjście (Mac OS X) jest tutaj:
Dodaj jeszcze jeden argument do wiersza poleceń, aby wymusić zastosowanie filtra wejściowego podczas
soffice
otwierania pliku DOCX:lub
źródło
Skrypt Nautilus
Ten skrypt wykorzystuje libreoffice do konwersji plików zgodnych z LibreOffice na PDF.
Aby uzyskać instrukcje instalacji, zobacz tutaj: Jak mogę zainstalować skrypt Nautilus?
źródło
Uwaga: postanowiłem usunąć odpowiedź z tego pytania i opublikować tutaj zmodyfikowaną wersję, gdy zdałem sobie sprawę, że
unoconv
nie radzi sobie zpsw
plikami w ogóle i nie udało mi się przekonwertować ich na inne formaty. Nie mogą być również problemydocx
ixlsx
formatów.Jednak w
Libreoffice
pełni obsługuje wiele typów plików; pełna dokumentacja jest dostępna na oficjalnej stronie, która wyszczególnia prawidłowe formaty wejściowe i wyjściowe.Możesz użyć
libreoffice
narzędzia do konwersji wiersza polecenia lub unoconv , które jest dostępne w repozytoriach. Uważam, żeunoconv
jest bardzo przydatna i prawdopodobnie tego właśnie chcesz. Mimo że Takkat krótko wspomniałunoconv
, pomyślałem, że przydałoby się podać trochę więcej szczegółów i jednowierszowej konwersji partii.Za pomocą terminala można
cd
przejść do katalogu zawierającego pliki, a następnie przekonwertować je wszystkie, uruchamiając jeden wiersz:(Ten jeden wiersz jest modyfikacją mojego skryptu tłumaczenia opisanego w tej odpowiedzi .)
Jeśli później chcesz użyć innych formatów plików, po prostu zamień
odt
ipdf
na inne obsługiwane formaty wejściowe i wyjściowe. Obsługiwane formaty typu pliku można znaleźć, wprowadzającunoconv -f odt --show
. Aby przekonwertować plik jednorazowego użytku, na przykładunoconv -f pdf myfile.odt
.Więcej informacji o programie i jego opcjach można znaleźć, wchodząc do terminalu
man unoconv
lub odwiedzając strony Ubuntu online .źródło
Kolejny skrypt Nautilusa
Ten bardzo prosty i lekki skrypt Nautilus służy
unoconv
do konwersji wybranych plików zgodnych z LibreOffice do formatu PDF:źródło
Dodam nową odpowiedź, ponieważ w ostatnim czasie Pandoc otworzył szereg nowych ścieżek konwersji, uzyskując możliwość odczytu plików ODT.
Kiedy Pandoc czyta w formacie pliku, konwertuje go na format wewnętrzny, „natywny” (który jest formą JSON).
Ze swojej natywnej formy może następnie wyeksportować dokument do wielu innych formatów. Nie tylko PDF, ale także DocBook, HTML, EPUB, DOCX, ASCIIdoc, DokuWiki, MediaWiki i co nie ...
Ponieważ tutaj pożądanym formatem wyjściowym jest PDF, mamy inny wybór różnych ścieżek, które Pandoc nazywa silnikiem pdf . Oto lista obecnie dostępnych silników PDF (dotyczy Pandoc v2.7.2 i nowszych - poprzednie wersje mogą obsługiwać tylko mniejszą listę):
pdflatex: Wymaga to zainstalowania LaTeXa oprócz Pandoc.
xelatex: wymaga XeLaTeX być dodatkowo zainstalowane na Pandoc (dostępny także jako dodatkowy pakiet ogólnych dystrybucji TeXowych ).
kontekst: Wymaga zainstalowania ConTeXt oprócz Pandoc; ConTeXt jest dostępny jako dodatkowy pakiet do większości ogólnych dystrybucji TeX ).
lualatex: wymaga LuaTeX być dodatkowo zainstalowane na Pandoc (dostępny także jako dodatkowy pakiet ogólnych dystrybucji TeXowych ).
pdfroff: Wymaga to zainstalowania GNU Roff oprócz Pandoc.
wkhtml2pdf: Wymaga to wkhtmltopdf być zainstalowane oprócz Pandoc.
Książę: To wymaga PrinceXML być zainstalowane oprócz Pandoc.
weasyprint: Wymaga to weasyprint być zainstalowane oprócz Pandoc.
Istnieje kilka nowych i nowszych silników PDF zintegrowanych teraz z Pandoc, których sam jeszcze nie używałem i których obecnie nie mogę opisać bardziej szczegółowo: tektoniczna i lateksowa .
OSTRZEŻENIE: Nie oczekuj, że wygląd twojego oryginalnego dokumentu będzie identyczny we wszystkich wydrukach PDF z podglądem wydruku lub eksportem PDF ODT! Pandoc, gdy konwersja nie zachowuje układów , zachowuje zawartość i strukturę dokumentów: akapity pozostają akapitami, podkreślone słowa pozostają podkreślone, nagłówki pozostają nagłówkami itp. Ale ogólny wygląd może się znacznie zmienić.
Przykładowe polecenia
pdflatex:
XeLaTeX:
LuaLaTeX:
Kontekst:
GNU troff:
wkhtmltopdf:
PrinceXML:
weasyprint:
Powyższe polecenia są najbardziej podstawowe do konwersji. W zależności od wybranego silnika PDF może istnieć wiele innych opcji kontrolujących wygląd wyjściowego pliku PDF. Na przykład następujące dodatkowe parametry mogą zostać dodane do wszystkich ścieżek prowadzących przez LaTeX:
który użyje niestandardowego rozmiaru strony (nieco większego niż DIN A4) z marginesami 2 cm na górnej krawędzi i 1,12 cm na pozostałych trzech krawędziach.
źródło