SlideShare a Scribd company logo
1 of 7
Download to read offline
PDF.JS EXPRESS
Buy vs Build
by Nick Johansson
In this article, we outline some key considerations when deploying a PDF.js viewer into your
application. The three top considerations are:
PDF.JS EXPRESS - Buy vs Build
1
Determining if customizing
your PDF.js viewer is required
Understanding the cost of
developing customizations
1 2 3 The costs of
maintaining your viewer
A need for customization
When Mozilla introduced PDF.js in 2011, it was designed to be Firefox’s PDF
Viewer -- allowing users to render PDFs in their web browsers. Out-of-the-box
PDF.js comes with three layers:
Initially PDF.js was not intended for commercial use but contributions from the
open-source community have extended its functionality. Some simple PDF.js
customizations you can quickly deploy include:
Adding additional features to PDF.js
In a recent survey, 57 unique organizations stated the most common feature
they wanted to add to PDF.js were Annotations (57.1%), Signatures (19%) ,
Parsing & extraction (14.3%), Form filling (11.9%)
Additional display modes
Page transitions
Different page layouts
Document outlines and bookmarks
Document printing
A core layer to interpret the binary format of the PDF
A ready-to-use PDF viewer that includes basic features like thumbnails,
search, rotate, print and more.
A display interface to render a PDF page into a canvas element
2
Of these respondents, 71.4% tried to add some of these PDF.js features
themselves but ultimately found it too difficult or time-intensive. If your
requirements include extending a PDF.js viewer with this type of functionality,
an important first step is to spend time understanding all the costs involved in
adding these features.
The costs of customizing PDF.js
If you are considering adding these features to your PDF.js Viewer, there are
3 key costs to investigate:
Development cost
the time it will take to
learn, code and deploy
features in your viewer
Maintenance cost
the time it will take to
maintain and support
your custom viewer
Opportunity cost
resources spent developing &
maintaining your viewer that
are not spent improving your
core differentiator
Developing with PDF.js Documentation
When customizing PDF.js there is a risk that documentation for the feature you
want to add is non-existent, stale or incomplete. If no documentation exists,
development occurs in uncharted territory, making it difficult to predict amount
of developer resources needed and the turnaround time. A good first step is to
read through closed PDF.js Github issues & open PDF.js Github issues to identify
if the features you are interested in adding have been successfully deployed or if
documentation is incomplete.
Annotations (57.1%)
Signatures (19%)
Parsing & extraction (14.3%)
Form filling (11.9%)
3
Complex PDF Specification
Depending on the functionality you hope to add, you might need to spend time
getting acquainted with the PDF specification (over 1000 pages not including
extensions and supplements). For example, if you plan to add annotations to a
viewer, you will need to learn how to handle basic rendering instructions,
including how to convert PDF annotation coordinates to canvas coordinates.
PDF.js does not have APIs
No API exists for adding features to the PDF.js Viewer UI. If you are planning
on adding features like eSignatures or annotations to your viewer’s UI, you will
need to account for the time it takes to familiarize yourself with the PDF.js
code base.
Support during development
Another important consideration is determining how often you rely on support
during development. With an open-source solution, there is some uncertainty
about response time when opening a new issue. Overall, PDF.js has many active
contributors who typically respond within a day or two, particularly for simple
issues. For more complex issues (e.g., adding annotation, signature, form filling,
etc.) responses can take longer. And if your request falls outside the scope of the
project, you are largely on your own.
Unsupported Features Reason
Form filling
Direct annotation (Add, edit, and remove)
Signatures
Toggleable visual layers (via OCGs)
Pinch zoom for mobile
Night mode
Open Issue for 3 years
Out of scope
Open for 7 years
Open 8 years
Open 6 years
Open 7 years
4
Opportunity cost is the loss of potential gain from other alternatives
when one alternative is chosen.
PDF.js has over 6,000 forks and commits typically occur several times a week.
Depending on the extent of your customization, these changes might have an
impact on your project. Some of the customers we’ve worked with have
encountered situations where their customizations break after PDF.js is updated.
The best way to deal with this is to assign a developer to periodically monitor
and test your PDF.js viewer customizations.
Cost of maintaining custom PDF.js project
Can someone please fix this issue in pdf js. This issue has ruined our
experience in an application that is in production. If we don't get a fix
we will have to abandon pdf.js and move to a different product. I don't
want to do that as I find pdf.js really simple in its UI and dependencies.
When assessing whether to undertake a custom pdf.js project, the first thing to
look at is the overall cost. Once you’ve defined how much time will need to be
invested by developer resources, this assessment ends up being a straightforward
calculation:
If the cost of using internal resources is lower than a commercial solution, then it
would seem obvious to develop in-house. But there is one more cost to consider -
the cost of using developer resources to work on something that is not your core
differentiator - a cost known as opportunity cost.
“
“
”
”
Opportunity cost of PDF.js
Custom PDF.js cost assessment:
$45 per hour for developer salary
80 to 160 hours of development time
20 to 40 hours for yearly maintenance
$3,600 to $7,200 to setup viewer
$900 to $1,800 maintenance cost per year
5
Next steps
Opportunity cost is most commonly used when deciding how best to allocate
resources to maximize gains. A simple example would be deciding how to
allocate developer resources in your product roadmaps:
Your approach to opportunity cost will likely be driven by your business strategy
& philosophy. Some strategies focus resources on their key differentiators and
outline the types of work they will not do. Other strategies emphasize
developing software internally to avoid reliance on third-party software
providers. Dropbox is an example of the latter strategy - they developed their
own custom PDF.js viewer but eventually abandoned the project for another
open-source solution:
Opportunity cost of long-term maintenance is another important consideration.
If an unexpected bug is discovered or a major update occurs, a developer will
need to be pulled off their current project to fix the issue. These unplanned
delays can have a direct impact on product release schedules. It can also
demotivate and defocus developers who need to jump from their current priority
back to supporting the PDF.js project.
If you require a simple viewer without features like annotations, signatures or
form filling, a PDF.js viewer will be a good fit out-of-the-box. If you plan on
Integrating PDF.js with Dropbox was quite difficult, if not downright
hacky. PDF.js was designed to be Firefox’s integrated PDF viewer,
rather than a component of another product." ~Senior Developer,
Dropbox
“
”
develop feature 1 to
increase new users by 2%
Option #1:
develop feature 2 to
increase new users by 1%
Option #2:
6
adding custom features to your viewer, however, it's important to understand all
the different costs you will encounter. Having an understanding of these costs
will help you determine if it makes sense to build your viewer internally or
whether to get started with a commercial pdf.js viewer like PDF.js Express.

