Foxit pdf SDK for UWP
Our PDF SDK for UWP focuses on helping developers integrate PDF technology easily into their apps. Enjoy the native performance and behaviors of developing a UWP app with complete source code control and a built in PDF viewer. Even developers with limited PDF knowledge can quickly build a professional, customized viewer with only a few lines of code. Our Software Development Kit has all the text processing functionality you need for your next application.
Developing with PDF SDK for UWP
Build UWP apps that can view, create and edit PDF documents with ease. Our UI Extension provides a fully customizable user interface with built-in tools for text mark-up, drawing, form filling, full-text searching and so much more. Using our Core API your developers can code with our PDF libraries quickly and proficiently, harnessing Foxit’s powerful PDF SDK technology to give your customers a great product. Created with UWP’s fluent design guidelines in mind, our PDF SDK is the perfect companion for any UWP mobile app.

FEATURES
PDF Viewing
Our core API provides for high-fidelity rendering of PDF documents with optimized performance for desktop and mobile platforms.
Digital SignatureS
Use ink signatures to let customers sign documents in their digital devices. No need to print a file to sign again!
PDF Forms
Give users the ability to fill out digital forms on the go with their device of choice. Apps have never been more productive!
Rights Management
Our PDF SDK can generate secure PDFs with native encryption/decryption or integrate with customized DRM or IRM security systems. Our technology integrates with Microsoft RMS.
PDF Annotations
Our PDF SDK provides full support for annotating and marking up content with an extensive range of functions for creating, editing or importing/exporting annotations.
Full-Text Search
Fast full-text search for any PDF document, language, or encoding type. The SQLite-based full-text search delivers near-instant results, even for repositories on any digital device.
INTRODUCING FOXIT PDF SDK 7.5
Foxit’s last release of 2020 comes with lots of new features and upgrades. With our desktop SDK, we’ve extended layout recognition support to now include Linux and Mac (as well as Windows), additional rich text support for free text annotations, HTML2PDF functionality now allows cookie loading straight from memory and many more upgrades.
On the mobile side of this release, you can now add languages with Android Xamarin with just 2 lines of code, autosave flags for automatically saving signed documents and loads of new demos for search, shapes, watermarks and image to PDF conversion to make your developing faster to market.
For our Web PDF library, we’ve added new features for annotations and forms including new classes PDFControl and Widget for controlling types and appearance, extended support for screen annotations and automatic calculations in form fields. Finally, we’ve also added CSV and TXT file format support for form importing and exporting.

ADVANCED TECHNOLOGY

XFA FORMS
XFA Forms are XML-based forms wrapped inside a PDF. Securely capture, present, move, process, output, update & print information associated with static & dynamic XFA forms. Simplify your data sharing, transportation & availability with XFA.

RIGHTS MANAGEMENT
Keep PDF documents secure by connecting your application & files to Microsoft's Rights Management Services platform natively. Foxit PDF SDK also integrates with your IRM & DRM solution.
XFA FORMS
Rights Management
REDACTION
Programmatically search and sensor sensitive information in your documents for legal or security purposes to keep your customer and employee information safe. Click here to see how you can achieve full GDPR-compliance.
Try our Technology
Our UWP PDF Reader is built with our PDF SDK for UWP and free to download from the Microsoft Store. Try our technology today.
Benefits
Native UI
Easy to Integrate
Feature Rich
Powered by Foxit's Core Technology
SYSTEM REQUIREMENTS
- Windows 10
- Visual Studio 2015 or later
Foxit PDF SDK for uwp in action
//Edit the bookmarks title, color, style... then save them to a new pdf. void FunctionDemo::MainPage::outline_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { StorageFolder^ documentFolder = Windows::Storage::KnownFolders::DocumentsLibrary; create_task(documentFolder->GetFileAsync("Outline.pdf")).then([=](StorageFile^ file) { try { m_doc = ref new FSPDFDoc(file,0); if (!m_doc) { return; } FSErrorCode code = m_doc->Load(""); if (code != FSErrorCode::e_errSuccess) { return; } FSBookmark^ root = m_doc->GetFirstBookmark(); this->setProperties(root); } catch (Platform::Exception^ e) { OutputDebugString(e->Message->Data()); } }).then([=]() { return documentFolder->CreateFileAsync("Output_Outline.pdf", CreationCollisionOption::ReplaceExisting); }).then([=](StorageFile^ file) { try { m_doc->SaveAs(file, 0); this->showMesseageDialog("", "The output file is saved to:" + file->Path); } catch (Platform::Exception^ e) { } }); } void FunctionDemo::MainPage::setProperties(FSBookmark^ bookmark) { FSBookmark^ bm = nullptr; for (bm = bookmark->GetFirstChild(); bm != nullptr; bm = bm->GetNextSibling()) { String^ title = bm->GetTitle(); bm->SetTitle(title + "_renamed"); bm->SetColor(0x0000ffff); bm->SetStyle((int)FSBookmarkStyle::e_bookmarkStyleBold); FSBookmark^ child = bm->GetFirstChild(); if (child) { this->setProperties(bm); } } } void FunctionDemo::MainPage::showMesseageDialog(Platform::String^ title, Platform::String^ content) { auto messageDialog = ref new Windows::UI::Popups::MessageDialog(content, title); messageDialog->Commands->Append(ref new Windows::UI::Popups::UICommand("OK", nullptr, PropertyValue::CreateInt32(0))); messageDialog->DefaultCommandIndex = 0; messageDialog->ShowAsync(); }
//Render the pdf page, then save it to a bitmap file. void FunctionDemo::MainPage::render_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { StorageFolder^ documentFolder = Windows::Storage::KnownFolders::DocumentsLibrary; std::shared_ptr<fsbitmap^> spBitmap = std::make_shared<fsbitmap^>(nullptr); create_task(documentFolder->GetFileAsync("FoxitBigPreview.pdf")).then([=](StorageFile^ file) { try { m_doc = ref new FSPDFDoc(file, 0); if (!m_doc) { return; } FSErrorCode code = m_doc->Load(""); if (code != FSErrorCode::e_errSuccess) { return; } FSPDFPage^ page = m_doc->GetPage(0); if (!page->IsParsed()) { page->StartParse(0, nullptr, false); } //create bitmap int pageWidth = (int)page->GetWidth(); int pageHeight = (int)page->GetHeight(); *spBitmap = ref new FSBitmap(pageWidth, pageHeight, FSDIBFormat::e_dibRgb32, nullptr, 0); if (!(*spBitmap)) { return; } (*spBitmap)->FillRect(0xffffffff, nullptr); //init renderer FSRenderer^ render = ref new FSRenderer((*spBitmap), false); if (!render) { return; } //set different kinds of properties render->SetRenderContentFlags((int)FSRenderContentFlag::e_renderPage); render->SetTransformAnnotIcon(true); render->SetColorMode(FSRenderColorMode::e_colorModeNormal); render->SetForceHalftone(true); FSMatrix^ matrix = page->GetDisplayMatrix(0, 0, pageWidth, pageHeight, FSRotation::e_rotation0); render->StartRender(page, matrix, nullptr); } catch (Platform::Exception^ e) { OutputDebugString(e->Message->Data()); } }).then([=]() { return documentFolder->CreateFileAsync("Output_Render.bmp", CreationCollisionOption::ReplaceExisting); }).then([=](StorageFile^ file) { FSImage^ img = ref new FSImage(); img->AddFrame((*spBitmap)); if(img->SaveAs(file, "bmp")) this->showMesseageDialog("", "The output file is saved to:" + file->Path); else this->showMesseageDialog("", "error!"); }); }