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();
相关推荐
nzz_1712141 小时前
PHP程序员转型AI岗位指南:核心技能、北京就业市场与转型路径分析
开发语言·人工智能·php
Risehuxyc1 小时前
C# 将doc转换为docx
开发语言·c#·xhtml
多加点辣也没关系2 小时前
JavaScript|第24章:事件循环与并发模型
开发语言·javascript·ecmascript
ん贤2 小时前
怎么设计,才算一个优秀审计模块
大数据·开发语言·设计·审计
l1t3 小时前
测试用rust重写的postgresql: pgrust
开发语言·postgresql·rust
2501_948106913 小时前
计算机毕业设计之jsp-智慧旅游分享平台
java·开发语言·spark·汽车·课程设计·旅游
阿里云云原生3 小时前
Agent 不再是“玩具”!AgentScope Java 2.0 GA 发布:构建企业级分布式智能体底座
java·开发语言·分布式·agentscope
BIM云平台开发3 小时前
【App.vue里跟踪页面跳转和用户ID】
开发语言·前端·javascript
NiceCloud喜云3 小时前
ClaudeAPI 接入 n8n / Dify / Open WebUI 实战:Base URL 配置、调用示例与排错
开发语言·ai·chatgpt·aigc
庵中十三居士3 小时前
【纯AI无人工修改】AI Agent从0到1实战:50行Python手写核心循环,一次看懂所有Agent框架的底层逻辑
开发语言·人工智能·python