docx을 PDF로 변환


41

나는 변환하려고 DOCX 사용하여 내 우분투 서버에 PDF 파일을 명령 줄 하지만 내가 지금까지 시도 정확하게 말씀 2007/2010/2013 파일을 변환하는 것 컨버터 없음.

온라인 변환기는 문제없이 나타날 수 있지만 파일에는 중요한 데이터가 포함되어 있으므로 웹 서비스는 옵션이 아닙니다. 테스트를 위해이 Word 2007 파일 에는 중요한 요소 (수식, 벡터 그래픽, 이미지, 목록 등)가 포함되어 있으므로이 파일을 사용 합니다. 다음 도구를 테스트했습니다 (일부 게시물 ).

lowriter (LibreOffice Writer)-잘못된 출력 (원은 첫 번째 페이지가 아니라 마지막 페이지에 있어야 함)

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

unoconv-자체 변환기를 사용하지 않으므로 LibreOffice와 동일합니다. 먼저 odt로 변환 한 다음 pdf로 변환하면 파일이 완전히 엉망이됩니다.

abiword --to=pdf filename.doc -부정확하고 불완전합니다 (많은 요소가 누락되었습니다) :

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

OpenOffice Writer-abiword와 동일한 결과

wvPDF -다음과 같은 오류 메시지와 충돌

~ $ wvPDF 2007_Office_DocEncryption.docx test.pdf

현재 디렉토리 : / home / webmt / dev / test /

라텍스를 실행하는 데 문제가 있습니다.

test.log에서 오류 확인

계속 ...

DVI로 변환하지 못했습니다

Linux에서 docx 파일을 PDF로 올바르게 변환하는 방법이 있습니까? 내가 이미 언급 한 프로그램을 가진 사람에게 효과적이라는 것을 알면 도움이 될 것입니다. SE가 허락하자마자 현상금을 시작합니다.

추신 : 우분투 서버 12.04를 사용하고 있습니다


결론 :

나는 지금과 같이 Ubuntu에서 새로운 MS Word 형식 및 모든 종류의 요소와 작동하고 일대일 docx 파일 사본을 만들 수있는 신뢰할 수있는 도구가 없다고 결론을 내 렸습니다. 테스트 한 도구 중 어느 것도 샘플 파일을 올바르게 변환 할 수 없습니다. 매우 다른 종류의 문서 버전 / 컨텐츠에 직면하고 출력 품질이 가장 우선 순위가 높기 때문에 Linux에 연결된 Windows 서버에서 Word의 VB 매크로를 사용하여 변환을 수행하게됩니다.

최상의 결과를 얻는 게시물을 허용되는 답변으로 설정하겠습니다. 그러나 현상금은 절대적으로 올바른 변환을 가진 솔루션을 위해 고안되었습니다. 다시 한번 감사드립니다.


3
라텍스를 시도?
Braiam

@ScepticalJule, 예 마지막에 문제가 있습니다. 방금 첫 페이지를 보았습니다.

1
@Braiam 라텍스로 변환하는 링크를 놓을 수 있습니까?
회의적인 Jule


2
@ScepticalJule Braiam은 즉시 라텍스로 문서를 작성해야한다고 생각합니다. docx에서 라텍스로의 변환은 docx에서 pdf 로의 변환보다 훨씬 고통 스럽습니다. docx에서 doc로 변환 한 다음 doc에서 pdf로 변환을 시도 할 수 있습니다. 그러나 그렇게하려면 LO 독립 도구를 찾아야합니다. 다른 방법으로 도움을받을 수 있는지, 그리고 내 대답이 도움이되었는지 알려주십시오.
don.joey

답변:


57

이 답변은 모든 테스트를 통과 하지만 테스트 문서의 순서도는 하나 입니다.

sudo apt-get install unoconv
doc2pdf respondus-docx-sample-file.docx

지금까지 다른 방법보다 더 나은 이유는 무엇입니까?

지금까지 제안 된 다른 방법 (특히 oowriterebook-convert)을 테스트 했지만 이 방법보다 적은 테스트 를 통과했습니다 . 이 ebook-convert방법은 문서에서 여백과 텍스트 일부를 제거합니다.

이 방법은 rainbowpdf 와 같은 전문 변환기보다 더 나은 결과를 제공 합니다.

또한 html로 변환하려고했지만 원과 사각형에 사각형이있는 그림이 잘못되었습니다.

순서도 테스트가 실패하는 이유는 무엇입니까?

