使用C#基于ComPDFKit SDK快速构建PDF阅读器

news2024/11/14 18:47:20

在当今世界,Windows 应用程序对我们的工作至关重要。随着处理 PDF 文档的需求不断增加,将 ComPDFKit PDF 查看和编辑功能集成到您的 Windows 应用程序或系统中,可以极大地为您的用户带来美妙的体验。

在本博客中,我们将首先探索集成 ComPDFKit PDF SDK 的必要步骤,并使用 ComPDFKit 构建 Windows PDF 阅读器。

ComPDFKit SDK for Windows 入门

ComPDFKit 是一个功能强大的 PDF SDK。只需数行C#代码即可轻松将 ComPDFKit PDF SDK 嵌入到您的 Windows 应用程序中。让我们用几分钟时间开始使用。

以下部分介绍了配置要求、安装包的结构以及如何通过C#语言,使用 ComPDFKit PDF SDK制作 Windows PDF 阅读器。

要求

  • Windows 7、8、10 和 11(32 位、64 位)。
  • Visual Studio 2017 或更高版本。
  • .NET Framework 4.6.1 或更高版本。

Windows包结构

您可以联系我们获取我们的PDF SDK安装包。

SDK包中包含以下文件:

  • “Examples” - 包含Windows示例项目的文件夹。
  • “lib” - 包含ComPDFKit动态库(x86, x64)的文件夹。
  • “nuget” - 包含ComPDFKit.NetFramework nuget包的文件夹。
  • “api_reference_windows.chm” - API参考文档。
  • “developer_guide_windows.pdf” - 开发者文档。
  • “legal.txt” - 法律和版权信息。
  • “release_notes.txt” - Release信息。

在这里插入图片描述

使用C#构建Windows PDF查看器

第一步:创建一个新项目

  1. 启动Visual Studio 2022, 单击创建新项目
    在这里插入图片描述

  2. 选择“WPF APP (.NET Framework)”,然后单击“下一步”。
    在这里插入图片描述

  3. 配置您的项目:设置您的项目名称并选择存储程序的位置。在本示例中,项目名称称为“ComPDFKit Demo”。此示例项目使用 .NET Framework 4.6.1 作为编程框架。
    在这里插入图片描述

  4. 点击“创建”按钮,至此项目创建完成。

第二步:添加ComPDFKit PDF SDK包

  1. 打开您的项目解决方案,右击“引用”,在右键菜单项中选择“管理Nuget程序包”,这将打开您的项目的NuGet包管理器。
    在这里插入图片描述

  2. 点击“浏览”,设置程序包源为nuget.org,搜索ComPDFKit.NetFramework,您将搜索到“ComPDFKit.NetFramework”包。
    在这里插入图片描述

  3. 选中包后,在右侧包的详情面板中,点击“安装”来下载包。
    在这里插入图片描述

  4. 安装完成后,您现在可以在“解决方案资源管理器”->“引用”中找到对应的包的引用。
    在这里插入图片描述

第三步,应用许可证密钥

您可以联系ComPDFKit团队获取试用许可证,在使用任何ComPDFKit SDK功能之前,需要进行的操作是设置许可证密钥。将以下方法“LicenseVerify()”添加到“MainWindow.xaml.cs”。

bool LicenseVerify()
{
    bool result = CPDFSDKVerifier.LoadNativeLibrary();
    if (!result)
    {
       return false;
    }
    string Key = "Input your key instead of this string";
    string Secret = "Input your secret  instead of this string";
    CPDFSDKVerifier.LicenseErrorCode verifyResult =
    CPDFSDKVerifier.LicenseVerify(Key, Secret);
    if (verifyResult != CPDFSDKVerifier.LicenseErrorCode.LICENSE_ERR_SUCCESS)
    {
        return false;
    }
    return true;
}

第四步,显示PDF文档

现在,我们已经完成了所有准备工作,接下来我们将显示一份PDF文件。

将下面的代码添加到您的"MainWindow.xaml",“MainWindow.xaml.cs”,从而显示PDF文件。请注意,确保将“ComPDFKit_Demo”替换为您的项目名称。

您的"MainWindow.xaml"代码应该如下所示(在此,我将显示PDF文件的Grid命名为PDFGrid):

<Window x:Class="ComPDFKit_Demo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ComPDFKit_Demo"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" UseLayoutRounding="True">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="52"/>
        </Grid.RowDefinitions>
        <Grid Name="PDFGrid" Grid.Row="0" />
        <Button Content="Open PDF" Grid.Row="1" HorizontalAlignment="Left" Margin="10" Click="OpenPDF_Click"/>
    </Grid>
</Window>

您的“MainWindow.xaml.cs”文件应该如下所示。
请注意:您需要输入许可证密钥,代码中需要修改的部分已使用注释进行了标注。您只需将注释下方的字符串内容自行替换即可。