More Related Content

Similar to Pdf js-express-default-doc-v2

Tech Stack & Web App Development For Startups
Tech Stack & Web App Development For StartupsTech Stack & Web App Development For Startups
Tech Stack & Web App Development For StartupsZimbleCode
 
web development ppt by prakash bedage
web development ppt by prakash bedageweb development ppt by prakash bedage
web development ppt by prakash bedagePrakashBedage
 
web development project prakash.pptx
web development project prakash.pptxweb development project prakash.pptx
web development project prakash.pptxPrakashBedage
 
Flutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfFlutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfDianApps Technologies
 
.NET for Enterprise Apps - Pros and Cons.pdf
.NET for Enterprise Apps - Pros and Cons.pdf.NET for Enterprise Apps - Pros and Cons.pdf
.NET for Enterprise Apps - Pros and Cons.pdfJamesEddie2
 
COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON Jitender Suryavansh
 
Upgrad industry project part 2
Upgrad industry project part 2Upgrad industry project part 2
Upgrad industry project part 2Dattatrey Kulkarni
 
Everything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfEverything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfNoman Shaikh
 
Software Development Frameworks Overview, Benefits, Key Considerations.pdf
Software Development Frameworks Overview, Benefits, Key Considerations.pdfSoftware Development Frameworks Overview, Benefits, Key Considerations.pdf
Software Development Frameworks Overview, Benefits, Key Considerations.pdfPolyxer Systems
 
How Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docxHow Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docxArtistixe IT Solution LLP
 
Open Source Vs Proprietary Software
Open Source Vs  Proprietary SoftwareOpen Source Vs  Proprietary Software
Open Source Vs Proprietary SoftwareAnn Yoders
 
Does Flutter Offer Distinctive Cost Advantages
Does Flutter Offer Distinctive Cost AdvantagesDoes Flutter Offer Distinctive Cost Advantages
Does Flutter Offer Distinctive Cost AdvantagesMindfire LLC
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dmActian Corporation
 
How Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdfHow Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdfArtistixe IT Solution LLP
 
Principles in Refactoring
Principles in RefactoringPrinciples in Refactoring
Principles in RefactoringChamnap Chhorn
 
Navigating the Hype and Realities of Web Development Frameworks
Navigating the Hype and Realities of Web Development FrameworksNavigating the Hype and Realities of Web Development Frameworks
Navigating the Hype and Realities of Web Development FrameworksSeasiaInfotech2
 
Nwtl2017 extending and customizing ibm connections cloud
Nwtl2017 extending and customizing ibm connections cloudNwtl2017 extending and customizing ibm connections cloud
Nwtl2017 extending and customizing ibm connections cloudAndré Luís Cardoso
 

