Foxit PDF SDK(UWP版)

Foxit PDF SDK(UWP版) 专注于帮助开发者轻松地将PDF技术集成到应用程序中。通过Foxit PDF SDK(UWP版),开发人员可以享受原生开发体验,使用完整的源代码控件和内置PDF阅读器来开发UWP应用程序。即使开发人员对PDF知识了解有限,也可以通过几行代码快速开发专业的、定制的阅读器。我们的软件开发工具包拥有您应用程序所需的所有文本处理功能。

使用Foxit PDF SDK(UWP版)开发PDF软件

开发人员可以使用Foxit PDF SDK(UWP版)轻松开发可以查看、创建和编辑PDF文档的UWP应用程序。我们的UI扩展组件提供了一个完全可定制的用户界面,内置文本标记、绘图、填写表单、全文搜索等工具。使用我们的核心API,开发人员可以快速、熟练地使用我们的PDF库。开发人员可以利用福昕强大的PDF SDK技术为您的客户提供一个出色的产品。我们的PDF SDK是根据UWP流畅的设计指南创建的,它是所有UWP移动应用的完美伴侣。

UWP PDF SDK Support

功能

查看PDF

我们的核心API针对桌面和移动平台进行了优化,可以提供高保真度PDF文档渲染体验。

数字签名

无需打印文件,用户可以在其电子设备上签署文件,加速业务处理,并给用户带来舒适的体验。

PDF表单

支持使用电子设备填写数字表单,使之更高效、快捷。

权限管理

Foxit PDF SDK可以通过加密/解密服务或集成自定义数字权限管理(DRM)或信息权限管理(IRM)系统生成受保护的PDF文件。福昕的PDF SDK集成了微软权限管理服务(RMS)。

PDF注释

Foxit PDF SDK提供全面的注释和标记功能,支持创建、编辑、导入和导出注释等。
 
 

全文搜索

对任何语言或编码类型PDF文档支持快速全文搜索功能。即使是搜索各类数字设备上的文件库,基于SQLite的全文搜索都能提供近乎即时的结果。
 

Announcing PDF SDK 6.2 

Foxit PDF SDK 6.2 introduces a brand-new Objective-C API for development in Mac, and extended support for Microsoft AD RMS 2.1.

Additionally, in Android and iOS we have added UI improvements, full support for multimedia annotations (audio, video, and voice!) as well as full XFA form support.

高级技术

XFA表单

XFA表单是基于XML的表单。能够安全获取、呈现、移动、处理、输出、更新和打印与静态和动态XFA表单相关的信息。使用XFA表单能简化您的数据共享、数据和获取。

权限管理

将应用程序和文件连接到微软的权限管理服务平台,保护PDF文档的安全。Foxit PDF SDK支持集成自定义IRM和DRM解决方案。
 
 

OCR文字识别

利用福昕高度精确的文字识别(OCR)引擎将扫描的文档转换成可搜索的PDF文件。这一强大的功能是为扫描文件、存档和文件数字化而设计的,支持输出PDF和PDF/A等13种格式文件。

密文处理

出于合法或安全的考虑,通过编程实现搜索和审查文档的敏感信息,确保您的客户和员工的信息安全。通过福昕强大的技术加密文档,使得文档符合通用数据保护条例(GDPR)。

互联PDF

利用福昕的尖端技术,通过编程,为PDF文件提供智能管理、安全保护和协同合作服务。只需一个SDK,就能实时保护文档、访问分析数据和协同处理文档。
 

转换

利用我们的转换和压缩技术更快地转换和存储文件。支持将TIFF、JPEG、Word、Email、HTML、ASCII文本等格式文件转换PDF和PDF/A等文件。
 

试用福昕技术

福昕阅读器(UWP版)是使用PDF SDK(UWP版)开发而成,可以从微软商店免费下载。欢迎立即试用。

优点

原生用户界面

PDF SDK(UWP版)专为开发人员构建。我们提供了内置PDF阅读器,使您开发工作量减半,并允许您自定义此阅读器。

易于集成

我们开发UWP PDF库时将平台作为首要考虑因素。我们遵循UWP的命名规定和流畅设计原则,使我们的程序符合UWP应用程序标准。

功能丰富

我们的产品功能在移动端和桌面端保持一致,使得跨平台开发更加简单顺畅。我们会不断更新功能集,欢迎关注我们的产品页面。

福昕核心技术支持

Foxit PDF SDK的核心技术已经存在多年,并且受到许多知名公司的信任。福昕强大的引擎使文档在所有平台上都可以快速查看并且保持一致。

系统要求

 

  • Windows 10
  • Visual Studio 2015或更高版本

Foxit PDF SDK(UWP版)样例

//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!");
	});
	
}