当前位置: 首页 > article >正文

C#编程:免费PDF小工具(可下载)更新功能

d9768623a4522fc1136231f12ccd0000.png

==标题==

C#编程:免费PDF小工具(合并、拆分)20241119更新

==正文==

更新功能

目录有六个功能页面,请看图,今天添加一个功能页面提取(2)

6aec17790b4ee0a8e0ecb3869c2a74dc.png

代码部分:

ae1b470066882f5271669c789575cc14.png

57acdcfb27d5a019eb70949dd2b9a313.png

1a9a634bac0a2a53cf5f345c403378a0.png

代码文本,你可复制使用哦

//PDF提取(2)-选择文件

private void button18_Click(object sender, EventArgs e)

{

string oneFilePath = GetOneFilepath();

if (!string.IsNullOrEmpty(oneFilePath))

{

textBox10.Text = oneFilePath;

}

}

private void button16_Click(object sender, EventArgs e)

{

if (string.IsNullOrEmpty(textBox9.Text))

{

MessageBox.Show("没输入");

return;

}

if (string.IsNullOrEmpty(textBox10.Text))

{

MessageBox.Show("没输入");

return;

}

string inputFilePath = textBox10.Text;

if (!File.Exists(inputFilePath))

{

MessageBox.Show("文件路径有误");

return;

}

string inputstring = textBox9.Text;

string outputFilePath = Path.Combine(System.IO.Path.GetDirectoryName(inputFilePath), $"{Path.GetFileNameWithoutExtension(inputFilePath)}_{DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss")}提取.pdf");

string[] stringArray = inputstring.Replace(",", ",").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

List<int> intList = stringArray.Select(int.Parse).ToList();

// 打开源PDF文件

PdfDocument inputDocument = PdfReader.Open(inputFilePath, PdfDocumentOpenMode.Import);

// 创建一个新的PDF文档

PdfDocument outputDocument = new PdfDocument();

//MessageBox.Show(inputDocument.PageCount.ToString());

// 遍历要提取的页面索引

foreach (int pageIndex in intList)

{

int mypage=pageIndex-1;//pdf是从0页码开始的

// 确保页面索引在有效范围内

if (mypage >= 0 && mypage < inputDocument.PageCount)

{

// 从源文档中获取页面并添加到新文档中

PdfPage page = inputDocument.Pages[mypage];

outputDocument.AddPage(page);

}

}

// 保存新文档

outputDocument.Save(outputFilePath);

MessageBox.Show("提取完成,输出在源文件目录");

}

文件下载:

通过网盘分享的文件:WindowsFormsApp_pdfsharp - 1.2.zip

链接: https://pan.baidu.com/s/1utO1N5ZV-fEpF5rKeUM5pQ?pwd=y234 提取码: y234

(PS:由于网盘限流,如果下载不了,请留言,我再操作分享)

==The end==

d0f69f58acefdd00316581abe650561f.png

==合集==

====若有用,请转发免费学习====

关注看更多文章

d4ce7e1ee1f55ffcaebc8018ee32dca9.jpeg


http://www.kler.cn/a/403482.html

相关文章:

  • LINUX系统编程之——环境变量
  • Nginx 配置教程:仅重定向根路径(网站首页)
  • 使用 FFmpeg 提取音频的详细指南
  • 嵌入式中利用QT实现服务器与客户端方法
  • DB-GPT V0.6.2 版本更新:牵手libro社区、GraphRAG图谱构建能力增强等
  • 集成金蝶云星空数据至MySQL的完整案例解析
  • Vue 3集成海康Web插件实现视频监控
  • Ruby Socket 编程
  • ✅DAY31 贪心算法终 | 56. 合并区间 | 738.单调递增的数字
  • React Native 基础
  • 2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--AT24C02(七)
  • 快速删除 node_modules 目录的集中方法
  • 《原子操作:程序世界里的“最小魔法单位”解析》
  • 某杀软环境下的添加账户
  • OpenHarmony-3.驱动HDF
  • 简单工厂模式、方法工厂模式
  • GaussianDreamer: Fast Generation from Text to 3D Gaussians——点云论文阅读(11)
  • S5700交换机堆叠问题定位指导(Guidelines for locating Switch Stacking Issues)
  • PostgreSQL常用时间函数与时间计算提取示例说明
  • 基于Matlab的变压器仿真模型的建模方法(6):单相三绕组变压器的拉氏变换数学模型和仿真模型
  • 实验四:构建园区网(OSPF 动态路由)
  • 力扣—136.只出现一次的数字
  • 从壹开始解读Yolov11【源码研读系列】——Data.build.py:YOLO用于训练Train + 验证Val的无限数据集加载器DataLoader搭建
  • 【青牛科技】 GC1288散热风扇驱动芯片的理想替代者可替代LA6588 / 三洋
  • 嵌入式Linux的RTC读写操作应用
  • kotlin 协程 job的cancel与cancelAndJoin区别