이 답변은 모든 테스트를 통과 하지만 테스트 문서의 순서도는 하나 입니다.
sudo apt-get install unoconv
doc2pdf respondus-docx-sample-file.docx
지금까지 다른 방법보다 더 나은 이유는 무엇입니까?
지금까지 제안 된 다른 방법 (특히 oowriter
및 ebook-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 도 플로우 차트 변환에 실패 함을 확인할 수 있습니다 .
실제로이 페이지에서 제안 된 여러 가지 방법을 테스트하는 데 시간이 걸렸습니다. 실제 테스트로 의견을 백업하십시오.