using ComPDFKit.NativeMethod;
using ComPDFKit.PDFDocument;
using ComPDFKitViewer.PdfViewer;
using Microsoft.Win32;
using System.Windows;

namespace ComPDFKit_Demo
{
	public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            LicenseVerify();
        }
        
        bool LicenseVerify()
        {
            bool result = CPDFSDKVerifier.LoadNativeLibrary();
            if (!result)
            {
            	return false;
            }

            // You should fill in your key and secret into the string below. 
            string key = "Input your key instead of this string";
            string secret = "Input your secret instead of this string";
            LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify(key, secret);
            if (verifyResult != LicenseErrorCode.LICENSE_ERR_SUCCESS)
            {
                return false;
            }
            return true;
        }

        private void OpenPDF_Click(object sender, RoutedEventArgs e)
        {
            // Get the path of a PDF file.
            var dlg = new OpenFileDialog();
            dlg.Filter = "PDF Files (*.pdf)|*.pdf";
            if (dlg.ShowDialog() == true)
            {
                // Use the PDF file path to open the document in CPDFViewer.
                CPDFViewer pdfViewer = new CPDFViewer();
                pdfViewer.InitDocument(dlg.FileName);
                if (pdfViewer.Document != null &&
                    pdfViewer.Document.ErrorType == CPDFDocumentError.CPDFDocumentErrorSuccess)
                {
                    pdfViewer.Load();
                    PDFGrid.Children.Add(pdfViewer);
                }
            }
        }
    }
}

现在运行程序并单击“Open File”按钮,选择您需要显示的PDF文件,您将看到文件被显示在MainWindow上了。PDF查看器已经创建完成。
在这里插入图片描述

故障排除

  1. 如果在LicenseVerify()函数中出现System.IO.FileNotFoundException,如下图:
    在这里插入图片描述

检查您的 WPF 项目并确保在创建项目时选择WPF APP(.NET Framework)而不是WPF Application。
在这里插入图片描述

  1. 其他问题
    如果您在集成我们的 ComPDFKit PDF SDK for Windows 时遇到其他问题,请随时联系ComPDFKit 团队。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/797251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JGIT获取远程仓库、本地仓库提交版本号

https://www.freesion.com/article/50181381474/ JGIT获取远程仓库、本地仓库提交版本号 一、环境搭建二、项目结构二、代码部分 GitUtils.javaGitInfoAtom.java三、运行结果&#xff1a;总结 一、环境搭建 Maven依赖导入 <dependency><groupId>org.eclipse.jg…

进入linux系统中修改网段-ip

第一步 &#xff1a;开启虚拟机 cd 到 /etc/sysconfig/network-scripts 目录下&#xff0c;输入命令给ls,展示这个目录下文件和文件夹 第二步&#xff1a;进入到以ifcfg开头的文件 # ifcfg开头的文件&#xff0c;如果有多个网卡&#xff0c;有多个ifcfg-ensxx文件 命令…

【从零开始学爬虫】采集全国各行业经销商网点数据

l 采集网站 【场景描述】采集全国各行业经销商网点数据&#xff0c;以建材行业为例。 【源网站介绍】买购网MAIGOO.COM建材家居频道&#xff0c;专门提供地面材料、墙顶饰材、洁具五金、门窗楼梯、水电电工、外墙材料、照明灯饰、家纺布艺、家具定制等行业&#xff0c;最新品…

LeetCode.189(轮转数组)

对于轮转数组这个题&#xff0c;文章一共提供三种思路&#xff0c;对于每种思路均提供其对应代码的时间、空间复杂度。 目录 1. 创建变量来保存最后一个数&#xff0c;并将其余数组向前挪动一位 &#xff1a; 1.1 原理解析&#xff1a; 1.2 代码实现&#xff1a; 2.创建一个…

【学习笔记】行为识别SOTA方法比较

这里写目录标题 前言方法1 基于CNN的方法Slow-fast&#xff1a; 2 基于Vision-Transformer的方法Video TimeSformer :Video Swin Transformer : 3、基于自监督的方法VideoMAE&#xff1a; 4、基于多模态的方法Intern video: 前言 常用行为识别数据集包括&#xff1a;HMDB-51、…

TL-ER3220G设置vlan

TL-ER3220G是企业宽带路由器。 自带5个RJ45接口。 其中接口1到接口4都可以接入宽带线路。最多可以并接4路。 本例由接口1接入宽带&#xff0c;默认接口2到接口4组成1个vlan&#xff0c;名称vlan。其中接口5特殊&#xff0c;带宽最大100M。 计划将接口2和接口4组成第一个vlan&…

STM32使用HAL库BH1750光照度传感器

开发环境 单片机&#xff1a;STM32F103C8T6 光照度传感器&#xff1a;BH1750 IDE&#xff1a;KEILSTM32CUBEMX 单片机配置 1、STM32CUBEMX BH1750代码 1、头文件 /* ************************************************* BH1750光照数据计算&#xff08;LUX&#xff09; …

