社区首页 >问答首页 >防止MigraDoc中的段落分裂

防止MigraDoc中的段落分裂
EN

Stack Overflow用户
提问于 2015-11-12 16:04:05
回答 1查看 1.9K关注 0票数 2

我使用MigraDoc从一些数据库表生成c#中的PDF文件。

我的主要问题是,对于我补充的一些段落,它们不能插入到当前的页面中,所以被分割到下一页,它如何被阻止?我希望他们在一页(当前页或下一页)。

代码语言:javascript
代码运行次数:0
复制
        Document doc = new Document();
        Section section = doc.AddSection();
        Paragraph paragraph = section.AddParagraph();
        paragraph.AddLineBreak();
        paragraph.AddLineBreak();
        paragraph.AddLineBreak();

        paragraph.Format.TabStops.ClearAll();
        paragraph.Format.TabStops.AddTabStop("16cm", TabAlignment.Right, TabLeader.Lines);
        paragraph.AddTab();

        for (int i = 0; i < 20; i++)
        {

            Paragraph paragraphBody = paragraph.Section.AddParagraph();

            FormattedText ft = paragraphBody.AddFormattedText("This is a title", TextFormat.Bold);
            ft.Italic = true; ft.Font.Size = 11;
            ft.Font.Color = Color.FromRgbColor((byte)255, Color.Parse("0x1E9BC6")); //equal to rgb(30, 155, 196);
            ft.AddLineBreak();

            //--detail:---adding text---------------------------------

            String DetailText = "This is detail. This is detail. This is detail.This is detail.This is detail.This is detail.This is detail.This is detail. This is detail. This is detail. This is detail. This is detail. This is detail. This is detail. This is detail. This is detail. ";

            FormattedText ftdet;
            ftdet = paragraphBody.AddFormattedText(DetailText, TextFormat.NotBold);
            ftdet.Font.Size = 10;
            ftdet.Font.Name = "Arial";
            ftdet.AddLineBreak();
            ftdet.AddLineBreak();

            ftdet.AddText("Event Date: " + DateTime.Now.ToString("MM/dd/yyyy h:mm tt"));
        }

        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false, PdfFontEmbedding.Always);
        pdfRenderer.Document = doc;
        pdfRenderer.RenderDocument();

        //Save the PDF to a file:
        string filename = "e:\\Report" +    DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".pdf";
pdfRenderer.PdfDocument.Save(filename);

        Process.Start(filename);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-12 23:52:00

段落在KeepTogether成员中有一个Format属性。如果属实,该段的所有行都保留在一页内。

还有一个KeepWithNext属性。如果属实,该段的最后一行将与下一段的第一行放在同一页上。

如果您有一个段落,只需编写如下代码:

代码语言:javascript
代码运行次数:0
复制
paragraphBody.Format.KeepTogether = true;

另请参阅:

http://www.nudoq.org/#!/Packages/PDFsharp-MigraDoc-GDI/MigraDoc.DocumentObjectModel/ParagraphFormat

表格单元格永远不会跨越页面。因此,当应用于表格单元格中的段落时,属性KeepTogetherKeepWithNext没有任何影响。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33683728

