Overview

PDFiumDotNET is .NET library intended for displaying of PDF documents, or obtain some information from PDF documents. PDFiumDotNET uses Google's open source PDFium library.

Features

  • Supported frameworks
    • .NET 8
    • .NET 7
    • .NET 6
    • .NET 5
    • .NET Core 3.1
    • .NET Framework 4.8
  • support for Wpf applications (without air space problem)
  • touch support
  • modular structure
  • written entirely in C#
  • support for search in document
  • show of document annotations

Modules

The project consists of several modules as shown on the image.

The module can be perceived as a single assembly or set of assemblies.

All classes in PDFiumDotNET.Wrapper and PDFiumDotNET.Components are essentially private or internal. For the usage are exposed only interfaces defined in PDFiumDotNET.Components.Contracts. Primary instance creation is possible by using of PDFiumDotNET.Components.Factory or PDFiumDotNET.Components.Extensions.

Wrapper

Wrapper implements interoperability between unmanaged and managed code.

Wrapper module consists from only one assembly:

  • PDFiumDotNET.Wrapper

This assembly contains only one class PDFiumBridge that encapsulates all supported functions from PDFium library. Loads appropriate version of PDFium dll (x86 / x64) and loads all actually used functions. The class is implemented as internal to avoid direct usage. The class is used exclusively from Components module.

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.

Components

Components implements functionality which gets necessary data from PDF document and provides these in particular form.

Components module consists from following assemblies:

  • PDFiumDotNET.Components
  • PDFiumDotNET.Components.Contracts
  • PDFiumDotNET.Components.Factory
  • PDFiumDotNET.Components.Extensions

PDFiumDotNET.Components

This assembly contains entirely implementation of PDF document access functionality. Functionality is split to many classes, that are not accessible directly by user of PDFiumDotNET library.

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.

PDFiumDotNET.Components.Contracts

This assembly contains over 15 interfaces. User of PDFiumDotNET library is able to use only these interfaces.

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.

PDFiumDotNET.Components.Factory

This assembly contains only one class - PDFFactory and this class implements only one property that returns instance of class implementing IPDFComponent. It is at this moment only one possiblity to get component from PDFiumDotNET.Components.

There is another possibility:

// Other possibility to get the instance from already loaded assembly.
// The condition 'already loaded' should be fullfilled by another part of application.
// For example MEF.
var specificType = AppDomain.CurrentDomain.GetAssemblies()
    .SelectMany(x => x.GetTypes())
    .Where(x => typeof(IPDFComponent).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
    .FirstOrDefault();
if (specificType != null)
{
    return Activator.CreateInstance(specificType) as IPDFComponent;
}
// PDFiumDotNET.Components not loaded?
return null;

Further possibilities like MEF export, will be implemented on request.

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.

PDFiumDotNET.Components.Extensions

This assembly contains extension methods for Microsoft.Extensions.DependencyInjection.IServiceCollection.

There are three extension methods:

  • ConfigurePDFiumDotNETAsSingleton
  • ConfigurePDFiumDotNETAsScoped
  • ConfigurePDFiumDotNETAsTransient

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.

Controls

Controls module contains only implementation for WPF.

PDFiumDotNET.WpfControls

Contains two controls:

  • PDFView shows PDF document
  • PDFThumbnailView shows thumbnail preview
These controls become the components by dependency properties PDFPageComponent.

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.

Applications

PDF View WPF

The application demonstrates WPF application using PDFiumDotNET library.

PDF document bookmarks.

Thumbnails of PDF document.

Search for word 'derivation'.

PDF document information.

PDF document annotations on/off.

PDF document page's layout.

PDF Merge

Lorem ipsum dolor sit amet, ipsum lorem praesent sed ut, labore partiendo concludaturque mea no, per euripidis liberavisse an. Affert doctus cu qui, vel autem equidem ne. Movet noluisse interesset ne eam, eu vel accommodare consectetuer. Sit in ignota labitur democritum, suas imperdiet adolescens ut vim. Eu solet recteque pri. Mea ne dolor consul, facilisis accusamus efficiantur an qui. Ut blandit pericula vel, esse mazim iudico sit at. Legere labitur ad vel, ne sea velit pertinacia, eu iusto fastidii usu. Ius saepe labores disputando ei, no vel quod oporteat, in etiam iusto labitur est. Vis populo senserit at, ne nec clita graece nusquam. Euripidis interesset pri no, animal platonem pro an, vis an eius libris animal. In suas tation postea eum, decore petentium salutandi id duo. Has ea labore euripidis, iuvaret minimum et cum. Amet elitr dolorum vix ut. Legimus interesset ne eos. Libris possim iisque cu mei, qui id iusto omnes debitis. Vix ei everti regione aliquam, modo partiendo duo te. Alienum sententiae vix et. Stet invenire referrentur mei an, brute idque ea eum, hinc expetendis cu his. Et facilisis principes sed, hinc falli sententiae ex vix. Graece forensibus cu sed, an vero probatus vim. Id usu stet deterruisset. Noster deterruisset mei ut. Pro eius repudiandae concludaturque ea. Ea stet insolens erroribus has. Vix at legere aeterno explicari. Dolorum dolorem persecuti no eos, sed porro sanctus qualisque ea. Case inani recteque eos ne, usu quod iusto ad, at copiosae molestiae quo. Sea ad denique mandamus, probo aeterno atomorum in vix. Ea ignota molestiae referrentur quo. Qui ei maiorum torquatos adipiscing, ex wisi impetus epicurei eum, vitae appareat cu cum. Quem patrioque temporibus ea eum. Id per vocibus platonem efficiantur, iudico forensibus sed no, his utinam volutpat id. Sanctus adipisci scribentur eum ne, veritus adversarium cum no, at utamur adipisci splendide sed. Ex saperet maiorum efficiantur nec, in verear albucius dissentias qui. Suas putant vim ad. Sea principes similique voluptaria eu, nam sapientem conceptam cotidieque at. Vel stet inimicus et, sale verterem inciderint ea eos, ex duo dicam insolens omittantur. Id eius consequat qui, ea accusam contentiones nec. Has soleat dictas te, cum an congue facilisis omittantur, nam semper molestiae quaerendum eu. Vim id tale perpetua, vel ei modo integre. Pro te dissentiunt theophrastus, cu mel alii congue, sed ea utamur meliore facilis. Ad inermis probatus cum. Est nostrud appareat lobortis id. Qui atqui inani vivendo eu. Nec adhuc doming et. Veniam animal vituperata te duo. Has ne timeam delicata. Mel tacimates adolescens an.