2017-10-25 25 views
-3

MigraDoc을 사용 중이며 문서에 이미지를 삽입하려고합니다. 이를 수행하는 가장 간단한 방법은 이미지 파일에 대한 경로를 리소스에 제공하는 것이 아니라 제공하는 것입니다. 그래서 내가하고 싶은 것은 이미지를 파일에 포함시키고 빌드의 다른 파일들과 함께 포함시키는 것입니다. 그런 다음 MigraDoc은 상대 경로를 기반으로 이미지를 사용할 수 있습니다.빌드 이미지 출력

그러나 나는 이것을 수행하는 방법이나 그것이 가능할 지에 대한 단서가 없습니다. 그래서 내 프로젝트에 이미지 파일 외부에 리소스를 포함시킬 수 있습니까?

P. MigraDoc이 리소스를 사용하기 전에 이미지를 리소스에 포함하고 임시 폴더에 저장하는 방법이 있다는 것을 알고 있습니다. 이미지가 항상 제공되는 경우 단순한 디자인처럼 보입니다.

P.P.S. MigraDoc에서 프로젝트 리소스의 이미지를 사용하도록하는 방법이 있습니다 (수락 된 답변 참조).

답변

2

MigraDoc 사이트에 표시된 것처럼 byte[] 이미지를 사용하여 PDF 파일을 만들 수 있습니다. 이것은 자원 (사이트에 표시된대로)의 이미지와 함께 쉽게 사용할 수 있습니다.

이미지 리소스를 특수 문자열로 변환하고 MigraDoc이 파일 이름을 필요로하는 문자열을 전달합니다. 공식 MigraDoc 사이트에

static string MigraDocFilenameFromByteArray(byte[] image) 
{ 
    return "base64:" + 
      Convert.ToBase64String(image); 
} 

링크 :
http://www.pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx

그리고 MigraDoc는 또한 어셈블리와 프로그램 폴더에 저장되어있는 이미지를 사용할 수 있습니다. Assembly 클래스를 사용하여 어셈블리가 저장된 위치를 찾고 해당 폴더에서 검색 할 이미지를 검색 할 수 있습니다. 이것은 MigraDoc과는 아무런 관련이 없으며 몇 가지 기본적인 .NET 기능입니다.

+0

감사합니다. 내 질문이 MigraDoc과 직접 관련이 없다는 것은 맞습니다. 태그가 추가되었습니다. 문제의 근본 원인의 일부 였으므로 – Noceo

+0

MigraDoc 태그가 적합하지만 "지원하지 않습니다"는 오해의 소지가 있습니다. "base64 :"접두사와 자원을 사용하는 솔루션과 MigraDoc과 관련이 없지만 다른 MigraDoc 사용자와 관련성이있는 또 다른 솔루션이 있습니다. –

+0

좋은 지적입니다. 나는 내 질문에서 문언을 바꿨다. 고맙습니다. – Noceo