Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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
C# 如何在iTextSharp中绘制垂直渐变?_C#_Itext_Gradient - Fatal编程技术网

C# 如何在iTextSharp中绘制垂直渐变?

C# 如何在iTextSharp中绘制垂直渐变?,c#,itext,gradient,C#,Itext,Gradient,我试图在iTextSharp pdf文档的底部绘制垂直渐变: PdfShading shading = PdfShading.SimpleAxial(pdfWriter, 0, document.PageSize.Height, document.PageSize.Width, 0, BaseColor.WHITE, BaseColor.GREEN); PdfShadingPattern pattern = new PdfSh

我试图在iTextSharp pdf文档的底部绘制垂直渐变:

PdfShading shading 
    = PdfShading.SimpleAxial(pdfWriter, 0, document.PageSize.Height, 
                             document.PageSize.Width, 0, BaseColor.WHITE, BaseColor.GREEN);
PdfShadingPattern pattern = new PdfShadingPattern(shading);
pdfContentByte.SetShadingFill(pattern);
pdfContentByte.Rectangle(0, 0, document.PageSize.Width, 70);
pdfContentByte.Fill();
这将在我希望创建的确切位置创建渐变,但渐变是从左(白色)到右(绿色)水平的

我希望渐变从顶部(白色)到底部(绿色)垂直。


像这里的某些人那样修改坐标()并不能解决问题。我还尝试旋转文档,但没有成功。

您使用了错误的坐标。在Java中,您需要以下内容:

public void createPdf(String dest) throws IOException, DocumentException {
    Rectangle pageSize = new Rectangle(150, 300);
    Document document = new Document(pageSize);
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    PdfShading shading = PdfShading.simpleAxial(writer,
            0, pageSize.getHeight(),
            0, 0,
            BaseColor.WHITE, BaseColor.GREEN);
    PdfShadingPattern pattern = new PdfShadingPattern(shading);
    PdfContentByte canvas = writer.getDirectContent();
    canvas.setShadingFill(pattern);
    canvas.rectangle(0, 0, pageSize.getWidth(), pageSize.getHeight());
    canvas.fill();
    document.close();
}
有关完整的示例代码,请参见

你看到区别了吗

  • 从左上角(
    0,document.PageSize.Height
    )到右下角(
    document.PageSize.Width,0
    )。那是对角线
  • 您希望从顶部(
    0,document.PageSize.Height
    )到底部(
    0,0
    ),这将导致以下结果:

明白了。非常感谢你。需要在不使用全高时进行轻微更改。。。但无论如何,就是这样。