libreoffice 및 unoconv에 .docx 파일에있는 순서도를 올바르게 렌더링하는 데 문제가있는 것 같습니다. Microsoft Office에서 스마트 아트 를 사용하여 만들어 졌기 때문일 수 있습니다. 그게 문제 야. 그것은 이 스레드에서 논의 된 버그 입니다. 텍스트와 시각적 정보는 위의 방법으로 생성 된 pdf에 표시됩니다 (그러나 텍스트를 선택해야했습니다).

예상대로 완전히 표시되지 않는 플로우 차트.

예를 들어 글꼴 색이 제대로 읽히지 않고 일부 줄이 너무 깁니다. 스마트 아트를 올바르게 표시 할 수있는 Linux 솔루션을 알지 못합니다. :(

print페이지에 게시 된 모든 솔루션이 만족스럽지 않은 이유이기도 합니다.

한마디로

요컨대, 당신이하고있는 일은 정말 어렵고 현재 완전히 당신을 만족시킬 솔루션이 없습니다. docx2pdf 변환의 아킬레스 건이 똑똑한 예술입니다. 그것없이 살 수 있거나 스마트 아트 를 발견 하고 어떻게 든 이미지로 변환 하는 방법을 찾을 수 있다면 목표에 도달 할 수 있습니다.

옵션 1. 사용자가 문제를 처리하도록 강제

이것은 매우 우아하지 않은 솔루션입니다. 콘텐츠 제작자는 사무실 도움말 페이지에 설명 된대로 스마트 아트를 jpg로 저장할 수 있으므로 서버에서 변환 할 수 있습니다.

옵션 2. 문제 해결을위한 해킹

순서도가 종종 매우 유사하고 개발자의 능력에 따라 스마트 아트를 별도로 시도하고 변환 할 수 있습니다. 문서의 .docx 클러스터에서 drawing1.xml 파일을 추출한 다음 자연어 처리 및 일부 미친 핵을 사용하여 스마트 아트를 재구성 할 수 있습니다. 예를 들어 다음 유형의 xml을 엉망으로 만들어야합니다.

<dsp:txBody>
<a:bodyPr spcFirstLastPara="0" vert="horz" wrap="square" lIns="8255" tIns="8255" rIns="8255" bIns="8255" numCol="1" spcCol="1270" anchor="ctr" anchorCtr="0">
<a:noAutofit/>
</a:bodyPr>
<a:lstStyle/>
<a:p>
<a:pPr lvl="0" algn="ctr" defTabSz="577850">
<a:lnSpc><a:spcPct val="90000"/>
</a:lnSpc>
<a:spcBef>
<a:spcPct val="0"/>
</a:spcBef>
<a:spcAft>
<a:spcPct val="35000"/>
</a:spcAft>
</a:pPr>
<a:r>
<a:rPr lang="en-US" sz="1300" b="1" kern="1200"/>
<a:t>All three sides are different lengths
</a:t>
</a:r>
</a:p>
</dsp:txBody>

또는 최소한의 해결책으로 최소한 파일에서 텍스트 ( ?)를 추출 하여 <a:t>더 쉬운 방법으로 저장하십시오. 또는 PDF의 플로우 차트가 모두 동일한 경우 XML 자체에서 텍스트 색상과 줄 길이를 변경하는 스크립트를 작성할 수 있습니다. 그런 다음 실행할 수 doc2pdf있고 본질적으로 올바른 정보를 모두 가지고 있지만 형식이 아닌 파일이 있습니다. 순서도의 경우 서식이 정보의 일부 이기 때문에 서식 중 일부를 포함하고 싶을 수도 있습니다 .

옵션 3. 타사 서비스 사용

나는 지난 며칠 동안 더 많은 연구를했으며 변환을 완벽하게 수행하는 서비스를 발견했습니다 : zamzar . Zamzar를 사용하면 docx 파일을 업로드 한 다음 링크를 이메일로 보낼 수 있습니다. 또한 pdf@zamzar.com으로 파일을 보낸 다음받은 파일로 변환 된 파일을 다시 가져올 수있는 (유료?) 서비스가 있습니다. 자동으로 파일을 보내고 전자 메일에서 파싱하는 시스템을 쉽게 구축 할 수 있습니다. 이것은 많은 작업이 아니며 최종 결과가 가장 좋습니다.

노트

  • 누구든지 동일한 서비스를 제공하는 경우 자유롭게 편집하십시오.
  • 나는 zamzar 지원에게 메일을 보내서 API가 있는지 묻습니다. 훨씬 쉬울 것입니다.
  • 어쩌면 .NET 및 Java에 대한 apose 가 도움이 될 수 있습니까? 또는 이 매우 관련된 SO post 에서처럼 docx4java .
  • 또 다른 옵션은 날짜가 지난 것으로 보이고 libreoffice가 아닌 openoffice에 의존 하는 odf 변환기를 조사 하는 것입니다.
  • 이제 Java jodconverter 도 플로우 차트 변환에 실패 함을 확인할 수 있습니다 .

실제로이 페이지에서 제안 된 여러 가지 방법을 테스트하는 데 시간이 걸렸습니다. 실제 테스트로 의견을 백업하십시오.


1
zamzar로부터 소식을 받았습니다. "현재 몇 달 안에 베타 버전으로 출시 할 API가 있습니다. 관심이 있다면 베타 시험에 추가 할 수 있습니까?" 그들은 또한 그들의 전환 시스템이 자체 개발 한 것이라고 언급했다.
don.joey

@jasonplutext 귀하의 수정 사항이 도움이되지 않았다는 평가자의 의견에 동의합니다. plutext의 저자로서 (나는 추측합니까?) 나는 당신의 소속을 진술하는 면책과 함께 자신의 답변을 추가 할 것을 제안합니다. 감사.
don.joey

지난 몇 년 동안 업데이트가 있습니까?
becko

@becko 나는 그것을 따르지 않았다. 다른 사람에게 현상금을 줄 수 있습니까?
don.joey

향후 참고 사항 : 최신 버전의 올바른 사용법 lowriter은 이제 lowriter --convert-to pdf input_file.docx입니다. 사용 --pt pdf이 자동으로 실패합니다.
ACK_stoverflow

6

이것은 적절한 방식으로 작동하지만 독점 소프트웨어를 사용하는 명령 줄 솔루션입니다.

기본적인 문제는 Microsoft Word 형식이 Microsoft Word에 대해서만 완벽하게 이해할 수 있다는 것입니다 (버전이 다르더라도 이전 버전의 Word 파일이 최신 버전에서 잘못 열립니다). 다른 모든 솔루션은 근사 및 해킹이므로 파일에 따라 작동하거나 작동하지 않습니다.

따라서 Microsoft Word 설치로 .docx 파일을 처리해야합니다 (예, 옵션이며 공정하다고 생각합니다. Word를 사용하지 않으려면 사용하지 마십시오 --- LaTeX는 저의 작업에 적합하지만 다른 세계를 설득하기는 어렵습니다 ...).

저는 크로스 오버 시대부터 Linux Desktop (1)에서 Microsoft Office를 실행하는 데 사용하고있어 매우 유용합니다. 어쩌면 그것은 와인과도 잘 작동합니다.

이 구성을 사용하여 변환을 수행합니다.

1) 크로스 오버를 설치했습니다

