通过后端程序将Excel表格转为PDF格式时,直接转换后的PDF效果可能出现表格页面过小或者过大,导致页面内容分布不均。要改善转换后的文档效果,只需在转换前自定义表格纸张大小,即可调整转换后的PDF页面表格布局效果。下面是具体方法和步骤。

引入dll

在Visual Studio中,打开“解决方案资源管理器”,鼠标右键点击“引用”,

1.通过NuGet安装dll(2种方法)

1.1 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索Spire.XLS安装。

1.2 将以下内容复制到PM控制台安装。

Install-Package Spire.XLS -Version 11.11.2

2.手动添加dll引用

可通过手动下载包,然后解压,找到BIN文件夹下的Spire.Xls.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”将本地路径BIN文件夹下的dll文件添加引用至程序。

代码及转换设置

代码思路:

1.实例化Workbook类的对象,然后调用Workbook.LoadFromFile(string fileName)方法加载Excel文档。

2.通过 Workbook.Worksheets属性获取Worksheet类的的对象,即获取工作表

3.通过PageSetup.SetCustomPaperSize(float width, float height)方法自定义表格宽度及高度。

4.最后,调用Workbook.SaveToFile(string fileName, FileFormat fileFormat)方法保存为PDF格式。

C#

using Spire.Xls;

namespace ExcelToPDFwithCustomPageSize
{
class Program
{
static void Main(string[] args)
{
//实例化Workbook类的对象
Workbook workbook = new Workbook(); //加载Excel测试文档
workbook.LoadFromFile("test.xlsx"); //遍历工作表
for(int i=0; i<workbook.Worksheets.Count;i++)
{
Worksheet sheet = workbook.Worksheets[i]; //自定义纸张大小
sheet.PageSetup.SetCustomPaperSize(620,310); //保存为PDF格式
workbook.SaveToFile("ToPDF.pdf", FileFormat.PDF);
} }
}
}

VB.NET

Imports Spire.Xls

Namespace ExcelToPDFwithCustomPageSize
Class Program
Private Shared Sub Main(args As String())
'实例化Workbook类的对象
Dim workbook As New Workbook() '加载Excel测试文档
workbook.LoadFromFile("test.xlsx") '遍历工作表
For i As Integer = 0 To workbook.Worksheets.Count - 1
Dim sheet As Worksheet = workbook.Worksheets(i) '自定义纸张大小
sheet.PageSetup.SetCustomPaperSize(620, 310) '保存为PDF格式
workbook.SaveToFile("ToPDF.pdf", FileFormat.PDF)
Next End Sub
End Class
End Namespace

通过设置不同的宽度和高度,在转换后可呈现不同效果,如图:

注意事项

  • 代码中的Excel和PDF路径为的VS程序的Debug路径,如本次路径为:F:\VS2017Project\ExceltoPDF\ExcelToPDFwithCustomPageSize\bin\Debug\test.xlsx ,文件路径自定义为其他路径。
  • 注意这里引入的是spire.xls.dll v11.11.2版本。转换前的页面大小设置为该版本中写入的新功能,在旧版本和免费版本中暂不支持。

