iTextSharp制作PDF设置字体粗细和字体高矮问题

junming68 2011-10-14 09:50:58
现在用iTextSharp制作PDF,但是没法调整字体的粗细,使用cb.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE)这个方法,字体过于粗,有些地方都成疙瘩了...没法调整粗细程度。
在iText实战(第2版)这书中看到java中SetTextRenderingMode有三个参数,但C#中这个只有一个参数,请问还有什么方法可以调整文字加粗的程度?

想调整字的高度有什么办法?就是拉高或者拉低

PdfContentByte cb = writer.DirectContent;
BaseFont bfHei = BaseFont.CreateFont(@"C:\WINDOWS\fonts\FZZDXJW.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
cb.BeginText();
cb.SetFontAndSize(bfHei, 7);
cb.SetTextMatrix(115, 1724);
cb.ShowText("测试");
cb.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE)
cb.EndText();
这是所提供的一些方法:
public void Arc(float x1, float y1, float x2, float y2, float startAng, float extent);
public void EoFillStroke();
public void FillStroke();
public float GetEffectiveStringWidth(string text, bool kerned);
public static PdfTextArray GetKernArray(string text, BaseFont font);
public virtual void PaintShading(PdfShading shading);
public virtual void PaintShading(PdfShadingPattern shading);
public void SanityCheck();
public void SaveState();
public virtual void SetAction(PdfAction action, float llx, float lly, float urx, float ury);
public void SetCharacterSpacing(float value);
public virtual void SetColorStroke(BaseColor value);
public virtual void SetColorStroke(PdfSpotColor sp, float tint);
public virtual void SetDefaultColorspace(PdfName name, PdfObject obj);
public void SetFlatness(float value);
public virtual void SetFontAndSize(BaseFont bf, float size);
public virtual void SetGrayStroke(float value);
public void SetHorizontalScaling(float value);
public void SetMiterLimit(float value);
public virtual void SetPatternFill(PdfPatternPainter p);
public virtual void SetPatternFill(PdfPatternPainter p, BaseColor color);
public virtual void SetPatternFill(PdfPatternPainter p, BaseColor color, float tint);
public virtual void SetPatternStroke(PdfPatternPainter p);
public virtual void SetPatternStroke(PdfPatternPainter p, BaseColor color);
public virtual void SetPatternStroke(PdfPatternPainter p, BaseColor color, float tint);
public virtual void SetRGBColorStroke(int red, int green, int blue);
public virtual void SetRGBColorStrokeF(float red, float green, float blue);
public virtual void SetShadingFill(PdfShadingPattern shading);
public virtual void SetShadingStroke(PdfShadingPattern shading);
public void SetTextMatrix(Matrix transform);
public void SetTextMatrix(float x, float y);
public void SetTextMatrix(float a, float b, float c, float d, float x, float y);
public void SetTextRenderingMode(int value);
public void SetTextRise(float value);
public void SetWordSpacing(float value);
public void ShowText(PdfTextArray text);
public void ShowText(string text);
public void ShowTextAligned(int alignment, string text, float x, float y, float rotation);
public void ShowTextAlignedKerned(int alignment, string text, float x, float y, float rotation);
public void ShowTextKerned(string text);
public void Stroke();
public byte[] ToPdf(PdfWriter writer);
public override string ToString();
public void Transform(Matrix tx);
public void VariableRectangle(Rectangle rect);
...全文
1168 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