2017-09-21 1 views
0

저는 PDF 보고서를 만드는 C# WPF 응용 프로그램을 만들고 있습니다. 파일을 만든 후에는 인쇄해야합니다. 작성된 파일은 A7 형식이며 같은 디렉토리에 저장됩니다. C# WPF 인쇄 pdf 한 장에 여러 페이지에

은 내가 파일 당 파일을 인쇄 할 수 있어요

:-) 하나의 용지에 4 개 파일을 인쇄 할 숲을 도움이됩니다. 한 장에 4 개의 파일을 쌓으려면 프린터 기본 설정을 설정하려고했지만 시트 당 하나의 파일 만 인쇄합니다.

인터넷을 통해 솔루션을 검색했지만 해결 방법을 찾을 수 없습니다.

아이디어를 얻으려면 어떻게해야합니까? 그들을 연결하고 프린터로 전송 - 당신의 조언

+0

은 전략의 문제입니다 코딩 문제보다는 –

+0

더 많은 현재의 코드를 제공하십시오. 지금은 한 장에 하나의 파일을 인쇄하기 위해 Free.spire.pdf를 사용합니다. – JulBat

+0

정확하게 이해한다면 - 단일 페이지 파일을 만들고 4 파일을 선택하고 한 장에 인쇄하고 싶습니다. 그렇게하기 위해서는 선택한 각 파일을 응용 프로그램으로 읽어 들이고 네 개의 파일이 원하는대로 배열 된 새 임시 문서를 만들어 인쇄해야합니다. 올바른 크기의 4 가지 이미지와 [pdf로 이미지로 변환] (https://code.google.com/archive/p/lib-pdf/) 문서 템플릿을 만들어 인쇄 할 수 있습니다. (필자는 라이브러리를 사용하지 않았다. 단지 링크를 제안으로 제공했다.) – PaulF

답변

0

당신이 render the pdf files into images 수에 대한

감사합니다.

이 아니면 (I 사용한 샘플 Apitron의 PDF 키트로) 다음 코드 샘플을 사용할 수 있습니다 :

using System; 
using System.Collections.Generic; 
using System.IO; 

using Apitron.PDF.Kit.FixedLayout; 
using Apitron.PDF.Kit.FixedLayout.Content; 

public void CombinePDFDocuments() 
    { 
     using (Stream stream1 = new FileStream("input1.pdf", FileMode.Open, FileAccess.Read)) 
     using (Stream stream2 = new FileStream("input2.pdf", FileMode.Open, FileAccess.Read)) 
     using (Stream stream3 = new FileStream("input3.pdf", FileMode.Open, FileAccess.Read)) 
     using (Stream stream4 = new FileStream("input4.pdf", FileMode.Open, FileAccess.Read)) 
     { 
      using (FixedDocument doc1 = new FixedDocument(stream1)) 
      using (FixedDocument doc2 = new FixedDocument(stream2)) 
      using (FixedDocument doc3 = new FixedDocument(stream3)) 
      using (FixedDocument doc4 = new FixedDocument(stream4)) 
      { 
       using (FixedDocument result = new FixedDocument()) 
       { 
        Page page = new Page(Boundaries.A4); 
        result.Pages.Add(page); 

        // Left bottom 
        page.Content.AppendContent(doc1.Pages[0].Content); 

        // Left Top 
        page.Content.SetTranslate(0, Boundaries.A7.Height); 
        page.Content.AppendContent(doc2.Pages[0].Content); 

        // Right Top 
        page.Content.SetTranslate(Boundaries.A7.Width, 0); 
        page.Content.AppendContent(doc3.Pages[0].Content); 

        // Right Bottom 
        page.Content.SetTranslate(0, -Boundaries.A7.Height); 
        page.Content.AppendContent(doc4.Pages[0].Content); 

        using (Stream outStream = new FileStream("out.pdf", FileMode.Create, FileAccess.ReadWrite)) 
        { 
         result.Save(outStream); 
        }       
       } 
      } 
     } 
    }