复制
相关文章
C++11模板:如何判断类中是否有指定名称的成员变量?
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51113805
10km
2019/05/25
4.2K0
动态调用类中的方法(无)(有)参数
1、Type类,方法用Invoke调用的时候就 使用null:表示该方法是无参数的
静心物语313
2020/03/24
2.6K0
powershell: 判断PSObject中是否有指定property的靠谱方法
如何判断一个PSObject中是否定义指定名称的属性,下面的代码中举出了三个方法 $test=New-Object PSObject -Property @{ compiler=$null
10km
2018/01/03
1.1K0
less中的可变参数
当前我们的混合的参数都需要传递,如果都需要全部传递可以使用 @arguments,@arguments 代表着就是你传入的所有参数,less 中的 @arguments 和 js 中的 arguments 一样,可以拿到传递进来的所有形参,这个时候你就不用足一的赋值,如下
程序员 NEO
2023/09/29
2090
less中的可变参数
Sass中的可变参数
SASS 中的可变参数和 LESS 中也一样,只不过由于 SASS 不是使用 JS 实现的,所以不能直接在混合中使用 arguments,必须通过 $args... 的格式来定义可变参数,然后通过 $args 来使用,注意点:和 LESS 一样可变参数必须写在形参列表的最后:
程序员 NEO
2023/09/29
1890
Sass中的可变参数
【C++11】移动赋值 | 新的类功能 | 可变参数模板
C++98中 没有移动赋值和移动构造 ,只有参数为左值 的赋值重载(operator=)和拷贝构造
lovevivi
2023/10/17
1980
【C++11】移动赋值 | 新的类功能 | 可变参数模板
C/C++开发基础——可变参数与可变参数模板
1.如果可变参数的参数类型相同,可以使用标准库中的initializer_list。
Coder-ZZ
2023/09/04
7170
C/C++开发基础——可变参数与可变参数模板
【JavaSE】可变参数的基本使用
可变参数 1. 基本概念 Java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法 就可以通过可变参数实现 2. 基本语法 访问修饰符 返回类型 方法名(数据类型... 形参名) { } 3. 快速入门案例 VarParameter01.java 看一个案例 类 XdrMethod,方法 sum 【可以计算 2 个数的和,3 个数的和 , 4. 5, ...】 public int sum(int n1, int n2){ return n1 + n2; }
兮动人
2021/12/30
4400
Java 开发中可变参数个数的方法 原
在 J2SE 5 以前,可以使用数组来实现向一个方法中传入个数可变的参数的目的,比较典型的应用场景就是 main 方法。
LeoXu
2018/08/15
1.1K0
python中函数的可变参数
print(1,2,"hello","刘金玉编程","编程创造城市",end="$$$")
刘金玉编程
2019/07/30
2.2K0
小朋友,你是否有很多的 GC ?
GC 即 Garbage Collection,中文 意思“垃圾回收”,在有GC之前,我们手动去管理内存,如果你忘记标记某一处已经不再使用的内存,那么这块内存将永远不会被系统回收,也就是常说的 “内存泄露”。
代码宇宙
2023/02/23
4020
Logback排除指定包/类/方法日志输出
Logback排除指定包或者类或者方法的日志输出 在logback-spring.xml中添加如下代码,可以一直点下去 <!--包--> <logger name="com.newbie.dao" level="OFF"></logger> <!--类--> <logger name="com.newbie.dao.NbDdiMonitorDao" level="OFF"></logger> <!--方法--> <logger name="com.newbie.dao.NbDdiMonitorDao.upd
4xx.me
2022/06/10
4.6K0
Thymeleaf 指定多个路径作为模板目录
今天自己想在开发平台上增加一套前端的界面,突然想到自己还没有一套用来做展示用的cms系统,为了把cms的模板和后台的模板分开存放,试验了下怎么样设置多个模板路径,代码在此:
前Thoughtworks-杨焱
2021/12/07
1.6K0
可变数据类型不能作为python函数的参数
当使用列表作为参数传入函数时,实际上是引用传递。也就是传入的是实际参数的地址,而place=b也就是指向相同的地址。比如以下的:
西西嘛呦
2020/10/28
1.6K0
实例方法,类方法和静态方法的区别_python中类的所有实例方法
第一个参数是”self”,表示实例对象,通过它传递实例的属性和方法。只能由实例调用
全栈程序员站长
2022/09/20
2K0
【C++】C++11——新的类功能|default、delete|可变参数模板|emplace
在C++98中,如果要限制某些函数的生成,把该函数设置成private,并且只声明不实现
平凡的人1
2023/10/15
3480
【C++】C++11——新的类功能|default、delete|可变参数模板|emplace
可变参数的函数
C语言允许定义参数数量可变的函数,这称为可变参数函数(variadic function)。这种函数需要固定数量的强制参数,后面是数量可变的可选参数。其中,强制参数必须至少一个,可选参数数量可变,类型可变,可选参数的数量由强制参数的值决定。 C 语言中最常用的可变参数函数例子是 printf()和 scanf()。这两个函数都有一个强制参数,即格式化字符串。格式化字符串中的转换修饰符决定了可选参数的数量和类型。 可变参数函数格式:int fun(int a,...)
用户7272142
2023/10/11
2300
IDEA使用模板自动生成类注释和方法,解决方法注释在接口中或普通类的方法外使用模板注释不带参数的情况
参考: idea 自动生成类注释和方法注释的实现步骤-脚本之家 使用groovy脚本生成idea方法注释参数格式对齐
全栈程序员站长
2022/09/27
1.4K0
IDEA使用模板自动生成类注释和方法,解决方法注释在接口中或普通类的方法外使用模板注释不带参数的情况
【Go 语言社区】Golang 可变参数的使用
func main() { Func1(1,2,3,4) } func Func1(args ...int) { for _, res := range args { fmt.Println(res) } Func2(args...) Func3(args[2:]...) } func Func2(args ...int) { fmt.Println("----")
李海彬
2018/03/19
8090
点击加载更多

相似问题

是否有一种使用可变模板作为参数的方法?

25

是否有一种方法可以部分匹配可变模板参数包?

21

模板类的朋友operator<<,带有附加的默认模板参数

13

使用可变模板作为类和方法的参数

15

重载模板类的朋友operator<<

59
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文