itextsharp .net中如何设置两个表格的间距设为0,取网站的域名,协议、端口、当前站点目录的地址

在 iTextSharp(.NET 版 PDF 操作库)中,两个表格间距设为 0 核心是:清除表格的默认边距、间距,并用 PdfPTable.SpacingBefore = 0 强制消除上方间距

直接给你可直接复制运行的完整代码 ,保证两个表格无缝贴合、间距为 0

一、最终可用代码(C#)

csharp

运行

复制代码
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace iTextSharpTableZeroSpacing
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 创建文档
            Document doc = new Document(PageSize.A4);

            // 2. 创建PDF写入流
            string outputPath = "TwoTablesZeroSpacing.pdf";
            PdfWriter.GetInstance(doc, new FileStream(outputPath, FileMode.Create));

            // 3. 打开文档
            doc.Open();

            // ==============================================
            // 第一个表格
            // ==============================================
            PdfPTable table1 = new PdfPTable(1); // 1列
            table1.DefaultCell.Border = Rectangle.BOX; // 显示边框方便看间距
            table1.AddCell("表格 1");

            // 关键:清除所有边距
            table1.SpacingAfter = 0; // 表格下方间距 = 0

            // 添加到文档
            doc.Add(table1);

            // ==============================================
            // 第二个表格(关键:SpacingBefore = 0)
            // ==============================================
            PdfPTable table2 = new PdfPTable(1);
            table2.DefaultCell.Border = Rectangle.BOX;
            table2.AddCell("表格 2");

            // 核心:设置表格**上方间距 = 0**(消除和上一个表格的距离)
            table2.SpacingBefore = 0;  
            table2.SpacingAfter = 0;

            // 添加第二个表格
            doc.Add(table2);

            // 4. 关闭文档
            doc.Close();

            Console.WriteLine($"PDF 已生成:{outputPath}");
            Console.ReadLine();
        }
    }
}

二、让两个表格间距为 0 的3 个关键属性

只要给表格设置这 3 个值,间距就一定是 0:

  1. table1.SpacingAfter = 0 第一个表格底部不留间距

  2. table2.SpacingBefore = 0 第二个表格顶部不留间距(最关键)


三、如果你想完全无缝、连边框都贴在一起

再额外加一句:

csharp

运行

复制代码
// 让表格紧贴文档边缘,不产生默认留白
table1.WidthPercentage = 100;
table2.WidthPercentage = 100;

总结

  1. 两个表格间距为 0 = SpacingAfter=0 + SpacingBefore=0
  2. 必须给第二个表格 设置 SpacingBefore = 0

//取网站的域名,协议、端口、当前站点目录的地址

cs 复制代码
     string urlCode = "http://job.xxx.com:9248/#/pages/businessProcess/PurApply_Detail?Fid=" + FKEYVALUE;
     string picCode = this.baseDir + "PurApply_" + FKEYVALUE + ".jpg";
     urlCode = Globals.CreateQRCode(urlCode, picCode, false, ImageFormats.Jpeg);
     string url = HttpContext.Current.Request.Url.ToString();

     Uri uri = new Uri(url);
     string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;


     string fileDate = usersInfo.UserID + "_" + FKEYVALUE;
     string fileNamePdf = requested + "/FilePDF/PurApply/" + fileDate + ".pdf";

     string fileNamePdf2 = System.AppDomain.CurrentDomain.BaseDirectory + "/FilePDF/PurApply/" + fileDate + ".pdf";
     iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 15, 15, 15, 15);
     object value = PdfWriter.GetInstance(doc, new FileStream(fileNamePdf2, FileMode.Create));
     doc.Open();
相关推荐
萧瑟余晖19 分钟前
Java深入解析篇十七之SpringCloud
java·开发语言
ttod_qzstudio1 小时前
Java 常用语法极简通关(五):类与对象——字段、方法、构造器、this 与 static
java·开发语言·python
萧瑟余晖2 小时前
Java深入解析篇十七之Spring Security
java·开发语言·spring
北域码匠4 小时前
PID 控制算法完整详解(C# 原生实现,无第三方库)
c#·pid控制·工控开发·闭环控制·自动控制算法·数字pid·增量式pid
离陌在学C#5 小时前
C# 重载与重写:深入理解面向对象编程的核心概念
java·c#
二十雨辰5 小时前
[Java]-Spring面试题
java·开发语言
_oP_i5 小时前
python 后缀 mjs文件
开发语言·python
萧瑟余晖6 小时前
Java深入解析篇二十二之虚拟线程
java·开发语言
油丶酸萝卜别吃6 小时前
Java 集合类全景介绍
java·开发语言
Iruoyaoxh6 小时前
类和对象~
开发语言·c++