2017-10-19 3 views
1

PDFsharp 문서에 체크 박스를 추가하는 가장 좋은 방법은 무엇입니까?PDFsharp 문서에 체크 박스를 추가하는 방법

지금까지 Wingdings 글꼴로 "\u00fd" 문자열 만 추가 할 수있었습니다. PDF 문서를 Acrobat Reader와 함께 열 경우에만 작동합니다. 하지만 크롬이나 IE가 체크 박스를 열지 않으면 읽을 수없는 문자가 표시됩니다.

PDFsharp에 대한 아이디어 나 더 나은 대안 (무료 또는 오픈 소스)을 원하십니까?

PDF 문서에 대한 필자의 요구 사항은 매우 간단하고 한두 개의 보고서 만 필요합니다.

PDFsharp에서 제공하는 팔로어가있는 링크 글꼴을 포함시키는 초보자.

체크 박스 그리기 :

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, 
               PdfFontEmbedding.Always); 

XFont prevCheckboxFont = new XFont("WingDings", 12, XFontStyle.Regular, options); 

XRect prevCheckboxPos = new XRect(XUnit.FromInch(3.20), XUnit.FromInch(3.30), 
            XUnit.FromInch(1.25), XUnit.FromInch(.10)); 
string prevCheckboxText = "\u00FE"; 
gfx.DrawString(prevCheckboxText, prevCheckboxFont, XBrushes.Black, 
       prevCheckboxPos, XStringFormats.TopLeft); 
+1

이 몇 가지 코드를 보여주십시오. –

+0

그래서 최신 버전 (1.50)을 사용하고 있지 않지만 매우 오래된 버전 (1.32 또는 그 이전 버전)을 사용하고있는 것으로 보입니다. 지금 작동합니까? 그렇지 않은 경우 PDF를 제공 하시겠습니까? 코드 스 니펫에는 확인란을 그리는 코드가 표시되지 않습니다. –

+0

@PDFsharpNovice 체크 상자를 그리는 부분을 추가했습니다. 지금 일하고있다. Chrome과 IE는 내 노트북에 올바른 체크 박스를 표시하고 있지만 더 많은 테스트를 실행하고 서버에서 실행해야합니다. 최신 안정 버전 1.32.3057이 있습니다. 이 코드가 올바르게 보이는지 또는 업데이트 된 방법이 있습니까? – causita

답변

2

우리는 PDF에서 체크 박스를 만들 Wingdings를를 사용을하고 어도비 리더, 파이어 폭스와 크롬와 함께 작동합니다.

글꼴을 PDF 파일에 포함해야합니다. 현재 버전 (1.50 이상) 글꼴은 항상 포함되고, 옵션은 제거와

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, 
               PdfFontEmbedding.Always); 
XFont font = new XFont("Times New Roman", 12, XFontStyle.Regular, options); 

: 이전 버전 1.32 이상으로

당신은 포함 된 글꼴을 가지고 플래그를 지정해야합니다.

은 참조 : 당신이 다음 코드를 해결하기 위해 도움이 필요한 경우
http://www.pdfsharp.net/wiki/Unicode-sample.ashx
MigraDox C# Checkboxes - Wingdings Not Working

+0

에 사용했습니다 (올바르게!) 일부 코드에 대해 OP에게 질문합니다. 어떻게 중도 코드 조각이 아닌, 링크에서 코드를 직접 제공하지 않은 것입니까? – mkl

+0

@mkl OP는 사용하는 버전을 나타내지도 않습니다. 사용량이 1.32에서 1.50 사이에서 변경되었습니다. 이 링크는 공식 프로젝트 사이트로 연결되며 부서지기 쉽지 않습니다. 나는 유지 보수되지 않은 코드 사본을 만드는 것을 좋아하지 않는다. 필자는 실제적인 원인을 알지 못하고 추측을 기반으로 코드를 작성하거나 복사하는 것을 좋아하지 않습니다. –

+0

* "유지 보수가되지 않은 코드 사본을 만드는 것을 좋아하지 않습니다."* - 일반적으로 칭찬할만한 태도이지만이 경우 스택 오버플로가 원하는 방식으로 충돌합니다. [ "항상 중요한 링크의 가장 중요한 부분을 인용하십시오 "] (https://stackoverflow.com/help/how-to-answer). 그것은 말했습니다, "OP는 그들이 사용하는 버전을 나타내지도 않습니다 - 사용량이 1.32에서 1.50 사이로 변경되었습니다."* -이 경우 나는 가장 최신 버전을 사용하거나 이전에 명확하게하기 위해 OP를 요청합니다. 응답. – mkl