H5和小程序测试点分析

最近接触了较多关于H5页面的测试&#xff0c;H5页面的测试除了业务逻辑功能测试外&#xff0c;其他部分的测试方法基本是可以通用的&#xff0c;在此对H5页面和小程序的一些通用测试方法进行总结分享给大家。 H5优势&#xff1a; 1.H5可以跨平台&#xff0c;开发成本相对较低…

中共湖南麒麟信安科技股份有限公司委员会召开庆祝建党102 周年暨“七一”表彰大会

为隆重庆祝中国共产党成立 102 周年&#xff0c;6月30日下午&#xff0c;中共湖南麒麟信安科技股份有限公司委员会召开庆祝建党102 周年暨“七一”表彰大会。麒麟信安党委书记王忠锋出席会议&#xff0c;党委副书记李广辉主持会议&#xff0c;全体党委委员、各支部委员、受表彰…

Gitlab 合并分支与请求合并

合并分支 方式一&#xff1a;图形界面 使用 GitGUI&#xff0c;右键菜单“GitExt Browse” - 菜单“命令” - 合并分支 方式二&#xff1a;命令行 在项目根目录下打开控制台&#xff0c;注意是本地 dev 与远程 master 的合并 // 1.查看本地分支&#xff0c;确认当前分支是否…

Elasticsearch-增删改查数据工作原理

集群 集群的基本概念&#xff1a; 集群&#xff1a;ES 集群由一个或多个 Elasticsearch 节点组成&#xff0c;每个节点配置相同的 cluster.name 即可加入集群&#xff0c;默认值为 “elasticsearch”。节点&#xff1a;一个 Elasticsearch 服务启动实例就是一个节点&#xff…

伦敦银定盘价机制的改变

一直以来&#xff0c;伦敦都是全球最大的现货白银定价中心&#xff0c;LBMA也是全球金银市场中最具有影响力的机构组织&#xff0c;其定盘价一直是世界各白银市场基准价的主要参考标准&#xff0c;被广泛应用于生产厂商、消费者和金融机构之间的交易结算&#xff0c;也是众多白…

刷题DAY 11

题目一 给定一个整型数组arr&#xff0c;和一个整数num某个arr中的子数组sub&#xff0c;如果想达标&#xff0c;必须满足&#xff1a;sub中最大值-sub中最小值<num&#xff0c;返回arr中达标子数组的数量 滑动窗口法,滑动窗口有两个行为1.右括 2.左缩 错误想法1: 当你已经…

工频耐压测试仪的使用方法

一、凯迪正大工频耐压试验装置使用方法 1、核对试验变压器&#xff0c;测量绕阻额定输出电压&#xff0c;使之与操作箱&#xff08;台&#xff09;相吻合。 2、按接线示意图接好试验变压器与操作箱&#xff08;台&#xff09;及感应调压器之间的联线。 3、接通电源&#xff0c;…

索引能优化查询,那么谈谈索引的优点和缺点?索引原理

面试必备&#xff1a;索引能优化查询&#xff0c;那么谈谈索引的优点和缺点?索引原理 简述&#xff1a; 优点: 第一&#xff0c;通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。 第二&#xff0c;可以大大加快数据的检索速度&#xff0c;这也是创建…

工程设计施工3D模型素材下载,全套1000+免费获取

在建筑设计和施工过程中&#xff0c;3D模型数据是至关重要的。设计师和工程师需要依赖高质量的3D模型数据进行方案优化、细节设计、施工规划和质量控制。因此&#xff0c;如何下载高质量的3D模型数据成为了一个重要的问题。 今天给大家免费提供一个“设计、施工3D模型数据下载…

推荐几个不错的免费配色工具网站

1. Paletton专业的配色套件,提供色轮理论及调色功能。可查看配色预览效果。 网站:http://paletton.com 2. Colormind一个基于机器学习的智能配色工具。可以一键生成配色方案。 网站:http://colormind.io 3. Adobe ColorAdobe官方的配色工具,可以从图片中取色,也可以随机生成配色…

ModStartCMS v6.9.0 后台多标签改进,主题色自动切换修复

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

docker安装MySQL集群(一主一从)

目录 docker安装MySQL集群&#xff08;一主一从&#xff09;前菜测试MySQL 集群安装master容器slave容器master容器配置主从赋值测试 docker安装MySQL集群&#xff08;一主一从&#xff09; 前菜测试 1、拉取mysql5.7的镜像到本地 [rootaliyun ~]# docker pull mysql:5.72、…

优思学院|丰田公司的精益生产为什么让人敬佩?

因为丰田精益生产方式的成功不是偶然&#xff0c;它历经了50多年&#xff0c;从员工的教育训练着手&#xff0c;使他们能运用非常严格的问题解决程序&#xff0c;采用科学方法&#xff0c;针对各项活动、流程及制度不断地加以评估、检测与改进而自然形成的。事实上&#xff0c;…