2) Crossover에 Microsoft Office 버전이 설치되어 있습니다.

3) Microsoft Word에서 "백그라운드 인쇄"를 비활성화합니다

4) cups-pdf프린터를 설치하고 기본 프린터로 선택했습니다.

5) 변환을 수행하려면 ( 여기 힌트 )를 실행 하십시오 .

~/cxoffice/bin/wine --cx-app winword.exe respondus-docx-sample-file.docx /q /n /mFilePrintDefault /mFileExit

6) 변환 된 파일이 ~/PDF/디렉토리에 나타납니다 .

문서가 거의 완벽하게 나옵니다 (2 번 답변에 약간의 정렬이 잘못되어 있습니다.이 오류는 크로스 오버에서 실행할 때 Office Word 2007에 표시됩니다.-내 Windows 버전과 관련이 있는지 모르겠습니다).

1-2 페이지

3-4 페이지

이제 문제는 그래픽 단어 인터페이스가 팝업된다는 것입니다. Word의 명령 줄 옵션이 도움이되지 않았습니다 ...

(1) 나는 Codeveawers와 관련이 없으며 행복한 사용자입니다.


4

나는 또한 과거 에이 문제를 겪었고 최근에 그것을 사용할 필요가 없었으므로 여전히 그것이 나에게 영향을 미치는지 모른다.

질문에 대한 답변 :

이 질문 : .doc 또는 .docx를 .pdf로 일괄 변환하는 방법 은 주석에서 변환 lowriter이 실패 하는 이유를 설명합니다 .

명령 행에서 "space"문자 사용에주의하십시오 ... 공백 문자에 도달하면 "tab";)을 누르십시오. – Pitto Nov 16 '12 at 13:11

이 질문에 대한 답변도 도움이 될 수 있습니다.

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

