2014-11-04 3 views
5

거기에 pdfmake을 사용하여 다른 페이지 방향으로 여러 페이지 PDF를 만드는 방법은 무엇입니까? 세로 방향 가로 방향 pdfmake : 다른 방향으로 여러 페이지 PDF를 만드는 방법은 무엇입니까?

  • 페이지 3 세로 방향
  • 페이지 2

    • 페이지 1 :

      내가 이런 일을하려면, 간단하게하기

    다른 방법으로 여러 번 시도했지만 모든 페이지에 항상 영향을 미칩니다.


    영어 내 terible 죄송

    나는 단지 그들이 페이지 방향 설정을 위해 다음과 같은 코드를 제공 pdfmake에 대한 documentation를 통과했다
  • 답변

    0

    :

    var docDefinition = { 
        // a string or { width: number, height: number } 
        pageSize: 'A5', 
    // by default we use portrait, you can change it to landscape if you wish 
    pageOrientation: 'landscape', 
        ... 
    
    //Other content 
    }; 
    

    지금이 전체 프로젝트의 본질이다 고유 한 문서 정의 개체.

    (...) 
        'You can also fit the image inside a rectangle', 
        { 
        image: 'fonts/sampleImage.jpg', 
        fit: [100, 100], 
        pageBreak: 'after' 
        }, 
        (...) 
    

    을, 나는 해결 방법이 거기에 생각 하는가 말했다 : 당신과 같이 PageBreaks를 추가 할 수 있지만, 심지어 언급 github page과 문제에, 나는 특정 페이지에 대한 설정 페이지 방향의 조항이 표시되지 않습니다 문제. 이는 pdf 문서가이 프로젝트에 생성하는 방법이다 다음을 참조하십시오 pipefs 모듈 당연히

    var fs = require('fs'); 
    var pdfDoc = printer.createPdfKitDocument(docDefinition); 
    pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf')); 
    pdfDoc.end(); 
    

    노드의 구현입니다. 우리는 지금 바로 createWriteStream() 방법에 append 플래그를 사용할 수

    var pdf1 = printer.createPdfKitDocument(docdef1); //landscape mode page 1 
    var pdf2 = printer.createPdfKitDocument(docdef2); //portrait mode page 2 
    var pdf3 = printer.createPdfKitDocument(docdef3); //landscape mode for the rest of the pages. 
    

    : 우리가 가지고 있기 때문에 우리가 여러 문서 정의과 같이있는 경우, 페이지 방향은 문서 정의 개체에 연결합니다. 유용 documentation. (테스트되지 않은 코드)

    pdf1.pipe(fs.createWriteStream('foo.pdf')); 
    pdf2.pipe(fs.createWriteStream('foo.pdf',{flags:'a'})); 
    pdf3.pipe(fs.createWriteStream('foo.pdf',{flags:'a'})); 
    pdf1.end(); 
    pdf2.end(); 
    pdf3.end(); 
    

    필자는 문서 정의 개체를 결합하는 방법을 제안했습니다. 그것이 당신을 올바른 방향으로 시작하게되기를 바랍니다.

    +0

    귀하의 회신에 감사드립니다. 귀하의 제안을 바로 시도하고 결과를 알려 드리겠습니다. 난 그냥 만들고 싶어, 당신의 방법은 3 PDF 또는 단지 1 PDF를 만들 수 있습니까? btw, 내 목표는 다른 방향으로 하나의 PDF 파일을 만드는 것입니다 –

    +0

    나는 당신의 요점을보고, 당신은 3 pdf 파일을 생성 PDF를 결합하려고했습니다. 나는 그것을 시도했지만 첫 번째 페이지 만 표시합니다. :( ' –

    +0

    BTW, 여기 내 [코드] (https://gist.github.com/ismile/3db044e5d557a8912b22) –

    7

    이것은 이전 질문이지만 답변은 다른 사람들에게 도움이 될 수 있습니다.

    페이지 방향을 변경하려면 페이지의 첫 번째 노드에서 새 값을 지정하기 만하면됩니다.

    아래에는이 코드를 첨부하기 위해 pdfmake playground에 직접 붙일 수있는 간단한 코드가 첨부되어 있습니다.

    행운을 빈다.

    var dd = { 
        content: [ 
         { 
          text: 'Unordered list', 
          style: 'header' 
         }, 
         { 
          ol: [ 
           'item 1', 
           'item 2', 
           'item 3', 
          ] 
         }, 
         { 
          text: '\n\nUnordered list with longer lines', 
          style: 'header', 
          pageBreak: 'before', 
          pageOrientation: 'landscape' 
         }, 
         { 
          ol: [ 
           'item 1', 
           'Lorem ipsum dolor sit amet, consectetur ..', 
           'item 3', 
          ] 
         }, 
         { 
          text: '\n\nNested lists', 
          style: 'header', 
          pageBreak: 'before', 
          pageOrientation: 'portrait' 
         }, 
         { 
          ol: [ 
           'item 1', 
           'Lorem ipsum dolor sit amet, consectetur ..', 
           { 
            ol: [ 
             'subitem 1', 
             'subitem 2', 
             'subitem 3 - Lorem ipsum dolor sit ame...', 
             'subitem 4', 
             'subitem 5', 
            ] 
           }, 
           'item 3\nsecond line of item3', 
          ] 
         }, 
        ], 
        styles: { 
         header: { 
          bold: true, 
          fontSize: 15 
         } 
        }, 
        defaultStyle: { 
         fontSize: 12, 
        } 
    } 
    
    +0

    내가이 방법을 사용할 수 있습니다 방법에 모든 객체를 추가 PDF로 dinamically A에 대한? – jedi

    +1

    에서 custruct 경우 'push' 함수로'content' 배열을 만들고, 페이지 브레이크 옵션으로 for주기의 끝에있는 모든 페이지를 나눕니다. var foo [0] = {name : "hello"}; foo [1] = {name : (var i = 0; i jedi