Similar to Pdf js-express-default-doc-v2 (20)

Tech Stack & Web App Development For Startups
Tech Stack & Web App Development For StartupsTech Stack & Web App Development For Startups
Tech Stack & Web App Development For Startups
 
web development ppt by prakash bedage
web development ppt by prakash bedageweb development ppt by prakash bedage
web development ppt by prakash bedage
 
web development project prakash.pptx
web development project prakash.pptxweb development project prakash.pptx
web development project prakash.pptx
 
Flutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfFlutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdf
 
.NET for Enterprise Apps - Pros and Cons.pdf
.NET for Enterprise Apps - Pros and Cons.pdf.NET for Enterprise Apps - Pros and Cons.pdf
.NET for Enterprise Apps - Pros and Cons.pdf
 
COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON COMPUTER APPLICATION PROJECT ON
COMPUTER APPLICATION PROJECT ON
 
Upgrad industry project part 2
Upgrad industry project part 2Upgrad industry project part 2
Upgrad industry project part 2
 
Everything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfEverything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdf
 
Software Development Frameworks Overview, Benefits, Key Considerations.pdf
Software Development Frameworks Overview, Benefits, Key Considerations.pdfSoftware Development Frameworks Overview, Benefits, Key Considerations.pdf
Software Development Frameworks Overview, Benefits, Key Considerations.pdf
 
How Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docxHow Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docx
 
Ch17
Ch17Ch17
Ch17
 
Open Source Vs Proprietary Software
Open Source Vs  Proprietary SoftwareOpen Source Vs  Proprietary Software
Open Source Vs Proprietary Software
 
Does Flutter Offer Distinctive Cost Advantages
Does Flutter Offer Distinctive Cost AdvantagesDoes Flutter Offer Distinctive Cost Advantages
Does Flutter Offer Distinctive Cost Advantages
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
How Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdfHow Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdf
 
Principles in Refactoring
Principles in RefactoringPrinciples in Refactoring
Principles in Refactoring
 
Navigating the Hype and Realities of Web Development Frameworks
Navigating the Hype and Realities of Web Development FrameworksNavigating the Hype and Realities of Web Development Frameworks
Navigating the Hype and Realities of Web Development Frameworks
 
UXD's process
UXD's processUXD's process
UXD's process
 
Nwtl2017 extending and customizing ibm connections cloud
Nwtl2017 extending and customizing ibm connections cloudNwtl2017 extending and customizing ibm connections cloud
Nwtl2017 extending and customizing ibm connections cloud
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 

Recently uploaded

Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasDigicorns Technologies
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdfMatthew Sinclair
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdfMatthew Sinclair
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsMonica Sydney
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制pxcywzqs
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样ayvbos
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdfMatthew Sinclair
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查ydyuyu
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样ayvbos
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsMonica Sydney
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsMonica Sydney
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftAanSulistiyo
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...kajalverma014
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxgalaxypingy
 

Recently uploaded (20)

Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 

