мой методтип исключения преобразования
private void _fillText(string field, List<TextPart> parts, int alignment)
{
//fieldPosition: page, llx, lly, urx, ury
float[] fieldPosition = _pdfStamper.AcroFields.GetFieldPositions(field);
PdfContentByte pdfContentByte = _pdfStamper.GetOverContent(fieldPosition[0]);
foreach (TextPart tp in parts)
{
ColumnText myColumn = new ColumnText(pdfContentByte);
myColumn.RunDirection = _runDirection;
//if (_runDirection == PdfWriter.RUN_DIRECTION_RTL)
// tp.Font = _arialBlackFont12;
myColumn.SetSimpleColumn(Convert.ToInt32(fieldPosition[1]) + tp.LeftMargin
, fieldPosition[2]
, fieldPosition[3] - tp.RightMargin
, fieldPosition[4] - tp.TopMargin);
Phrase myPhrase = new Phrase(new Chunk(tp.Text));
//myPhrase.Font = font;
Paragraph myParagraph = new Paragraph();
myParagraph.Font = tp.Font;
myParagraph.Font.SetStyle(tp.FontStyle);
if (tp.Font == _lucidaSansGray60Font9)
myParagraph.Leading = 10;
if (tp.Leading != null)
myParagraph.Leading = tp.Leading.Value;
myParagraph.Alignment = alignment;
myParagraph.Add(myPhrase);
myColumn.AddElement(myParagraph);
myColumn.Go();
}
}
В строке
float[] fieldPosition = _pdfStamper.AcroFields.GetFieldPositions(field);
я получил ошибку cannot implicitly convert type system.collections.generic.IList<Itextsharp.text.pdf.acrofields.fieldposition> to float array
кто-нибудь сказать мне, как преобразовать. У меня есть вся моя логика, основанная на конверсии.
'всплывают [] fieldPosition = _pdfStamper.AcroFields.GetFieldPositions (поле) .Select (поз => // Сделайте некоторую логику для возврата float) .ToArray(); ' –
@SepehrFarshid *' ... Select (...) '* - к сожалению, это не совсем так просто, потому что каждый экземпляр позиции поля в исходном списке должен был бы быть расширенным до * пяти * поплавков. – mkl
Затем используйте 'SelectMany'! : D –