MS Word에서 고품질 그림을 삽입하는 가장 좋은 방법


4

왜곡되지 않고 고품질의 PDF 그림을 Word에 삽입하는 방법이 필요합니다.

수치는 대부분 Python과 Matplotlib을 통해 생성 된 과학적인 그래프입니다. 주요 문제는 그래프의 텍스트 레이블이 올바르게 렌더링되지 않는 것입니다.

PDF를 개체로 삽입하고 EPS 파일을 이미지로 삽입 할 수는 있지만이 수치는 Word에서 매우 잘 표시되지 않습니다.

현재 나의 작업 과정은 Inkscape를 사용하여 그림을 300DPI에서 PNG 파일로 내보내는 것입니다. 그러나 그림 품질은 여전히 ​​만족스럽지 않으며 DPI를 늘리면 품질이 눈에 띄게 증가하지 않습니다.

누군가 고품질의 그래프를 Word에 삽입하는 좋은 방법을 알고 있습니까?


pdf로 생성 된 각 플롯은 스크립트에 액세스 할 수있는 경우 다른 형식으로 다시 생성 될 수 있습니다. Imagemagick를 사용하면 치수 를 픽셀 단위로 지정하고 원하는 정의를 가진 png를 얻을 수 있습니다 (예 : A4 600 DPI의 경우 4961x7016). 대신 라텍스를 살펴보십시오 (texmaker로 GUI를 사용했을 수도 있음).
Hastur

1
감사합니다. 나는 라텍스에 매우 익숙하지만 그것을 사용할 수 없습니다 (한숨). Inkscape를 사용하면 정확한 출력을 지정할 수도 있지만 문제는 여전히 Word에서 그림이 300dpi에서도 제대로 렌더링되지 않는다는 것입니다. 그리고 dpi를 높이는 것이 더 나아지지 않는 것 같습니다.
Jonny

Imagemagick : 놀아보십시오 convert -density 600 file.pdf -resize 4961x7016 mypic.png. 그런 다음 크기를 조정하거나 잘라내십시오. A4 픽셀 크기를 갖기 전에 링크를 보거나 인터넷에서 문자 형식을 검색하십시오. 가장 잘 일치하는 600과 4961x를 변경할 수 있습니다. 여기를
Hastur

고맙지 만, 제가 만들고자하는 요점은 Word가 수치를 왜곡하여 전처리가 문제가 아니라는 것입니다. 그동안 Imagemagick을 사용해 볼 것입니다. 방금 설치했습니다.
Jonny

답변:


3

끝없는 Word와 PDF 또는 Eps의 전투

래스터 이미지 를 사용하면 정의와 크기 사이의 타협점을 찾아야합니다. 문서가 600 DPI로 인쇄 될 것임을 알고 있으면 해당 정의를 가진 이미지를 가져올 수 있습니다. 그러나 내일 더 높은 해상도의 프린터를 사용한다면 다시 시작해야합니다. DPI를 늘리면 문서의 크기가 커지고 시스템에 더 많은 리소스가 필요합니다.

벡터 이미지로 작업 할 수 있으면 이미지 정의와 관련된 문제는 발생하지 않지만 설치된 글꼴과 관련된 문제를 찾거나 10 억 개의 데이터를 플롯하는 등의 경우 더 큰 파일을 가질 수 있습니다. ..

단어 안에 파일을 가져와야 할 때 다음을 수행 할 수 있습니다.

  • 소스로 이동하십시오 : 플롯을 생성 한 스크립트에서 직접 필요한 형식 (및 결국 크기)을 대체하거나 추가 할 수 있습니다. matplotlib 사이트에서 읽으십시오 [ 1 ] . Vector Graphics 형식으로 저장하는 것이 좋습니다 [ 1b ] .

    plt.savefig(pp, format='pdf') 
    plt.savefig(pp, format='png')
    plt.savefig(pp, format='svg')
    

    또는

    fig.savefig('test.pdf')
    fig.savefig('test.png')
    
  • imagemagick [ 2 ] 또는 Inkscape [ 2b ] 또는 gimp [ 2b ] 를 사용하여 pdf를 png (또는 다른 래스터 형식, tiff, jpg ...) 또는 svg (또는 기타 벡터 그래픽 형식)로 변환하십시오.

    내부에 벡터 그래픽 [ 3 ] 이있는 PDF인지 여부에 따라 다릅니다 .
    첫 번째 경우에는 드문 렌더링이나 글꼴 문제가 있지만 정의 문제는 없습니다.
    후자의 경우 최종 이미지의 밀도와 치수를 선택해야합니다.
    예를 들어이 답변에서 더 많은 것을 읽으십시오 [ 4 ] .
    다음과 비슷한 내용을 작성합니다.

    convert file.pdf file.svg                                  # If pdf with vector
    convert -density 600 file.pdf -resize 4961x7016 mypic.png  # With fixed grid
    

