2013-11-27 2 views
3

Я использую itextsharp, и мне нужно нарисовать пунктирную линию от левой до правой части страницы (ширина 100%), но не знаю, как это сделать. У документа всегда есть запас слева направо. Пожалуйста, помогите enter image description hereitextsharp как добавить полный разрыв строки

var pageSize = PageSize.A4; 

     if (_pdfSettings.LetterPageSizeEnabled) 
     { 
      pageSize = PageSize.LETTER; 
     } 


     var doc = new Document(pageSize); 
     PdfWriter.GetInstance(doc, stream); 
     doc.Open(); 

     //fonts 

     var titleFont = GetFont(); 
     titleFont.SetStyle(Font.BOLD); 
     titleFont.Color = BaseColor.BLACK; 
     titleFont.Size = 16; 

     var largeFont = GetFont(); 
     largeFont.SetStyle(Font.BOLD); 
     largeFont.Color = BaseColor.BLACK; 
     largeFont.Size = 18; 

     int ordCount = orders.Count; 
     int ordNum = 0; 

     foreach (var order in orders) 
     { 

      var addressTable = new PdfPTable(3); 
      addressTable.WidthPercentage = 100f; 
      addressTable.SetWidths(new[] { 25, 37, 37 }); 


      // sender address 

      cell = new PdfPCell(); 
      //cell.Border = Rectangle.NO_BORDER; 
      cell.AddElement(new Paragraph("Người Gửi", titleFont)); 
      cell.AddElement(new Paragraph(_localizationService.GetResource("admin.orders.pdfinvoice.sender", lang.Id), smallFont)); 
      cell.AddElement(new Paragraph(_localizationService.GetResource("admin.orders.pdfinvoice.senderaddress", lang.Id), smallFont)); 
      cell.AddElement(new Paragraph(_localizationService.GetResource("PDFInvoice.Hotline", lang.Id), smallFont)); 
      cell.AddElement(new Paragraph("TAKARA.VN", largeFont)); 

      addressTable.AddCell(cell); 

      ...... 
      Chunk linebreak = new Chunk(new DottedLineSeparator()); 
       doc.Add(linebreak); 

       doc.Add(new Paragraph("")); 
      .... 
} 

ответ

0

Пожалуйста, обратите внимание на пример FullDottedLine.

Вы создаете DottedLineSeparator, из которых процент по умолчанию составляет 100% по умолчанию. Эта 100% - полная доступная ширина с поквартами страницы. Если вы хотите, чтобы линия превысила доступную ширину, вам нужен процент, превышающий 100%.

В этом примере используются размер страницы по умолчанию (A4) и поля по умолчанию (36). Это означает, что ширина страницы составляет 595 пользовательских единиц, а доступная ширина равна 595 - (2 x 36) единицам пользователя. Процент, необходимый для охвата полной ширины страницы, равен 100 x (595/523).

Посмотрите полученный файл PDF full_dotted_line.pdf, и вы увидите, что линия теперь проходит через поля.

+0

благодарит за вашу помощь. однако каким-то образом my itextsharp для .net не имеет метода setPercentage. –

+0

какую версию вы используете? –

+0

Я использую 5.4.4 https://www.nuget.org/packages/itextsharp/ –

Смежные вопросы