本文整理匯總了C#中iTextSharp.text.pdf.PdfContentByte.Transform方法的典型用法代碼示例。如果您正苦於以下問題:C# PdfContentByte.Transform方法的具體用法?C# PdfContentByte.Transform怎麽用?C# PdfContentByte.Transform使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類iTextSharp.text.pdf.PdfContentByte
的用法示例。
在下文中一共展示了PdfContentByte.Transform方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Layout
virtual public int Layout(PdfContentByte canvas, bool useAscender, bool simulate, float llx, float lly, float urx, float ury)
{
float leftX = Math.Min(llx, urx);
float maxY = Math.Max(lly, ury);
float minY = Math.Min(lly, ury);
float rightX = Math.Max(llx, urx);
yLine = maxY;
bool contentCutByFixedHeight = false;
if (width != null && width > 0)
{
if (width < rightX - leftX)
rightX = leftX + (float) width;
else if (width > rightX - leftX)
return ColumnText.NO_MORE_COLUMN;
}
else if (percentageWidth != null)
{
contentWidth = (rightX - leftX)*(float) percentageWidth;
rightX = leftX + contentWidth;
}
if (height != null && height > 0)
{
if (height < maxY - minY)
{
contentCutByFixedHeight = true;
minY = maxY - (float) height;
}
else if (height > maxY - minY)
{
return ColumnText.NO_MORE_COLUMN;
}
}
else if (percentageHeight != null)
{
if (percentageHeight < 1.0)
contentCutByFixedHeight = true;
contentHeight = (maxY - minY)*(float) percentageHeight;
minY = maxY - contentHeight;
}
if (!simulate && position == PdfDiv.PositionType.RELATIVE)
{
float? translationX = null;
if (left != null)
translationX = left;
else if (right != null)
translationX = -right;
else
translationX = 0f;
float? translationY = null;
if (top != null)
translationY = -top;
else if (bottom != null)
translationY = bottom;
else
translationY = 0f;
canvas.SaveState();
canvas.Transform(new AffineTransform(1f, 0, 0, 1f, translationX.Value, translationY.Value));
}
if (!simulate)
{
if (backgroundColor != null && getActualWidth() > 0 && getActualHeight() > 0)
{
float backgroundWidth = getActualWidth();
float backgroundHeight = getActualHeight();
if (width != null)
backgroundWidth = width > 0 ? (float) width : 0;
if (height != null)
backgroundHeight = height > 0 ? (float) height : 0;
if (backgroundWidth > 0 && backgroundHeight > 0)
{
Rectangle background = new Rectangle(leftX, maxY - backgroundHeight, leftX + backgroundWidth, maxY);
background.BackgroundColor = backgroundColor;
PdfArtifact artifact = new PdfArtifact();
canvas.OpenMCBlock(artifact);
canvas.Rectangle(background);
canvas.CloseMCBlock(artifact);
}
}
}
if (percentageWidth == null)
contentWidth = 0;
if (percentageHeight == null)
contentHeight = 0;
minY += paddingBottom;
leftX += paddingLeft;
rightX -= paddingRight;
yLine -= paddingTop;
int status = ColumnText.NO_MORE_TEXT;
if (content.Count > 0) {
if (floatLayout == null) {
//.........這裏部分代碼省略.........
示例2: Layout
virtual public int Layout(PdfContentByte canvas, bool useAscender, bool simulate, float llx, float lly, float urx, float ury)
{
float leftX = Math.Min(llx, urx);
float maxY = Math.Max(lly, ury);
float minY = Math.Min(lly, ury);
float rightX = Math.Max(llx, urx);
yLine = maxY;
bool contentCutByFixedHeight = false;
if (width != null && width > 0)
{
if (width < rightX - leftX)
rightX = leftX + (float) width;
else if (width > rightX - leftX)
return ColumnText.NO_MORE_COLUMN;
}
else if (percentageWidth != null)
{
contentWidth = (rightX - leftX)*(float) percentageWidth;
rightX = leftX + contentWidth;
}
else if (percentageWidth == null)
{
if (this.floatType == FloatType.NONE && (this.display == DisplayType.DEFAULT_NULL_VALUE ||
this.display == DisplayType.BLOCK || this.display == DisplayType.LIST_ITEM ||
this.display == DisplayType.RUN_IN))
{
contentWidth = rightX - leftX;
}
}
if (height != null && height > 0)
{
if (height < maxY - minY)
{
contentCutByFixedHeight = true;
minY = maxY - (float) height;
}
else if (height > maxY - minY)
{
return ColumnText.NO_MORE_COLUMN;
}
}
else if (percentageHeight != null)
{
if (percentageHeight < 1.0)
contentCutByFixedHeight = true;
contentHeight = (maxY - minY)*(float) percentageHeight;
minY = maxY - contentHeight;
}
if (!simulate && position == PdfDiv.PositionType.RELATIVE)
{
float? translationX = null;
if (left != null)
translationX = left;
else if (right != null)
translationX = -right;
else
translationX = 0f;
float? translationY = null;
if (top != null)
translationY = -top;
else if (bottom != null)
translationY = bottom;
else
translationY = 0f;
canvas.SaveState();
canvas.Transform(new AffineTransform(1f, 0, 0, 1f, translationX.Value, translationY.Value));
}
if (!simulate)
{
if ((backgroundColor != null || backgroundImage != null) && getActualWidth() > 0 && getActualHeight() > 0)
{
float backgroundWidth = getActualWidth();
float backgroundHeight = getActualHeight();
if (width != null)
backgroundWidth = width > 0 ? (float) width : 0;
if (height != null)
backgroundHeight = height > 0 ? (float) height : 0;
if (backgroundWidth > 0 && backgroundHeight > 0)
{
Rectangle background = new Rectangle(leftX, maxY - backgroundHeight, leftX + backgroundWidth, maxY);
if (backgroundColor != null) {
background.BackgroundColor = backgroundColor;
PdfArtifact artifact = new PdfArtifact();
canvas.OpenMCBlock(artifact);
canvas.Rectangle(background);
canvas.CloseMCBlock(artifact);
}
if (backgroundImage != null) {
if (backgroundImageWidth == null) {
backgroundImage.ScaleToFit(background);
}
else {
backgroundImage.ScaleAbsolute((float)backgroundImageWidth, backgroundImageHeight);
}
backgroundImage.SetAbsolutePosition(background.Left, background.Bottom);
//.........這裏部分代碼省略.........