ODT을 PDF로 변환하는 방법은 무엇입니까?


답변:


68

libre office에서 문서를 열고 PDF로 내보내기 ...를 선택하십시오 .

여기에 이미지 설명을 입력하십시오

명령 행 솔루션의 경우 명령 행에서 파일을 변환하는 unoconv NAME 설치 가 있습니다.

unoconv -f pdf mydocument.odt

참고 : Ubuntu 11.10 unoconv부터는 Libre Office에만 의존합니다. 이전 unoconv 버전 (Ubuntu <= 11.04)은 Open Office에 의존하지만 Libre Office와 함께 실행됩니다.


3
언급 unoconv해 주셔서 감사합니다. 훌륭합니다!
Boris Däppen

1
LibreOffice와 명령 행 대 프로와 Unoconv의 단점이 무엇인지 궁금 사람들을 위해,이 문제는 도움이 될 수 있습니다 : github.com/dagwieers/unoconv/issues/364
세바스티앙 Lorber

@Takkat unoconv는 MacOS Sierra에서 libreoffice5 위치를 찾지 못하는 것 같습니다 unoconv: Cannot find a suitable office installation on your system.. 따라서 사용할 수 없습니다 :(
SebMa

87

libreoffice목적 에 맞는 명령 줄을 사용할 수도 있습니다 . 이는 일괄 변환의 이점을 제공합니다. 그러나 단일 파일도 가능합니다. 이 예제는 현재 디렉토리의 모든 ODT 파일을 PDF로 변환합니다.

libreoffice --headless --convert-to pdf *.odt

다음을 통해 명령 줄 옵션에 대한 자세한 정보를 얻으십시오.

man libreoffice

커맨드 라인 사용에 대한 또 다른 논쟁은 예를 들어 gui에 갑자기 결함이있는 pdf를 생성하기 시작했지만 커맨드 라인은 여전히 ​​매력처럼 작동한다는 것입니다.
Hermann Ingjaldsson

4
Thi9s는 작동하지만 문제가 있습니다. GUI가 열려 있으면 명령이 아무 것도 수행하지 않습니다 (오류조차 표시하지 않음). 추악하지만이 해결 방법을 사용하면 새 인스턴스를 열 수 있습니다 --env:UserInstallation=file:///path/to/some/directory.
tokland

1
@tokland : 버그 리포트가 있습니다 : bugs.freedesktop.org/show_bug.cgi?id=37531
Mechanical snail

1
나는 또한 일괄 변환을 얻었 unoconv습니다. 예를 들어 나는 그 선을 unoconv -f pdf *.ppt성공적으로 사용했다 .
XavierStuvw

2
LibreOffice와 명령 행 대 프로와 Unoconv의 단점이 무엇인지 궁금 사람들을 위해,이 문제는 도움이 될 수 있습니다 : github.com/dagwieers/unoconv/issues/364
세바스티앙 Lorber

8

"GUI 이외"방법에 대한 자세한 내용은 다음과 같습니다.

  1. 이 방법을 사용하여 ODT 파일을 PDF로 변환 할 수 있습니다. 또한 MS Word DOCX 파일 (LibreOffice에서 특정 ODT를 처리 할 수있을뿐만 아니라 작동)과 일반적으로 LibreOffice에서 열 수있는 모든 파일 형식에서도 작동합니다.

  2. libreoffice제안 된 다른 답변 중 하나 라는 이진 파일이 있다고 생각하지 않습니다 . 그러나 soffice(.bin)명령 행에서 LibreOffice를 시작하는 데 사용할 수있는 바이너리가 있습니다. 일반적으로 /usr/lib/libreoffice/program/; 종종 심볼릭 링크 /usr/bin/soffice가 해당 위치를 가리 킵니다.

  3. 그러면 대부분의 경우 매개 변수로 --headless --convert-to pdf는 충분하지 않습니다. 다음과 같아야합니다.

    --headless --convert-to pdf:writer_pdf_Export
    

    이 대문자를 정확히 따르십시오!

  4. 다음으로 시스템에 LibreOffice GUI 인스턴스가 이미 실행중인 경우 명령이 작동하지 않습니다. 2011 년 이후 알려진 버그 # 37531 로 인해 발생합니다 . 이 추가 매개 변수를 명령에 추가하십시오.

     "-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}"
    

    이렇게하면 동일한 사용자가 시작한 첫 번째 GUI LO 인스턴스를 방해하지 않고 두 번째 헤드리스 LO 인스턴스가 사용할 수있는 별도의 새 환경이 만들어집니다.

  5. 또한 --outdir /pdf지정한 사용자가 존재하고 이에 대한 쓰기 권한이 있는지 확인하십시오 . 또는 다른 출력 디렉토리를 사용하십시오. 첫 번째 테스트 및 디버깅 라운드 인 경우에도 :

    $ mkdir ${HOME}/lo_pdfs
    
  6. 금후:

    /path/to/soffice                                                     \
      --headless                                                         \
      "-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" \
      --convert-to pdf:writer_pdf_Export                                 \
      --outdir ${HOME}/lo_pdfs                                           \
    /path/to/test.docx
    

    이것은 LibreOffice v5.1.2.2가 설치된 Mac OS X Yosemite 10.10.5에서 작동합니다 ( soffice어쨌든 우분투에서 다른 바이너리에 대한 특정 경로 사용 ...). 또한 Debian Jessie 8.0 (path 사용 /usr/lib/libreoffice/program/soffice) 에서도 작동합니다 . 죄송합니다. 지금 우분투에서 테스트 할 수 없습니다 ....

    이 모든 것이 작동하지 않으면 DOCX를 처리하려고 할 때 :

  7. 명령을 시도하는 특정 DOCX 파일에 문제가있을 수 있습니다. 먼저 자신 만의 아주 간단한 DOCX 문서를 만드십시오. 이를 위해 LibreOffice 자체를 사용하십시오. "Hello World!"라고 쓰십시오. 그렇지 않으면 빈 페이지에. DOCX로 저장하십시오.

  8. 다시 시도하십시오. 간단한 DOCX와 함께 작동합니까?

  9. 다시 작동하지 않으면 7 단계를 반복하되 이번에는 ODT로 저장하십시오.

  10. 8 단계를 반복하되 이번에는 ODT를 참조하십시오.

  11. 마지막 : 사용 전체 경로 sofficesoffice.bin와에 libreoffice와 각 실행 -h매개 변수를 :

    $ /path/to/libreoffice -h  # if that path exists, which I doubt!
    $ /path/to/soffice -h
    $ /path/to/soffice.bin -h
    
    • 여기에 출력이 있습니까?
    • 세 개의 바이너리 / 심볼릭 링크 중 어느 것?
    • 출력을 기록하십시오.
    • 우리에게 당신의 출력을 알려주세요!
       

    사용한 명령 줄과 비교하십시오.

    • 매개 변수 이름, 대문자, 대시 수 등의 변경 사항이 있습니까?
       

    비교를 위해 내 (Mac OS X) 출력은 다음과 같습니다.

     $ /Applications/LibreOffice.app/Contents/MacOS/soffice -h 
    
     LibreOffice 5.1.2.2 d3bf12ecb743fc0d20e0be0c58ca359301eb705f
    
     Usage: soffice [options] [documents...]
    
     Options:
     --minimized    keep startup bitmap minimized.
     --invisible    no startup screen, no default document and no UI.
     --norestore    suppress restart/restore after fatal errors.
     --quickstart   starts the quickstart service
     --nologo       don't show startup screen.
     --nolockcheck  don't check for remote instances using the installation
     --nodefault    don't start with an empty document
     --headless     like invisible but no user interaction at all.
     --help/-h/-?   show this message and exit.
     --version      display the version information.
     --writer       create new text document.
     --calc         create new spreadsheet document.
     --draw         create new drawing.
     --impress      create new presentation.
     --base         create new database.
     --math         create new formula.
     --global       create new global document.
     --web          create new HTML document.
     -o             open documents regardless whether they are templates or not.
     -n             always open documents as new files (use as template).
    
     --display <display>
           Specify X-Display to use in Unix/X11 versions.
     -p <documents...>
           print the specified documents on the default printer.
     --pt <printer> <documents...>
           print the specified documents on the specified printer.
     --view <documents...>
           open the specified documents in viewer-(readonly-)mode.
     --show <presentation>
           open the specified presentation and start it immediately
     --accept=<accept-string>
           Specify an UNO connect-string to create an UNO acceptor through which
           other programs can connect to access the API
     --unaccept=<accept-string>
           Close an acceptor that was created with --accept=<accept-string>
           Use --unnaccept=all to close all open acceptors
     --infilter=<filter>[:filter_options]
           Force an input filter type if possible
           Eg. --infilter="Calc Office Open XML"
               --infilter="Text (encoded):UTF8,LF,,,"
     --convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files
           Batch convert files (implies --headless).
           If --outdir is not specified then current working dir is used as output_dir.
           Eg. --convert-to pdf *.doc
               --convert-to pdf:writer_pdf_Export --outdir /home/user *.doc
               --convert-to "html:XHTML Writer File:UTF8" *.doc
               --convert-to "txt:Text (encoded):UTF8" *.doc
     --print-to-file [-printer-name printer_name] [--outdir output_dir] files
           Batch print files to file.
           If --outdir is not specified then current working dir is used as output_dir.
           Eg. --print-to-file *.doc
               --print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc
     --cat files
           Dump text content of the files to console
           Eg. --cat *.odt
     --pidfile=file
           Store soffice.bin pid to file.
     -env:<VAR>[=<VALUE>]
           Set a bootstrap variable.
           Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path.
    
     Remaining arguments will be treated as filenames or URLs of documents to open.
    
  12. sofficeDOCX 파일을 열 때 입력 필터를 적용하려면 명령 줄에 인수를 하나 더 추가 하십시오.

    --infilter="Microsoft Word 2007/2010/2013 XML"
    

    또는

    --infilter="Microsoft Word 2007/2010/2013 XML"
    --infilter="Microsoft Word 2007-2013 XML"
    --infilter="Microsoft Word 2007-2013 XML Template"
    --infilter="Microsoft Word 95 Template"
    --infilter="MS Word 95 Vorlage"
    --infilter="Microsoft Word 97/2000/XP Template"
    --infilter="MS Word 97 Vorlage"
    --infilter="Microsoft Word 2003 XML"
    --infilter="MS Word 2003 XML"
    --infilter="Microsoft Word 2007 XML Template"
    --infilter="MS Word 2007 XML Template"
    --infilter="Microsoft Word 6.0"
    --infilter="MS WinWord 6.0"
    --infilter="Microsoft Word 95"
    --infilter="MS Word 95"
    --infilter="Microsoft Word 97/2000/XP"
    --infilter="MS Word 97"
    --infilter="Microsoft Word 2007 XML"
    --infilter="MS Word 2007 XML"
    --infilter="Microsoft WinWord 5"
    --infilter="MS WinWord 5"
    

fwiw, tdf 버그 37531 이 해결 / 수정 된 것으로 표시되었습니다.
myrdd

4

노틸러스 스크립트

이 스크립트는 libreoffice를 사용하여 LibreOffice와 호환되는 파일을 PDF로 변환합니다.

#!/bin/bash
## PDFconvert 0.1
## by Glutanimate (https://askubuntu.com/users/81372/)
## License: GPL 3.0
## depends on python, libreoffice
## Note: if you are using a non-default LO version (e.g. because you installed it 
## from a precompiled package instead of the official repos) you might have to change
## 'libreoffice' according to the version you're using, e.g. 'libreoffice3.6'

# Get work directory
base="`python -c 'import gio,sys; print(gio.File(sys.argv[1]).get_path())' $NAUTILUS_SCRIPT_CURRENT_URI`"

#Convert documents
while [ $# -gt 0 ]; do
    document=$1
    libreoffice --headless --invisible --convert-to pdf --outdir "$base" "$document" 
    shift

done

설치 지침은 여기를 참조하십시오 : 노틸러스 스크립트는 어떻게 설치합니까?


2
"lipreoffice"와 같은 기능이 OSX에도 포함되기를 바랍니다. 때로는 Mac을 사용해야 할 때 손이 너무 짧게 느껴집니다.
Léo Léopold Hertz 준영

2

참고 : 나는 이 질문에서 답을 삭제 unoconv하고 psw파일을 전혀 다루지 않고 다른 형식으로 성공적으로 변환하지 못한다 는 것을 알았을 때 수정 된 버전을 여기에 게시 하기로 결정했습니다 . 또한 문제가있을 수 있습니다 docxxlsx형식을 지원합니다.


그러나 Libreoffice많은 파일 형식을 완벽하게 지원합니다. 전체 문서는 유효한 입력 및 출력 형식을 자세히 공식 사이트에서 확인할 수있다.

리포지토리에서 사용할 수 있는 명령 줄 libreoffice변환 유틸리티 또는 unoconv 를 사용할 수 있습니다. 나는 unoconv매우 유용하다고 생각하며 아마 당신이 원하는 것입니다. Takkat 이 간단히 언급 했지만 unoconv, 자세한 내용과 일괄 변환 원 라이너를 제공하는 것이 유용하다고 생각했습니다.

터미널을 사용하면 cd파일이 들어있는 디렉토리로 이동 한 다음 다음과 같이 하나의 라이너를 실행하여 모든 파일을 일괄 변환 할 수 있습니다.

for f in *.odt; do unoconv -f pdf "${f/%pdf/odt}"; done

(이 one-liner는 이 답변에 나와있는 번역 스크립트를 수정 한 입니다.)

나중에 다른 파일 형식을 사용하려면 odtpdf지원되는 다른 입력 및 출력 형식을 대신 사용하십시오. 을 입력하여 파일 형식에 지원되는 형식을 찾을 수 있습니다 unoconv -f odt --show. 예를 들어, 하나의 파일 사용을 변환하려면 unoconv -f pdf myfile.odt.

프로그램에 대한 자세한 정보와 옵션은 터미널에 입력 man unoconv하거나 Ubuntu 맨 페이지 온라인 으로 이동하여 찾을 수 있습니다 .


1

또 다른 노틸러스 스크립트

이 매우 간단하고 가벼운 노틸러스 스크립트는 unoconvLibreOffice와 호환되는 선택된 파일을 PDF 형식으로 변환하는 데 사용 됩니다.

#!/bin/sh
#Nautilus Script to convert selected LibreOffice-compatible file(s) to PDF
#
OLDIFS=$IFS
IFS="
"
for filename in $@; do
unoconv --doctype=document --format=pdf "$filename"
done
IFS=$OLDIFS

1

최근에 Pandoc이 ODT 파일을 읽을 수있는 기능을 확보하면서 일련의 새로운 변환 경로가 열렸 기 때문에 새로운 답변을 추가하고 있습니다.

Pandoc는 파일 형식으로 읽을 때 내부 형식 인 "기본"(JSON 형식)으로 변환합니다.

그런 다음 기본 형식에서 문서를 다양한 다른 형식으로 내보낼 수 있습니다. PDF뿐만 아니라 DocBook, HTML, EPUB, DOCX, ASCIIdoc, DokuWiki, MediaWiki 및 기타 등등 ...

여기서 원하는 출력 형식은 PDF이므로 Pandoc이 pdf-engine 이라고 부르는 다른 경로를 선택할 수 있습니다. 현재 사용 가능한 PDF 엔진 목록은 다음과 같습니다 (Pandoc v2.7.2 이상에서 사용 가능-이전 버전에서는 더 작은 목록 만 지원할 수 있음).

  • pdflatex : 이 필요 라텍스 Pandoc에 추가로 설치해야합니다.

  • xelatex : Pandoc과 함께 XeLaTeX 를 설치 해야합니다 (일반 TeX 배포판에 추가 패키지로 제공 ).

  • 문맥 : 이 필요 컨텍스트를 Pandoc에 추가로 설치해야합니다; ConTeXt는 가장 일반적인 TeX 배포판에 추가 패키지로 제공됩니다 .

  • lualatex : Pandoc 와 함께 LuaTeX 를 설치 해야합니다 (일반 TeX 배포판에 추가 패키지로 제공 ).

  • pdfroff : 이 필요한 GNU ROFF는 Pandoc에 추가로 설치해야합니다.

  • wkhtml2pdf : 이 필요한 wkhtmltopdf가 Pandoc에 추가로 설치해야합니다.

  • 왕자 : 이 필요한 PrinceXML이는 Pandoc에 추가로 설치해야합니다.

  • weasyprint : Pandoc 와 함께 weasyprint 를 설치 해야합니다 .

: 나는 아직 내가 현재보다 자세히 설명 할 수없는 자신을 사용하지 않은 지금 Pandoc에 통합 좀 더하고 새로운 PDF 엔진이 있습니다 지각latexmk은 .

경고 : 모든 PDF 출력에서 ​​원본 문서의 모양이 인쇄 미리보기 또는 ODT의 PDF 내보내기와 동일 할 것으로 예상하지 마십시오! 변환 할 때 Pandoc는 레이아웃을 보존하지 않습니다 , 그것은 보존 의 내용구조 단어가 제목 등, 제목을 유지하지만 전체 모양이 상당히 변경할 수 있습니다 강조 남아 강조, 단락 단락을 유지 : 문서를.

명령 예

pdflatex :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=pdflatex

XeLaTeX :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=xelatex

루아 텍스 :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=lualatex

문맥:

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=context

GNU 송어 :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=pdfroff

wkhtmltopdf :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=wkhtml2pdf

PrinceXML :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=prince

Weasyprint :

 pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=weasyprint

위의 명령은 변환에 가장 기본입니다. 선택한 PDF 엔진에 따라 출력 PDF 파일의 모양을 제어 할 수있는 다른 옵션이 많이있을 수 있습니다. 예를 들어 LaTeX를 통해 라우팅되는 모든 경로에 다음과 같은 추가 매개 변수를 추가 할 수 있습니다.

 -V geometry:"paperwidth=23.3cm, paperheight=1000pt, margin=11.2mm, top=2cm"

상단 가장자리에 2cm, 다른 세 가장자리에 1.12cm의 여백이있는 사용자 정의 페이지 크기 (DIN A4보다 약간 큼)를 사용합니다.


상단에서 네 번째 파라를 확인하십시오. 불완전한 것으로 보입니다.
DK Bose

@DKBose : 완료되었습니다.
Kurt Pfeifle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.