Giter Site home page Giter Site logo

Comments (8)

valh1996 avatar valh1996 commented on August 21, 2024

Maybe we can take inspiration from this:

from vue-pdf-embed.

hrynko avatar hrynko commented on August 21, 2024

Hi @valh1996,

Do you think updating PDFJS to 2.13.216 would cover the diacritics insensitive search problem (check this PR)? As for "several words to search", I'm not sure how this is supposed to work.

from vue-pdf-embed.

valh1996 avatar valh1996 commented on August 21, 2024

Hi @valh1996,

Do you think updating PDFJS to 2.13.216 would cover the diacritics insensitive search problem (check this PR)? As for "several words to search", I'm not sure how this is supposed to work.

Hi @hrynko,

Yes thanks, I think it would be perfect for the diacritics. However, how to access the pdfFindController to execute a find with your package?

I think it should be possible to do it via the ref making pdfFindController public:

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

As for the "several words to search", the problem is that if I run the above find with the word "Alice", and then re-run it with the word "Alex", then it will overwrite all previous matches with the word "Alice".

But for that, I'm not sure if you can do something at your level. I could for example simply modify this part of the PDF-JS lib with patch-package for exemple.

Therefore, could you please do an update to make access to the find command? And when a new version with the changes on master will be available (for PDFJS > 2.13.216) ?

EDIT : It looks like we have to go through the eventBus now to highlight the text instead of executeCommand. I don't know if you have an example to highlight in this case?

from vue-pdf-embed.

hrynko avatar hrynko commented on August 21, 2024

I've tried exposing something like the following, with no success so far:

import { EventBus, PDFFindController } from 'pdfjs-dist/legacy/web/pdf_viewer.js'
...
const findController = new PDFFindController({
  eventBus: new EventBus(),
  linkService: this.linkService,
})
findController.setDocument(this.document)

I'm not sure if this will work outside of PDFViewer yet, but if you could continue this experiment, I would appreciate a PR.

from vue-pdf-embed.

valh1996 avatar valh1996 commented on August 21, 2024

I've tried exposing something like the following, with no success so far:

import { EventBus, PDFFindController } from 'pdfjs-dist/legacy/web/pdf_viewer.js'
...
const findController = new PDFFindController({
  eventBus: new EventBus(),
  linkService: this.linkService,
})
findController.setDocument(this.document)

I'm not sure if this will work outside of PDFViewer yet, but if you could continue this experiment, I would appreciate a PR.

Yes that's what I tried too, but as you say it can't work without a viewer I think. I tried to ask the question, but it seems that in this case we have to initialize everything manually...

Wouldn't it be easier to refactor using the simple viewer?

What are the advantages of having created the component outside the viewer?

from vue-pdf-embed.

hrynko avatar hrynko commented on August 21, 2024

What are the advantages of having created the component outside the viewer?

I expected that not using the viewer component could be more flexible and predictable, although it would have some limitations.

Wouldn't it be easier to refactor using the simple viewer?

It might be, but it would require additional refactoring of the component and could lead to unexpected side effects. So if it can be done without using a viewer, I would do it like this. Otherwise, I would postpone it until the next minor release.

from vue-pdf-embed.

valh1996 avatar valh1996 commented on August 21, 2024

I tried an alternative solution to make the highlight when rendering the textlayer since we get the text with the exact position. But we lose all the advantages of the PDFFindController.

So, after trying several things, I can't get a conclusive result if you can help me on this please?

from vue-pdf-embed.

hrynko avatar hrynko commented on August 21, 2024

I'm having issues updating PDFJS, so I'd like to resolve them first. Will have another look at the highlighting issue afterwards.

from vue-pdf-embed.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.