당신은 실행할 것 libreoffice --headless --convert-to pdf *.odt입니다. man libreoffice명령이 작동하도록 이해하거나 조정하는 데 도움이 필요한 경우 명령을 사용하여 libreoffice에 대한 자세한 정보를 얻을 수 있습니다 .

그러나이 버그에 따라 당시에는 LibreOffice를 열 수 없습니다. https://bugs.freedesktop.org/show_bug.cgi?id=37531


이 질문은 SuperUser에 있지만 우분투와 관련이 있습니다 : https://superuser.com/questions/156189/how-to-convert-word-doc-to-pdf-in-linux

첫 번째 답변에는 두 가지 옵션이 있습니다. 하나는 CUPS를 사용하고 PDF 프린터를 만드는 것과 다른 하나는 LaTex를 사용하는 것입니다.

CUPS를 통해 PDF로 변환 당신이 실행됩니다 PDF sudo apt-get install cups-pdf다음에 oowriter -pt pdf your_word_file.doc(x). 이것은 oowriter 문제에 도움이 될 수 있습니다.

LibreOffice / OpenOffice / AbiWord와 관련하여 대부분의 도구가 ODT를 사용하는 경우 DOC / DOCX에서 PDF로 변환하려고한다는 사실에 문제가있을 수 있습니다. 따라서 Microsoft의 DOCX 형식에서 변환하거나 ODT로 변환하지 못했습니다.

.docx w에서 변환 할 때 몇 가지 버그가 있습니다. 워드 아트 (버전 포함) :

이 문서는 LibreOffice 포럼에서 .doc 및 다소 .docx 변환에 관한 것입니다 : http://en.libreofficeforum.org/node/5096 . 2013 년 1 월부터 적용되었으므로 다소 적용될 것입니다.

이 모든 것 외에도, 나는 정말로 모른다. 문제가 해결되기를 바랍니다.


죄송하지만 제안한 도구로는 깨끗하게 변환 할 수 없습니다.
회의적인 Jule

2

Libreoffice를 설치 한 경우이를 사용하여 변환을 시도 할 수 있습니다. 키보드에서 Ctrl+ Alt+ T를 누르면 터미널이 열립니다. 열리면 아래 명령을 실행하십시오.

libreoffice --headless -convert-to pdf <file_name>.docx -outdir output/path/for/pdf

또 다른 옵션은 Cups PDF 를 설치하는 것 입니다.

키보드에서 Ctrl+ Alt+ T를 누르면 터미널이 열립니다. 열리면 아래 명령을 실행하십시오.

sudo apt-get install cups-pdf

그런 다음 새 프린터를 만들어 PDF 파일 프린터로 설정하고 이름을 알고있는 한 원하는 이름을 지정한 다음 다음을 실행하십시오.

oowriter -pt pdf your_word_file.docx

그리고 PDF 파일은에 있습니다 ~/PDF.


1
그것들로 성공하지 못했습니다.
회의적인 Jule

이유에 대한 답 될 수 있습니다.
회의적인 Jule

귀하의 답변에 감사드립니다. 이해가 되겠지만 종이로 인쇄하는 것과 같이 인쇄가 작동하지 않는다는 것에 놀랐습니다 ... :)
Mitch

주요 문제는 LibreOffice가 문서를 올바르게 열고 표시 할 수 없다는 것입니다. 결과적으로 출력도 올바르지 않습니다. Linux에서 작동 했습니까?
회의적인 Jule

알아두면 좋습니다. 나는 단지 기본 문서에 대해서만 사무실을 사용하는데, 더 복잡한 것은 필요하지 않지만, 그렇게 할 때는 확실하게 참조 할 것입니다. 좋은 질문에 감사하고 나중에 참조 할 수 있도록 즐겨 찾기에 추가하겠습니다. 이 답변을 유지하고 다른 사용자가 볼 수 있도록 참고로 설명하겠습니다.
Mitch

2

쓰라린 진실은 다음과 같습니다. Linux 용 Office 솔루션은 완전히 실패했습니다! 나는 수년간 전임 GNU / Linux 사용자였으며 구식 Open-Office에서 Libre-Office, Abi-Word 등과 같은 다양한 Office 솔루션을 지속적으로 검색하고 시도했습니다. 사무실 업무를 도와주지 못했습니다. 라틴어 이외의 언어 (페르시아어, 아랍어 등의 오른쪽에서 왼쪽으로 쓰는 언어)에 관해서는 심지어 악화됩니다. 사용자는 자신의 작업을 수행하기 위해 이러한 소프트웨어와 싸워야합니다! 그리고 마이크로 소프트 오피스 호환성은 없습니다. 나는 얼마나 많은 시간과 노력을했는지 이야기 할 수 있는데 모두 실패했다. 그러나 이것은이 질문의 요점이 아니다.

