当前位置: 首页 > 面试题库 >

如何用pdf.js搜索?

戚高洁
2023-03-14
问题内容

我在Ionic
App中显示了带有pdf.js的pdf文件。我不使用viewer.js和viewer.html,因为我需要完全不同的布局。现在,我有一个自定义搜索栏,我想突出显示pdf文件中的术语。我可以调用一个函数来执行此操作吗?

我正在像这样渲染文件:

$scope.renderPages = function(pdfDoc) {
    $scope.pdfFile = pdfDoc;
    for(var num = 1; num <= pdfDoc.numPages; num++){
        pdfDoc.getPage(num).then($scope.renderPage);
    }
}

$scope.renderPage = function(page) {
    var viewport = page.getViewport(1);
    scale = document.getElementById('viewer').clientWidth / viewport.width;
    viewport = page.getViewport(scale);

    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var renderContext = {
        canvasContext: ctx,
        viewport: viewport
    };

    canvas.height = viewport.height;
    canvas.width = viewport.width;

    var canvasContainer = document.getElementById('viewer');
    canvasContainer.appendChild(canvas);

    page.render(renderContext);
}

HTML:

<div id="viewerContainer" style="padding-bottom: 100%; padding-top: 20px;">
    <div id="viewer" class="viewer-styles">
    </div>
</div>

问题答案:

现在我找到了解决方案!

var container = document.getElementById('viewerContainer');
var viewer = document.getElementById('viewer');


var pdfViewer = new PDFViewer({ 
   container: container,
   viewer: viewer
});

$scope.pdfFindController = new PDFFindController({
   pdfViewer: pdfViewer
);

pdfViewer.setFindController($scope.pdfFindController);

container.addEventListener('pagesinit', function () {
    pdfViewer.currentScaleValue = 'page-width';                            
});

PDFJS.getDocument(MY_PATH_TO_THE_PDF).then(function (pdfDocument) {
    pdfViewer.setDocument(pdfDocument);
});

搜索字词:

$scope.pdfFindController.executeCommand('find', {
    caseSensitive: false, 
    findPrevious: undefined,
    highlightAll: true, 
    phraseSearch: true, 
    query: "myQuery"
});

而且我必须导入viewer.js。

我在问题中发布的代码不再需要。PDFViewer呈现pdf。



 类似资料:
  • pdf.js 是一个技术原型主要用于在 HTML5 平台上展示 PDF 文档,无需任何本地技术支持。 在线演示:http://mozilla.github.com/pdf.js/web/viewer.html

  • 在项目中的static里放了pdf.js,预览后台把DOC、DOCX转为PDF格式的文档可以搜索文字,但是直接预览PDF格式的文档就不能使用搜索了,是什么原因呢?

  • 问题内容: 我已经尝试在项目中添加pdf.js查看器文件,并且该文件可以在Chrome,Mozilla,Safari等浏览器中使用,但无法在node-webkit和PyQt webkit中加载某些页面。 我正在尝试使用iframe加载文件,如下所示: 问题答案: 我在Qt论坛上找到了这个话题,thebeast44发布了一段Qt代码来回答您的问题。我对python的翻译如下。 您还需要从作者的原始代

  • 问题内容: 我想知道是否可以使用HtmlUnit搜索YouTube 。我开始写代码,这里是: 现在,我不知道如何在搜索字段中键入一些文本并按搜索按钮。 我看到了有关HtmlUnit的教程,但我遇到了问题,因为它们使用名为的方法:但是YouTube上的搜索按钮没有名称,只有ID。有人可以帮我吗? 编辑:我在代码上方编辑了代码,现在我从第一页获取youtube链接。但在此之前,我需要按上传日期排序,然

  • 问题内容: 我想从源HTML中删除这些标签及其内容。 问题答案: 当搜索你基本上使用的地方被定义这个API。但是,注释并不是技术上的元素,因此您可能会感到困惑,但它们仍然是由节点名标识的节点。 让我们看看这可能如何工作:

  • 问题内容: 我有一个关于在JSON中搜索特定信息的问题。例如,我有这个JSON文件: 我的问题是,如何通过名称查找特定的人并使用jQuery显示该人的年龄?例如,我想在JSON中搜索一个叫Peter的人,当我找到一个匹配项时,我想显示有关该匹配项的其他信息(在这种情况下,关于名为Peter的人),例如人的年龄。 问题答案: 根据此答案,您可以使用类似: