Foxit.SDK.Dotnet.Android
12.0.0
Requires NuGet 2.5 or higher.
dotnet add package Foxit.SDK.Dotnet.Android --version 12.0.0
NuGet\Install-Package Foxit.SDK.Dotnet.Android -Version 12.0.0
<PackageReference Include="Foxit.SDK.Dotnet.Android" Version="12.0.0" />
<PackageVersion Include="Foxit.SDK.Dotnet.Android" Version="12.0.0" />
<PackageReference Include="Foxit.SDK.Dotnet.Android" />
paket add Foxit.SDK.Dotnet.Android --version 12.0.0
#r "nuget: Foxit.SDK.Dotnet.Android, 12.0.0"
#:package Foxit.SDK.Dotnet.Android@12.0.0
#addin nuget:?package=Foxit.SDK.Dotnet.Android&version=12.0.0
#tool nuget:?package=Foxit.SDK.Dotnet.Android&version=12.0.0
Foxit PDF SDK managed and native libraries for Android.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0-android30.0 is compatible. net7.0-android was computed. net8.0-android was computed. net9.0-android was computed. net10.0-android was computed. |
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Foxit.SDK.Dotnet.Android:
| Package | Downloads |
|---|---|
|
Foxit.SDK.Dotnet
Foxit PDF SDK for Windows .NET features a powerful, easy-to-use Core API in C# for rendering, viewing, annotation, signing, protecting and managing forms in PDFs. Alongside an extensive industry-leading PDF library for building and automating workflow, Foxit PDF SDK comes with in-depth demos, sample code and a quick start PDF viewer. Start building your own PDF editor tool today. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Foxit PDF SDK v12.0 Release Date: 30 September 2026
==================================================================## Breaking ChangesThe following changes require code updates when upgrading from v11.1. Existing projects that use these APIs will not compile or may behave differently without modification.### `SearchCallback::NeedToCancel` — New pure virtual methodA new pure virtual method was added to the full-text search callback. Missing implementations fail to compile:```cpp
// Earlier versions: method did not exist
// 12.0 and later
virtual bool NeedToCancel() = 0;
```**Action required:** Implement the method on every `SearchCallback` subclass. If cancellation is not needed, return `false`.### `WatermarkSettings` constructor and `Set` — Parameter expansionTwo parameters were appended to the constructor and `Set`:```cpp
// Earlier versions
WatermarkSettings(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity);
settings.Set(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity);// 12.0 and later
WatermarkSettings(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity,
is_offset_centered, relative_scale_to_page);
settings.Set(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity,
is_offset_centered, relative_scale_to_page);
```**Action required:** Supply the new parameters per the updated signatures. When relative scaling is unused, pass `relative_scale_to_page = 0` (or your product convention); when centered offset is unused, pass `is_offset_centered = false`.### `FillerAssistCallback::Refresh` — Signature changeThe form-filler assist refresh callback signature changed:```cpp
// Earlier versions
virtual void Refresh(const PDFPage& page, const RectF* rect) = 0;// 12.0 and later
virtual void Refresh(const PDFPage& page, const RectF& rect, bool has_reparse_page) = 0;
```**Action required:** Update every `FillerAssistCallback` (or equivalent) implementation: take `rect` by reference and handle `has_reparse_page` as needed.### `Preflight::Analyze` / `AnalyzeAndFixup` — Return type changeIn the Compliance module, these APIs changed from returning nothing to returning `ResultInformation`. Parameters are unchanged; only the return type changed:| API | Earlier | 12.0 |
|-----|---------|------|
| `Analyze` | `void` | `ResultInformation` |
| `AnalyzeAndFixup` | `void` | `ResultInformation` |**Action required:** Update call sites to receive and handle the new return type.Callbacks are required only when using the corresponding new capabilities (no change if unused):- `PreflightGroupLocalCallback`: localizes group item names and comments via `Preflight::SetPreflightGroupLocalCallback`. Implement `Release`, `GetGroupItemLocalName`, and `GetGroupItemLocalComment`.### `TaggedPDF` / Accessibility APIs — Header move and `StartTagDocument`PDF Accessibility APIs moved into the accessibility add-on, with AutoTagging entry-point changes:| Item | Earlier | 12.0 |
|------|---------|------|
| Header path | `pdf/pdfaccessibility/…` | `addon/accessibility/…` (packages may also expose `fs_taggedpdf.h`—follow the published include tree) |
| Constructor | `TaggedPDF(const PDFDoc& doc)` | `TaggedPDF(const PDFDoc& doc, bool is_fix = false)` |
| Tagging entry | `StartTagDocument(pause = NULL)`; plus `SetCallback` | `StartTagDocument(pause, report_callback = NULL, callback = NULL)`; `SetCallback` deprecated |
| `pause` default | Defaulted to `NULL` | No default; must be passed explicitly (may be `NULL`) |```cpp
// Earlier versions
TaggedPDF tagged(doc);
tagged.SetCallback(cb);
tagged.StartTagDocument();// 12.0 and later
TaggedPDF tagged(doc, false);
tagged.StartTagDocument(NULL, report_stream, provider_callback); // pause must be explicit
```**Action required:** Update `#include`s; remove `SetCallback` and pass the report stream plus optional `AutoTagProviderCallback` to `StartTagDocument`; always pass `pause` explicitly.### `DWG2PDFSettingData::export_hatches_type` — Default value changeWhen left unset, the default hatch export type changed (silent behavior change):| Property | Earlier | 12.0 |
|----------|---------|------|
| `export_hatches_type` | `e_DWG2PDFExportHatchesTypeBitmap` | `e_DWG2PDFExportHatchesTypePolygons` |
| `other_export_hatches_type` | — (not present) | `e_DWG2PDFExportHatchesTypeBitmap` |
| `gradient_export_hatches_type` | — (not present) | `e_DWG2PDFExportHatchesTypeBitmap` |**Action required:** To keep the earlier behavior, set `export_hatches_type = e_DWG2PDFExportHatchesTypeBitmap` explicitly; configure the new other/gradient hatch properties as needed.### `JavascriptEventType` — Some enum numeric values shiftedIn earlier versions, an unused integer gap (20) existed between `FieldKeyStroke` (value 19) and `FieldValidate`. In 12.0 that gap was assigned to `FieldValidate`, and subsequent enum values shifted forward by 1:| Enum | Earlier | 12.0 |
|------|---------|------|
| `FieldKeyStroke` | 19 | 19 (unchanged) |
| `FieldValidate` | 21 | 20 |
| `FieldCalculate` | 22 | 21 |
| `FieldFormat` | 23 | 22 |
| …through `MediaStop` | 46 | 45 |**Action required:** Always use enum symbols (for example `e_JavascriptEventTypeFieldValidate`); do not hard-code integer enum values. If code uses `if (type == 21)` expecting `FieldValidate`, integer `21` maps to `FieldCalculate` in 12.0 and later.## New Features and Enhancements### Platform- Node.js (Node-API): Migrated the Node.js native binding from the legacy Node/V8 Binding to Node-API, with prebuilt packages for napi3 / napi6 / napi8, expanding compatibility (approximately Node.js 8.15–26; some historical minor versions excluded). Installation automatically matches the current runtime.
- Simple Demo command-line samples: Simple Demo supports command-line arguments. Samples are published at https://github.com/foxitsoftware/foxit-pdf-sdk-cli-samples---### Conversion- Markdown and PDF conversion: Added Markdown to PDF (`Md2PDF::ConvertFromMarkdown`) and PDF to Markdown (`PDF2Md::ConvertToMarkdown`). Load the Conversion library and ensure the corresponding module license before use.
- Enhanced DWG/DXF to PDF: Configure layout scope, title-block XML, auto-tiling, line-weight styles, output DPI, and more via `DWG2PDFSettingData`. See `export_hatches_type` default change above.
- Unified cross-platform Java Office-to-PDF entry points: `fromWord` / `fromExcel` / `fromPowerPoint` share the same method parameters; the SDK Java binding dispatches by platform internally. Existing platform-specific APIs remain available.---### OCR- Improved OCR recognition quality (large-image handling, certain Chinese garbled-text scenarios, and related cases). Upgrade to the ABBYY OCR resource pack that ships with this release.---### Signature and Security- ISO 32004 document integrity protection: Standalone mode (`PDFDoc::StartIntegrityProtection`) and signature-attached mode (`StartIntegrityProtectionWithSignature`), with configurable digest algorithm, password, permission bits, and whether to encrypt metadata.---### Text and Content- Glyph ID lookup by Unicode: `Font::GetGlyphID`
- Full-text search ignore whitespace in the pattern: `FullTextSearch::SetIgnoreSpace`; off by default; no index rebuild required
- Full-text search supports cooperative cancellation (see `NeedToCancel` above)
- Watermarks support relative scaling to the target page and offset calculation from the watermark center (see `WatermarkSettings` above)---### Rendering- Convert bitmaps to CMYK: `Bitmap::ConvertFormat(..., e_DIBCmyk)` converts RGB / ARGB / RGB32 (and related) bitmaps directly to CMYK
- Improved CMYK page rendering performance (same-document retest: about 86% reduction on Win32, about 19% on Win64)
- Improved decoding of halftone JBIG2 images with HENABLESKIP---### Forms and Annotations- Batch annotation hit-testing by rectangle: `PDFPage::GetAnnotsAtRect` / `GetAnnotsAtDeviceRect`, complementing existing point hit-testing; annotations with Hidden / NoView / Invisible flags are not returned.---### Standards and Compliance- PDF/A-4e / PDF/A-4f: Added validation and conversion. Upgrade to the Compliance resource pack that ships with this release.---### Accessibility- Accessibility check, fix, navigation, and tag tree: Publicized `AccessibilityChecker`, `AccessibilityFixer`, `AccessibilityNavigator`, `ReadingOrder`, `TagTreeEditor`, and related APIs.
- Improved AutoTagging structure recognition: better heading levels (such as H1/H2) and less overly flat structure trees, closer to common reader tagging results.---### Document and Page- Improved document open performance in specific scenarios (sample about 99.7% reduction)
- Add image frames from a file path: `Image::AddFrame` accepts an image file path.
- SVG / WMF (EMF) vector graphics into PDF: Write SVG / WMF (EMF) into a PDF page or whole document via `VectorGraphics`.---## Bug Fixes### Conversion- Fix font drift and incorrect font sizes in DWG2PDF when specific fonts were missing (can be mitigated/fixed by adding the corresponding `.shx` fonts to the engine Fonts directory)
- Fix execution failures/crashes in Windows Java DWG2PDF caused by conflicts between the ODA export component and JDK bundled runtimes
- Fix garbled text in parts of specific DWG drawings after conversion to PDF
- Fix garbled text in DWG2PDF output from historical versions
- Fix DWG2PDF output losing original drawing layer information
- Fix line weight and related attributes not being preserved correctly after DWG2PDF conversion
- Fix unexpected font substitution for some fonts during PDF to Word / Excel
- Fix Office2PDF incorrectly reporting "No 3D module right" when fonts were missing; the error message is now accurate
- Fix garbled text (shown as "?") after converting specific DWG files on Linux
- Fix overlapping/squeezed lines after converting specific DWG files
- Fix crashes in Linux Java when combining OCR and PDF2Word engine workflows### Rendering- Fix incorrect knockout transparency-group shape calculation that made preview results inconsistent with Adobe / WPS
- Fix rendering of specific XFA documents that was inconsistent with Adobe
- Fix some text appearing bolder and abnormal anti-aliasing in Output Preview (regression relative to v11.1)
- Fix bordered link annotations not showing borders during rendering / image export
- Fix results inconsistent with Adobe after enabling simulated overprint (`EnableSimulateOverprint`)### Document and Page- Fix excessively long PDF/A validation and incomplete validation output after adding FreeText annotations with embedded fonts
- Fix garbled output when writing certain Unicode symbols into headers/footers from C# (not reproducible on the C++ side)
- Fix possible hangs or stack overflows from `Bookmark::MoveTo` on structurally abnormal PDFs; the API now returns errors more robustly
- Fix unexpected results when moving a bookmark node to become a sibling of its parent
- Fix page width/height not updating after setting PageBox when re-read (use the correct path including `PDFPage::Normalize()` where applicable)### OCR- Fix text position drift and ghosting after OCR on specific documents
- Fix upside-down OCR results on specific pages
- Fix flipped or 90°-rotated OCR results on specific pages### Text and Content- Fix intermittent errors from `PDFPage::AddText`
- Fix invisible text after replacing Japanese with English using TextSearchReplace
- Fix rare characters not displaying when creating text objects with SimSun-ExtB, and incorrect `IsCharSupported` results
- Fix `TextPage.GetText` returning different results on .NET Core versus .NET Framework
- Fix inaccurate `Font::IsCharSupported` results for some fonts (such as HanaMinA)### Platform- Fix heap-corruption style crashes on Linux (for example Ubuntu 24) in specific licensing scenarios
- Fix .NET on Linux ARM failing to load `fsdk.dll` when calling `TextPage.GetChars`
- Fix document object misalignment / format corruption under concurrent editing### Signature and Security- Fix incorrect position of the last character in watermark strings after calling `embed()` on the watermark font
- Fix Adobe reporting errors on specific pages after EmbedFont-related flows
- Fix Chinese tiled watermarks not displaying on Linux when fonts were loaded from a path### Printing- Fix possible Access Violation on application exit if `PrintManager.Release` was not called
- Fix PrintManager incorrectly using an already-closed printer handle on release/close paths### Forms and Annotations- Fix missing `/Length` entries when exporting stamps added through the SDK to FDF
- Fix `XFADoc::FlattenTo` dropping field values that contain diacritics### Optimization- Fix inconsistent Optimizer handling of already-subset / non-embedded fonts that caused some fonts to be substituted