2013-06-05 2 views
3

우리는 ABCPDF의 버전 8.1을 사용하여 html에서 멋진 PDF 문서를 생성합니다.인쇄시 얇은 경계선

이제 Adobe Reader에서 인쇄 할 때 페이지 상단과 하단에 문서를 표시 할 때 보이지 않는 얇은 테두리가 추가된다는 것을 알았습니다. 또한 XPS로 인쇄 할 때 해당 행은 표시되지 않습니다.

나는 그것을 피할 수있는 설정을 놓쳤을 것입니다. 순간

우리는 그런 페이지를 인쇄 :

 using (var doc = new WebSupergoo.ABCpdf8.Doc()) 
     { 
      doc.HtmlOptions.DoMarkup = false; 
      doc.HtmlOptions.AddLinks = false; 
      doc.HtmlOptions.FontEmbed = true; 
      doc.HtmlOptions.Engine = EngineType.Gecko; 

      //in case that we need to create more than 1 page, we need go get the PageId and use it 
      int pdfPageId = doc.AddImageHtml(html); 
      while (true) 
      { 
       doc.FrameRect(); 
       if (!doc.Chainable(pdfPageId)) 
        break; 
       doc.Page = doc.AddPage(); 
       pdfPageId = doc.AddImageToChain(pdfPageId); 
      } 

      for (int i = 1; i <= doc.PageCount; i++) 
      { 
       doc.PageNumber = i; 
       doc.Flatten(); 
      } 

      doc.Save(pathToSave); 
     } 

은 내가 websupergoo의 사람은 매우 친절하고 빠른 응답 알고있다. 하지만이 방법이 다른 사람들에게도 도움이 될 수 있다고 생각합니다. 따라서 이메일을 보내는 대신 여기에 작성합니다.

업데이트 :

내가 시도는 인쇄 된 문서의 크기를 변경하여 LINEX 제거합니다. 실제로 A4 Papersize로 인쇄하려고합니다. 나는 (문서가이 ""가능하다 "doc.MediaBox ="A4 것을 제안하지만, 직접 할당 아니다)을 MediaBox에 대한 설정을 변경하는 코드의 라인을 추가 :

  //set the printed area to A4 
      doc.MediaBox.String = "A4"; 

결과 : 라인 이제는 AdobeReader와 Foxit Reader 모두에서 인쇄하기 전에 두껍게 보였습니다. 이것은 아직 해결책이 아닙니다.

갱신 2는 :

나뿐만 아니라 문서의 사각형을 설정해야합니다

  //set the printed area to A4 
      doc.Rect.String ="A4"; 
      doc.MediaBox.String = "A4"; 

결과 : 라인은 이제 양쪽에 그려집니다 및 인쇄 할 경우에만 볼 수 있습니다. 아직 완벽한 해결책은 아닙니다.

답변

4

글쎄, 웹에서 붙여 넣기 코드를 복사하는 것은 위험합니다!

이 줄은 내용 주위에 프레임을 추가

doc.FrameRect(); 

내가했던 일은 .. 그것을 제거했다 더 이상 선이 표시되지 않습니다.

지금까지 완전히 간과했습니다. 나는 또한 예상대로 작동하지 않았다 다음을 시도하기 전에

:

//set the width to 0, so Rectancles have no width 
    doc.Width = 0; 
    // set the color to white, so borders of Rectangles should not be black 
    doc.Color.String = "255 255 255"; //Edited based on the comments.