Як користуватися pdf.js [закрито]


92

Я розглядаю можливість використання pdf.js (інструмент з відкритим кодом, що дозволяє вбудовувати PDF у веб-сторінку). Немає жодної документації щодо використання.

Я припускаю, що я роблю HTML-сторінку зі сценарієм, на який посилається в заголовку, а потім у тілі, я роблю якийсь виклик функції з масивом імені та розташування файлу. Хтось може мені допомогти?


1
### Стаття Github Я щойно розпочав статтю Налаштування PDF.js на веб-сайті у вікі проекту на GitHub. ### Запит на заповнення Якщо у вас є досвід, заповніть статтю.
Едуар Лопес

Щось більш високого рівня, як viewerjs.org - це, мабуть, те, що ви хочете.
максимум

Я хочу витягти вбудований xml-файл із PDF, чи можна це зробити?
Ananta Prasad

Відповіді:


33

Спробуйте Google'ing 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 ), який шукатиме більшість користувачів.


Я це бачив, але мене бентежить те, що над var = ім'я файлу. Чи потрібно мені щось із цього doc.addPage () для doc.text і hte потрійні doc.texts над цим?
Кріс

Іншим питанням було б, що я повинен змінити. Я припускаю, що перше "ім'я файлу" останнього рядка я повинен змінити, а також властивості документа. Це все?
Кріс

25
Хіба це не інший pdf.js?
Швейцарія

@Swiss, це з лютого, з оцінками "за" і позначене як відповідь. Я б сказав, що це те, що шукав ОП.
Джеймс Хілл,

14
Так, тому це було так заплутано. Мабуть, посилається на проект mozilla для відображення pdfs як html, але проект, про який йдеться у блозі, на який ви посилаєтесь, є іншим для створення PDF-файлів за допомогою JavaScript.
Швейцарія

50

Існує документація, доступна для їх 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);
  });
});

19
Це погано задокументовано, але ви витягуєте zip pdf.js і залишаєте його структуру каталогів недоторканою. Потім для перегляду PDF-файлу ви просто переходите до файлу viewer.html (через браузер) із доданим файлом до кінця. Наприклад, YourSite.com/directory_that_viewer_._html_is_in/viewer.html?file=somepdfthatyouhave.pdf Розділ pdf просто передається як змінна GET у файл viewer.html.
Крейг Лафферті,

4
З вікі github : "Однак ми запитуємо, чи плануєте ви вбудовувати програму перегляду на свій власний сайт, щоб це не була просто немодифікована версія. Будь ласка, перезапустіть її або покладіть на неї." - враховуючи їхню відверто неіснуючу документацію до API, цей проект переконує вас, що ви перестрибуєте достатньо обручів, щоб підтримувати форму: \
Філзен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.