Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何确定iTextSharp Basefont默认样式_Asp.net_Itextsharp - Fatal编程技术网

Asp.net 如何确定iTextSharp Basefont默认样式

Asp.net 如何确定iTextSharp Basefont默认样式,asp.net,itextsharp,Asp.net,Itextsharp,我正在使用iTextSharp创建PDF 该过程的一部分将直接文本添加到PDF,另一部分创建相同文本的大纲 对于straighforward文本方面,我使用iTextSharp中的ShowTextAligned方法;它需要Basefont,并且无法设置样式 对于轮廓,我正在创建GDI GraphicsPath以获取点,然后将点转换为PDF曲线/线等。AddString方法需要Drawing.FontStyle 现在我的问题是,我需要将AddString的样式设置为BaseFont所使用的样式。也

我正在使用iTextSharp创建PDF

该过程的一部分将直接文本添加到PDF,另一部分创建相同文本的大纲

对于straighforward文本方面,我使用iTextSharp中的ShowTextAligned方法;它需要Basefont,并且无法设置样式

对于轮廓,我正在创建GDI GraphicsPath以获取点,然后将点转换为PDF曲线/线等。AddString方法需要Drawing.FontStyle

现在我的问题是,我需要将AddString的样式设置为BaseFont所使用的样式。也就是说,如果Basefont呈现为Regular,我需要将AddString fontstyle设置为Regular

如何确定ShowTextAligned中的BaseFont使用的样式

进一步资料:

我也尝试过使用专栏文字;它允许您设置iTextSharp字体及其样式。尽管使用此方法会产生近似样式的字体;也就是说,一个字体通常是规则的,并且设置为粗体,这会导致粗体字体的格式有点不正确

编辑

当我说我需要传入BaseFont以显示TextAligned时,我的意思是为了使用此方法,必须首先使用PdfContentByte的SetFontAndSize设置字体和大小-正是此方法需要BaseFont


我知道我肯定错过了一些明显的东西。。我只是看不见树木:)

你可以尝试预先定义基本字体,并在整个PDF文档中使用它

示例代码:

BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);

Font times = new Font(bfTimes, 12, Font.ITALIC, Color.RED);
上面几行创建了一个BaseFont对象,并使用内置的常量值来设置字体系列和编码。它还指定在PDF文档中嵌入字体为false。使用BaseFont对象创建一个新的Font对象,并进一步设置字体大小(以点为单位)、样式和颜色-同样,使用iTextSharp的常量来设置这些值


有关BaseFont的更多信息,请参阅其。

您可以使用SetColorFill方法。像这样

content.BeginText();
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252,BaseFont.NOT_EMBEDDED);
content.SetFontAndSizebaseFont, 12);
BaseColor baseColor = new BaseColor(255, 0, 0);
content.SetColorFill(baseColor);
//or use predefined colors 
content.SetColorFill(BaseColor.RED);
// use ShowTextAligned method
content.EndText();

但这并不能解决我遇到的问题——我不知道ShowTextAligned方法使用的是什么样式;它接受基本字体而不是字体。还是我遗漏了什么?最后,我想知道BaseFont使用的是什么样式。再举一个例子。如果我使用Comic Sans MS将ShowText与基本字体对齐,则会使用粗体样式。库珀黑使用常规的颜色。这可以通过创建PDF,将其放入Illustrator并键入相同的文本来澄清;玩弄这种风格,看看有什么搭配。不知道为什么会投反对票。一个解释可能会有所帮助。