참고
PDF 파일이 특정 정의와 래스터 이미지를 만든 경우, 예를 들어 300 DPI, 당신은 ... :-) 400 또는 600에 DPI를 증가하는 프로그램에 너무 많은 성공을하지 않습니다
엄지 손가락의 규칙으로서 (그것은 일반적으로 작동 ) 래스터 pdf에는 문자열이 있다고 가정 할 수 있습니다 /image.
따라서 예를 들어 Linux에서는 grep해당 문자열의 발생을 실행 하고 계산할 수 있습니다 .

grep  -c -i "/image" *pdf
MyRasterPdf.pdf:3    # > 0  if raster pdf
MyVectorPdf.pdf:0    # = 0  if vector pdf

마지막 으로 GUI가 texmaker 인 LaTex를 고려 하십시오 .


감사합니다. 현재 Imagemagick은 문제를 일으키기 때문에 일단 작업이 끝나면 배쉬를 줄 것입니다.
Jonny

좋아, 그것은 작동하는 것 같습니다. 나는 또한 출력 품질에 대해 매우 항문 적이라고 생각합니다. 글꼴이 약간 왜곡되어 있어도 충분할 것입니다. 나는 교수가 불평하는지 기다릴 것이다 (-;
Jonny

?!?! :) 당신은 무엇입니까?
Hastur

하하. 그러나 결과는 훨씬 나아졌습니다. 정말 완벽합니다. 앞으로 이것을 사용하려는 사람들을위한 참고 사항, Imagemagick에서 변환이 제대로 작동하려면 고스트 스크립트가 설치되어 있어야한다고 생각합니다.
Jonny

1
matplotlib 그래프를 Word로 가져 오는 작업 과정은 SVG로 저장하고 Inkscape에서 열리고 EMF로 저장하고 Word에서 열었습니다. 이런 식으로 그래프는 벡터 이미지로 유지되므로 Word에서 선명하고 확장 가능합니다.
Armon

1

2018 년 5 월부터 Office 365 버전의 Microsoft Word는이 질문에 대한 답변을 변경하는 두 가지 변경 사항을 적용했습니다.

즉, 고품질 그래픽을 처리하는 가장 좋은 방법은 Matplotlib에서 올바른 크기의 그림을 만든 다음를 사용 plt.figure(figsize=(width_in_inches, height_in_inches)하여 그림을 내보내는 것입니다 plt.savefig('filename.svg'). 이 파일을 Word에 직접 삽입하면 PDF로 변환 할 때도 올바르게 렌더링됩니다.

이 비디오 는 전체 프로세스를 보여주고 형식을 비교합니다.


1

Word 2016에서 matplotlib 그래픽 가져 오기 작업 과정은 다음과 같습니다.

import matplotlib.pyplot as plt

Illustrator에서 그림과 텍스트를 조정할 수 있도록 편집 가능한 텍스트를 내 보냅니다. 기본적으로 matplotlib는 Adobe Illustrator에서 이해할 수없는 "Type 3 글꼴"을 내보내므로 Type 2 / TrueType 글꼴을 내 보내야합니다.

plt.rcParams['pdf.fonttype'] = 42
plt.rcParams['ps.fonttype'] = 42 

그림 저장

plt.savefig('my_figure.pdf',bbox_inches='tight',transparent = True)

Illustrator에서 열고 필요에 따라 조정

이미지를 .emf로 내보내기

my_figure.emf를 Word에 삽입

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