Spire.PDF is a professional PDF library applied to creating, writing, editing, handling and reading PDF files without any external dependencies. Get free and professional technical support for Spire.PDF for .NET, Java, Android, C++, Python.

Mon Mar 18, 2019 1:32 pm

PDF文件是横向A4格式,需要在第一页指定位置插入一个条码,发现插入的条码是纵向的,如何处理把条码变成横向?
另外如何检测PDF文件是纵向/横向排版?

hitech
 
Posts: 11
Joined: Mon Mar 18, 2019 1:17 pm

Tue Mar 19, 2019 4:23 am

Hello,

感谢咨询。
请通过下面JudgeOrientation()方法判断PDF页面的排版方向。另外,通过模拟测试您的问题,我这边生成的结果条码是横向的(请参照附件)。以下是我的测试代码。建议您下载我们最新的版本(Spire.PDF Pack(Hot Fix) Version:5.3.8)再测试一下。如果测试后还是有问题,请提供您的测试文档以便我们做进一步的调查。您也可以通过邮箱([email protected])发送给我们。
Code: Select all
   static void Main(string[] args)
   {
       //加载PDF
       PdfDocument pdf = new PdfDocument();
       pdf.LoadFromFile(@"test.pdf");
       PdfPageBase page=  pdf.Pages[0];
       //判断PDF页面的排版方向
       PdfPageOrientation orientation = JudgeOrientation(page);
       //插入条码到PDF第一页
       PdfCodabarBarcode barcode = new PdfCodabarBarcode("00:12-3456/7890");
       barcode.Draw(page, new PointF(50, 200));
       //保存新建PDF
       pdf.SaveToFile("结果.pdf", Spire.Pdf.FileFormat.PDF);
   }
      //判断PDF页面的排版方向
       private static PdfPageOrientation JudgeOrientation(PdfPageBase page)
   {
           PdfPageOrientation orientation;
           float width = page.Size.Width;
           float height = page.Size.Height;
           //对比高宽值进行判断
           if (width > height)
           {
               Console.WriteLine("Landscape");
               orientation = PdfPageOrientation.Landscape;
           }
           else
           {
               Console.WriteLine("Portrait");
               orientation = PdfPageOrientation.Portrait;
           }
           return orientation;
   }

Sincerely,
Lisa
E-iceblue support team
User avatar

Lisa.Li
 
Posts: 1536
Joined: Wed Apr 25, 2018 3:20 am

Tue Mar 19, 2019 4:30 am

谢谢详细的说明,PDF是横向的报表,不需要调整。
只是插入的BARCODE变成了纵向的,只要把条码向左旋转90度即可满足需求。
是否有方法设置条码的旋转角度?

hitech
 
Posts: 11
Joined: Mon Mar 18, 2019 1:17 pm

Tue Mar 19, 2019 6:17 am

Hello,

在添加条码之前,你可以尝试用下面代码先将PDF页面旋转90度。需要提醒的是,旋转之后添加的坐标需要相应调整。如果测试还是有问题,请提供您的测试文档和期望的结果效果,我们将做进一步的调查并提供相应方案给您。
Code: Select all
......
page.Canvas.RotateTransform(-90);
barcode.Draw(page, new PointF(-200, 50));
......

Sincerely,
Lisa
E-iceblue support team
User avatar

Lisa.Li
 
Posts: 1536
Joined: Wed Apr 25, 2018 3:20 am

Tue Mar 19, 2019 6:31 am

此方法管用,太感谢了!

hitech
 
Posts: 11
Joined: Mon Mar 18, 2019 1:17 pm

Tue Mar 19, 2019 7:12 am

Hello,

感谢您的反馈!在使用我们产品过程中,若有任何问题,请随时联系。

Sincerely,
Lisa
E-iceblue support team
User avatar

Lisa.Li
 
Posts: 1536
Joined: Wed Apr 25, 2018 3:20 am

Return to Spire.PDF

cron