Pdf js-express-default-doc-v2

  • 1. PDF.JS EXPRESS Buy vs Build by Nick Johansson
  • 2. In this article, we outline some key considerations when deploying a PDF.js viewer into your application. The three top considerations are: PDF.JS EXPRESS - Buy vs Build 1 Determining if customizing your PDF.js viewer is required Understanding the cost of developing customizations 1 2 3 The costs of maintaining your viewer A need for customization When Mozilla introduced PDF.js in 2011, it was designed to be Firefox’s PDF Viewer -- allowing users to render PDFs in their web browsers. Out-of-the-box PDF.js comes with three layers: Initially PDF.js was not intended for commercial use but contributions from the open-source community have extended its functionality. Some simple PDF.js customizations you can quickly deploy include: Adding additional features to PDF.js In a recent survey, 57 unique organizations stated the most common feature they wanted to add to PDF.js were Annotations (57.1%), Signatures (19%) , Parsing & extraction (14.3%), Form filling (11.9%) Additional display modes Page transitions Different page layouts Document outlines and bookmarks Document printing A core layer to interpret the binary format of the PDF A ready-to-use PDF viewer that includes basic features like thumbnails, search, rotate, print and more. A display interface to render a PDF page into a canvas element
  • 3. 2 Of these respondents, 71.4% tried to add some of these PDF.js features themselves but ultimately found it too difficult or time-intensive. If your requirements include extending a PDF.js viewer with this type of functionality, an important first step is to spend time understanding all the costs involved in adding these features. The costs of customizing PDF.js If you are considering adding these features to your PDF.js Viewer, there are 3 key costs to investigate: Development cost the time it will take to learn, code and deploy features in your viewer Maintenance cost the time it will take to maintain and support your custom viewer Opportunity cost resources spent developing & maintaining your viewer that are not spent improving your core differentiator Developing with PDF.js Documentation When customizing PDF.js there is a risk that documentation for the feature you want to add is non-existent, stale or incomplete. If no documentation exists, development occurs in uncharted territory, making it difficult to predict amount of developer resources needed and the turnaround time. A good first step is to read through closed PDF.js Github issues & open PDF.js Github issues to identify if the features you are interested in adding have been successfully deployed or if documentation is incomplete. Annotations (57.1%) Signatures (19%) Parsing & extraction (14.3%) Form filling (11.9%)
  • 4. 3 Complex PDF Specification Depending on the functionality you hope to add, you might need to spend time getting acquainted with the PDF specification (over 1000 pages not including extensions and supplements). For example, if you plan to add annotations to a viewer, you will need to learn how to handle basic rendering instructions, including how to convert PDF annotation coordinates to canvas coordinates. PDF.js does not have APIs No API exists for adding features to the PDF.js Viewer UI. If you are planning on adding features like eSignatures or annotations to your viewer’s UI, you will need to account for the time it takes to familiarize yourself with the PDF.js code base. Support during development Another important consideration is determining how often you rely on support during development. With an open-source solution, there is some uncertainty about response time when opening a new issue. Overall, PDF.js has many active contributors who typically respond within a day or two, particularly for simple issues. For more complex issues (e.g., adding annotation, signature, form filling, etc.) responses can take longer. And if your request falls outside the scope of the project, you are largely on your own. Unsupported Features Reason Form filling Direct annotation (Add, edit, and remove) Signatures Toggleable visual layers (via OCGs) Pinch zoom for mobile Night mode Open Issue for 3 years Out of scope Open for 7 years Open 8 years Open 6 years Open 7 years
  • 5. 4 Opportunity cost is the loss of potential gain from other alternatives when one alternative is chosen. PDF.js has over 6,000 forks and commits typically occur several times a week. Depending on the extent of your customization, these changes might have an impact on your project. Some of the customers we’ve worked with have encountered situations where their customizations break after PDF.js is updated. The best way to deal with this is to assign a developer to periodically monitor and test your PDF.js viewer customizations. Cost of maintaining custom PDF.js project Can someone please fix this issue in pdf js. This issue has ruined our experience in an application that is in production. If we don't get a fix we will have to abandon pdf.js and move to a different product. I don't want to do that as I find pdf.js really simple in its UI and dependencies. When assessing whether to undertake a custom pdf.js project, the first thing to look at is the overall cost. Once you’ve defined how much time will need to be invested by developer resources, this assessment ends up being a straightforward calculation: If the cost of using internal resources is lower than a commercial solution, then it would seem obvious to develop in-house. But there is one more cost to consider - the cost of using developer resources to work on something that is not your core differentiator - a cost known as opportunity cost. “ “ ” ” Opportunity cost of PDF.js Custom PDF.js cost assessment: $45 per hour for developer salary 80 to 160 hours of development time 20 to 40 hours for yearly maintenance $3,600 to $7,200 to setup viewer $900 to $1,800 maintenance cost per year
  • 6. 5 Next steps Opportunity cost is most commonly used when deciding how best to allocate resources to maximize gains. A simple example would be deciding how to allocate developer resources in your product roadmaps: Your approach to opportunity cost will likely be driven by your business strategy & philosophy. Some strategies focus resources on their key differentiators and outline the types of work they will not do. Other strategies emphasize developing software internally to avoid reliance on third-party software providers. Dropbox is an example of the latter strategy - they developed their own custom PDF.js viewer but eventually abandoned the project for another open-source solution: Opportunity cost of long-term maintenance is another important consideration. If an unexpected bug is discovered or a major update occurs, a developer will need to be pulled off their current project to fix the issue. These unplanned delays can have a direct impact on product release schedules. It can also demotivate and defocus developers who need to jump from their current priority back to supporting the PDF.js project. If you require a simple viewer without features like annotations, signatures or form filling, a PDF.js viewer will be a good fit out-of-the-box. If you plan on Integrating PDF.js with Dropbox was quite difficult, if not downright hacky. PDF.js was designed to be Firefox’s integrated PDF viewer, rather than a component of another product." ~Senior Developer, Dropbox “ ” develop feature 1 to increase new users by 2% Option #1: develop feature 2 to increase new users by 1% Option #2:
  • 7. 6 adding custom features to your viewer, however, it's important to understand all the different costs you will encounter. Having an understanding of these costs will help you determine if it makes sense to build your viewer internally or whether to get started with a commercial pdf.js viewer like PDF.js Express.