web-dev-qa-db-ja.com

pdf.jsの使用方法

pdf.js (Webページにpdfを埋め込むことができるオープンソースツール)の使用を検討しています。使用方法に関するドキュメントはありません。

私がやることは、ヘッダーで参照されるスクリプトを使用してhtmlページを作成し、次に本文に、ファイル名と場所の配列を使用して何らかの種類の関数呼び出しを配置することです。誰でもここで私を助けることができますか?

89
Chris

Googleを試すpdf.js documentation

/* create the PDF document */

var doc = new pdf();
doc.text(20, 20, 'hello, I am PDF.');
doc.text(20, 30, 'i was created in the browser using javascript.');
doc.text(20, 40, 'i can also be created from node.js');

/* Optional - set properties on the document */
doc.setProperties({
  title: 'A sample document created by pdf.js',
  subject: 'PDFs are kinda cool, i guess',        
  author: 'Marak Squires',
  keywords: 'pdf.js, javascript, Marak, Marak Squires',
  creator: 'pdf.js'
});

doc.addPage();
doc.setFontSize(22);
doc.text(20, 20, 'This is a title');
doc.setFontSize(16); 
doc.text(20, 30, 'This is some normal sized text underneath.');

var fileName = "testFile"+new Date().getSeconds()+".pdf";
var pdfAsDataURI = doc.output('datauri', {"fileName":fileName});

注:ここで言及した「pdf.js」プロジェクトは https://github.com/Marak/pdf.js 、この回答が投稿されてから廃止されました。 @Treffynnonの答えは、まだアクティブなMozillaプロジェクト( https://github.com/mozilla/pdf.js )に関するもので、ほとんどの検索者が探しています。

32
James Hill

github readme にドキュメントがあります。 彼らは 次のサンプルコード を引用しています

/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */

//
// See README for overview
//

'use strict';

//
// Fetch the PDF document from the URL using promises
//
PDFJS.getDocument('helloworld.pdf').then(function(pdf) {
  // Using promise to fetch the page
  pdf.getPage(1).then(function(page) {
    var scale = 1.5;
    var viewport = page.getViewport(scale);

    //
    // Prepare canvas using PDF page dimensions
    //
    var canvas = document.getElementById('the-canvas');
    var context = canvas.getContext('2d');
    canvas.height = viewport.height;
    canvas.width = viewport.width;

    //
    // Render PDF page into canvas context
    //
    var renderContext = {
      canvasContext: context,
      viewport: viewport
    };
    page.render(renderContext);
  });
});
49
Treffynnon