나는 또한 WINE을 사용하여 Microsoft Office를 설치하고 실행하려고 시도했지만 어떻게 든 성공했지만 잘 작동하지 않았고 사무실 파일을 열려고 할 때 주로 충돌했습니다.

LaTeX는 괜찮지 만 사무실 솔루션은 아닙니다. LaTeX는 형식 설정을위한 것으로, 전문가 도구와 비슷하며 스프레드 시트 나 프리젠 테이션이 없습니다.

그래서 해결책은 무엇입니까?

이것은 명령 행 솔루션이 아닙니다. 지난 몇 년 동안 내가 GNU / Linux OS 내부를 유지하고 사무실 작업을 수행 할 수있는 유일한 솔루션은 가상 컴퓨터 (VirtualBox와 같은)에서 최소 Microsoft Windows 설치를 사용하여 설치하는 것입니다. Microsoft Office 슈트.

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

그것은 꽤 들리지 않을 수도 있지만 완벽하게 작동하고 소중한 사무실 솔루션과의 싸움에서 벗어날 수있는 유일한 솔루션입니다. 처음에는 이것이 좋은 해결책이 아니라고 생각했지만 다른 모든 사람들과 함께 실패하고 2 년 이상이 VM 작업을 한 후에는 정말 행복합니다. :)

===================================================== ================================

참고 -1 : Microsoft 제품을 광고하고 있지 않습니다! 문제를 해결하고 인생을 살아갈 수 있도록 노력하십시오.

참고 -2 : 위에서 강조한 것처럼 이것은 명령 줄 솔루션이 아닙니다. 그렇다면 왜 대답을 게시합니까? 테스트되고 잘 작동하는 옵션이기 때문에! 사용 가능한 WORKING 명령 줄 솔루션이없는 경우 (필자가 의심되는 경우) ALTERNATIVE 옵션을 사용하는 것이 NO 옵션보다 낫습니다.


1
wine가상 머신 대신 MS 워드를 사용하는 이유는 무엇 입니까?
totti

1
앞에서 언급했듯이 MS-Office를 사용한 설치 및 사용 경험이 WINE좋지 않았습니다. 이 프로그램은 Windows에서와 같이 작동하지 않았으며 (잘못된 동작이 표시됨) 많은 충돌을 일으켰습니다!
Seyed Mohammad

3
ohe 아직 downvoted 하지 않았지만이 질문은 명시 적으로 명령 행 솔루션을 요구 합니다. 이것은 MS 때문에 쓸모가 없으며 질문을 완전히 무시하기 때문에 쓸모가 없습니다.
djeikyb

3
OP는 자신의 Ubuntu 서버에서 작동 할 명령 줄 솔루션을 명시 적으로 요구하고 있습니다 (GUI조차 없을 것입니다). 귀하의 답변은 나쁘지 않지만이 경우에는 관련이 없습니다.
Glutanimate

2
@ScepticalJule 말도 안됩니다. 명령 줄 솔루션에 현상금을 명시 적으로 넣습니다. 그런 다음 질문에 대한 답변이 아닌 답변을 선택합니다. 다른 답변도 공부 했습니까? 이것 과 내 것을 포함하여 ?
don.joey

1

다음은 FF Multi Converter가 작동하는지 또는 Kingsoft Office를 사용해 볼 수있는 몇 가지 응용 프로그램입니다 .


FF Multi Converter를 설치하고 명령을 실행했습니다 ... 아무런 일이 없습니다. Kingsoft에는 멋진 GUI가 있지만 파일을 올바르게 열거 나 표시 할 수 없습니다 (필수 글꼴을 설치 한 후에도 수식이 누락되었습니다. 서클의 문자도 누락되었습니다).
회의적인 Jule

0

Software Center 또는 Synaptic 에서 Caliber 를 설치 하고 기본 출력을 PDF로 설정하십시오.

쉘 프롬프트에서 다음을 수행하십시오.

전자 북 변환 dummyfilename .docx .pdf -h


이것은 어떻게 든 텍스트를 잘라냅니다.
don.joey

와 충돌합니다 ValueError: No plugin to handle input format: docx. Google 은이 문제를 해결하지 않았으므로 버그를보고 할 것입니다.
회의적인 Jule
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.