`
agao1985
  • 浏览: 4065 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Centered, multiline text using iTextSharp ColumnText

 
阅读更多




I am trying to center a block of multiline text using iTextSharp. I thought that using the ColumnText would do the trick, but I'm having some trouble getting both center alignment, as well as proper wrapping working at the same time.

Here is some code which shows the 2 methods I'm trying:

private void PrintLocationAddress(PdfContentByte Canvas, string Address)
{
    //define the regions for our ColumnText objects
    Rectangle rect1 = new Rectangle(150f, 300, 350f, 450f);
    Rectangle rect2 = new Rectangle(150f, 50f, 350f, 200f);

    //outline the rectangles so we can visualize placement of the ColumnText
    Canvas.Rectangle(rect1.Left, rect1.Bottom, rect1.Width, rect1.Height);
    Canvas.Rectangle(rect2.Left, rect2.Bottom, rect2.Width, rect2.Height);
    Canvas.SetColorStroke(BaseColor.CYAN);
    Canvas.Stroke();

    //define the text and style
    Chunk c = new Chunk(Address, new Font(Font.FontFamily.COURIER, 12, Font.NORMAL, BaseColor.MAGENTA));
    c.SetTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_FILL, 0, BaseColor.PINK);
    Phrase LongText = new Phrase(c);

    //this text is centered, but will wrap onto itself on the same line
    ColumnText column1 = new ColumnText(Canvas);
    column1.SetSimpleColumn(LongText, rect1.Left, rect1.Bottom, rect1.Right, rect1.Top, 0, PdfContentByte.ALIGN_CENTER);
    column1.Go();

    //this text will wrap, but how to center it?!
    ColumnText column2 = new ColumnText(Canvas);
    column2.SetSimpleColumn(rect2);
    column2.SetText(LongText);
    column2.Go();
}

You can view the output for the above code: http://imgur.com/Ty3oD7w
pdf-generation itextsharp
share|improve this question

asked Mar 1 '13 at 19:28
mgasparel
31839





I missed the ColumnText.Alignment property:

column2.Alignment = Element.ALIGN_CENTER;

So, to get Multiline text, centered, in a box of specified dimensions using ColumnText:

ColumnText column2 = new ColumnText(Canvas);
column2.SetSimpleColumn(rect2);
column2.SetText(LongText);
column2.Alignment = Element.ALIGN_CENTER;
column2.Go();

分享到:
评论

相关推荐

    reactnative-源码-text组件

    <Text style={{fontSize: 18, color: 'blue', textAlign: 'center'}}>Centered Text</Text> ``` React Native还提供了一些预定义的样式属性,如`fontWeight`和`fontStyle`,可以设置为`bold`、`italic`等。 3. *...

    User-Centered Design

    **以用户为中心的设计(User-Centered Design,UCD)**是一种以人为本的设计哲学,它强调在整个设计过程中充分考虑用户的需要、能力和目标。在软件设计领域,UCD被广泛应用于创建易于使用、符合用户期望且功能强大的...

    User-Centered Design and Testing

    用户中心设计(User-Centered Design,UCD)和测试是软件开发中的关键环节,旨在确保产品能够满足最终用户的需求和期望。本课程结合了两个主要部分:一是教授如何编程交互式用户界面;二是教导改进这些界面可用性的方法...

    A vision-centered multi-sensor fusing

    2017 A vision-centered multi-sensor fusing approach to self-localization and obstacle perception for robotic cars

    User-Centered_Systems_Design

    **用户为中心的系统设计(User-Centered Systems Design)**,简称UCSD,是一种设计理念和技术方法,旨在确保产品或服务的设计能够充分考虑用户的需求、能力和期望。这种方法强调从用户的视角出发,通过深入理解用户的...

    Field Guide to Human-Centered Design

    《Field Guide to Human-Centered Design》是***发布的一本关于以用户为中心的设计理念的指南书籍。这本书详细介绍了如何运用设计思维去解决复杂问题,并在各种不同领域中应用人类中心设计方法。书中不仅包括了理论...

    Mathematica:A Problem-Centered Approach2010

    《Mathematica:A Problem-Centered Approach》是一本由Roozbeh Hazrat所著,专门面向Mathematica软件的入门教材。本书因其短小精悍而被推荐为Mathematica学习的最佳入门资料,全书超过200页,用英文编写,非常适合...

    Big Data for Urban Sustainability_A Human-Centered Perspective(2018).pdf

    - **标题**:“Big Data for Urban Sustainability_A Human-Centered Perspective(2018).pdf” - **核心概念**:此书探讨了大数据如何应用于促进城市的可持续发展,并强调了在这一过程中采取以人为本的方法的重要性...

    Block-centered finite difference method for Non-Fickian Flow in Porous Media

    多孔介质中的非Fickian 流的块中心有限差分方法,芮洪兴,李晓丽,在本文中,为解决在多孔介质非Fickian流中出现的抛物型积分微分方程,介绍并分析了一种块中心有限差分方法。这是一种向后Euler格式,在时

    sublime text2常用配置

    12. **draw_centered**: 设置为`false`表示文本不会居中显示。 13. **draw_indent_guides**: 设置为`true`表示显示缩进指南。 14. **draw_minimap_border**: 设置为`false`表示不绘制迷你地图边框。 15. **draw_...

    Task-Centered System Design

    任务中心系统设计(Task-Centered System Design)是一种专注于最终用户需求和他们具体任务的设计方法,旨在创建更加直观、高效和用户友好的系统界面。这种方法强调理解用户在完成特定任务时的需求,通过系统的功能...

    用C#编写图形美丽的眼睛,图形容器的应用,C#源代码// Draw an ellipse centered at (100,

    用C#编写图形美丽的眼睛,图形容器的应用,C#源代码// Draw an ellipse centered at (100, 100). Graphics myGraphics=e.Graphics; Pen myBlackPen=new Pen(Color.Black); myGraphics.TranslateTransform...

    Chapter 16 Drawing Text vb版

    g.DrawString("Centered Text", font, brush, new RectangleF(10, 10, 100, 50), align) ``` 这里设置了文本居中对齐,并指定了绘制文本的矩形区域。 - **Word Wrap** 在某些情况下,文本可能需要自动换行以适应...

    User Centered System Design New Perspectives on Human-Computer Interaction

    User Centered System Design New Perspectives on Human-Computer Interaction, Norman, Draper, 1986

    user-centered web design

    在IT行业的设计领域,"user-centered web design"(用户中心的网页设计)是一个核心概念,它强调了在创建网站或应用程序时将用户体验放在首位的重要性。这种方法不仅关注技术实现,更注重用户需求、行为和偏好,旨在...

    CSS控制文字在一条线的中间.rar

    .centered-text { line-height: 50px; /* 设置为元素高度 */ } ``` 3. **display** 和 **flexbox**:CSS3引入了Flexbox布局模型,可以轻松地实现单行或多行文本的居中。例如: ```css .container { display:...

    地图构架Comparison of 3-D Coordinate Systems-Earth-Centered Earth-Fi

    Earth-Centered Earth-Fixed CoordinatesAn Earth-centered Earth-fixed (ECEF) system uses the Cartesian coordinates (X,Y,Z) to represent position relative to the center of the reference ellipsoid....

    _A_tutorial_and_implement_of_disease_centered_Med

    _A_tutorial_and_implement_of_disease_centered_Medi_QASystemOnMedicalKG

Global site tag (gtag.js) - Google Analytics