C# 将Excel转为PDF时自定义表格纸张大小的更多相关文章

  1. C# 将Excel转为PDF时设置内容适应页面宽度

    将Excel转为PDF格式时,通常情况下转换出来的PDF页面都是默认的宽度大小:如果Excel表格数据的设计或布局比较宽或者数据内较少的情况,转出来的PDF要么会将原本的一个表格分割显示在两个页面,或 ...

  2. Java 基于Spire.Cloud.Excel 将Excel转为PDF

    Spire.Cloud.Excel Sdk 提供GeneralApi接口和WorkbookApi接口,支持将本地Excel和云端Excel文档转换为ODS, PDF, XPS, PCL, PS等格式. ...

  3. Java实现windows,linux服务器word,excel转为PDF;aspose-words,Documents4j

    Java实现windows,linux服务器word,excel转为PDF:aspose-words,Documents4j 一.通过aspose-words将word,Excel文档转为PDF 1. ...

  4. Java 将Excel转为PDF

    本文将介绍在Java程序中如何将Excel工作簿转为PDF文档的,包括: 将整个工作簿转为PDF 将指定工作表转为PDF   使用工具:Free Spire.XLS for Java (免费版) Ja ...

  5. C#中使用自定义的纸张大小

    using System.Drawing.Printing; using System.Drawing; private void Test() { PrintDocument m_pdoc = ne ...

  6. Java 将Excel转为SVG的方法

    本文以Java示例展示如何将Excel文档转为SVG格式.通过本文中的方法,在将Excel转为SVG时,如果sheet工作表中手动设置了分页,则将每个分页的内容单独保存为一个svg文件,如果sheet ...

  7. Java 将Excel转为XML

    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通常,我们可以通过格式转换的方式来得到XML格式的文件.本文,将通过Java代码介绍如何实现由Excel ...

  8. java 实现Word或Excel 转Pdf

    1:首先需要引入相关的jar word转pdf需要引入 aspose-words-15.8.0-jdk16.jar 下载JAR包 Word http://note.youdao.com/notesha ...

  9. 多页Excel转换成PDF时如何保存为单独文件

    通过ABBYY PDF Transformer+图文识别软件,使用PDF-XChange打印机将多页Excel工作簿转换成PDF文档(相关文章请参考ABBYY PDF Transformer+从MS ...

随机推荐

  1. OGG-如何只同步最近某个时间范围的数据

    一.需求,某客户希望使用OGG只同步时间大于2021-02-01日期之后的数据变换 需求如标题所示,如何使用OGG进行配置? 客户环境需要同步的表有几百G,表数据太大了;如果同步所有数据,目标库空间存 ...

  2. 使用.NET(C#或VB.NET)开发NX外部程序

    1.如何不用将exe程序拷贝到UGII目录下运行? 答:在调用NX Open命令函数前,将当前目录移动到NX安装目录\UGII\,NX安装目录必须和环境变量UGII_BASE_DIR的值一致,否则报错 ...

  3. 【c++ Prime 学习笔记】第17章 标准库特殊设施

    17.1 tuple类型 tuple是类似pair的模板: pair和tuple的成员类型都可以不相同 pair恰好有两个成员,tuple可有任意数量的成员 按照不同参数数量和类型实例化出的tuple ...

  4. 【二食堂】Alpha - Scrum Meeting 9

    Scrum Meeting 9 例会时间:4.19 13:00~13:20 进度情况 组员 昨日进度 今日任务 李健 1. "文本区域"栏目完成,可实现实体和关系的添加issue ...

  5. kafka生产者和消费者api的简单使用

    kafka生产者和消费者api的简单使用 一.背景 二.需要实现的功能 1.生产者实现功能 1.KafkaProducer线程安全的,可以在多线程中使用. 2.消息发送的key和value的序列化 3 ...

  6. 2021.9.13考试总结[NOIP模拟52]

    T1 路径 考虑每一位的贡献,第$i$位每$2^i$个数会变一次,那么答案为$\sum_{i=1}^{log_2n} \frac{n}{2^i}$. $code:$ 1 #include<bit ...

  7. ACL实验

    ACL实验 基本配置:略 首先根据题目策略的需求1,从这个角度看,我们需要做一条高级ACL,因为我们不仅要看你是谁,还要看你去干什么事情,用高级ACL来做的话,对于我们华为设备,只写拒绝,因为华为默认 ...

  8. C++ IO基础

    一:c++I/O处理,按照数据输入输出的过程,形象的将其看做流.数据在流中进行传播. 所有的流有两个基类:ios和streambuf类 streambuf:提供对缓冲区的基本操作,设置缓冲区等 ios ...

  9. JavaScript 简单介绍

    一.简介 JavaScript是一门面向对象的动态语言,他一般用来处理以下任务: 修饰网页 生成HTML和CSS 生成动态HTML内容 生成一些特效 提供用户交互接口 生成用户交互组件 验证用户输入 ...

  10. React 三大属性state,props,refs以及组件嵌套的应用

    React 三大属性state,props,refs以及组件嵌套的应用 该项目实现了一个简单的表单输入添加列表的内容 代码如下 <!DOCTYPE html> <html> & ...