#c# #reactjs #pdf #itext #itext7
Вопрос:
Я новичок в использовании itext для создания PDF-файла. У меня была проблема, я добавил itext7 в свои ссылки
чтобы добавить файл pdf со значениями. Я хотел выровнять по центру и выделить жирным шрифтом текстовое поле в моем pdf-файле. Я посмотрел на различные примеры. Однако. SetBold и chunk показывают ошибку в visual studio.
Это функция, которую я вызываю для pdf.
[HttpGet]
[Route("GetCoilWiseReport")]
public HttpResponseMessage GetCoilWiseReport(string jwt, string fixture="", string
type="", string ID= "",
string delivery = "", string invoice = "", string wagon = "", string location = "",
string ICHP= "",string remarks="",string date="")
{
if (!Common.VerificationToken.VerifyJWToken(jwt))
{
return null;
}
var doc_date = DateTime.Now.Date.ToString("dd/MM/yyyy").Replace("-", "/");
var Type1 = type;
var id1 = ID;
var delivery1 = delivery;
var invoice1= invoice;
var wagon1 = wagon;
var location1 = location;
var ICHP1 = ICHP;
var remarks1 = remarks;
var date1 = date;
string pdfDocument = @"D:Annexure_One IT.pdf";//Utilities.ISOP_DOCS_FOLDER
"MasterDocs\SupplierDespatchATP.pdf";
var dateLine = "Date:" doc_date ;
var coilDetails = " COIL Details: " ID;
var firstRow = "Type : " type " ID:" ID " Delivery No:" delivery;
var secondRow = "Invoice No.:" invoice " Wagon No:" wagon " Location:" location;
var thirdRow = "ICHP : " ICHP " Remarks:" remarks;
PdfDocument pdf = new PdfDocument(new PdfWriter(pdfDocument));
//Add new page
PageSize ps = PageSize.A4;
PdfPage page = pdf.AddNewPage(ps);
PdfCanvas canvas = new PdfCanvas(page);
iText.Layout.Document iDoc = new iText.Layout.Document(pdf, ps);
PdfFont font = PdfFontFactory.CreateFont(StandardFonts.COURIER);
PdfFont fontBold = PdfFontFactory.CreateFont(StandardFonts.COURIER_BOLD);
IList<String> text = new List<String>();
text.Add("");
text.Add(dateLine);
text.Add("");
text.Add("");
text.Add(coilDetails);
text.Add("");
text.Add("");
text.Add(firstRow);
text.Add("");
text.Add("");
text.Add(secondRow);
text.Add("");
text.Add("");
text.Add(thirdRow);
text.Add("");
text.Add("");
text.Add("");
text.Add("");
text.Add("");
text.Add("signature");
;
foreach (String s in text)
{
//Add text and move to the next line
//canvas.NewlineShowText(s);
if (s == "signature")
{
List<string> coilURL = new List<string>();
List<string> coilView = new List<string>();
string connectionstring = Utilities.SQL_DB1;// our SQL DB connection
SqlConnection conn1 = new SqlConnection(connectionstring);
DataTable dt = new DataTable();
string query = "Select CCD_IMAGE_URL,CCD_VIEW_DESC from T_CQL_COIL_DESC
where CCD_COIL_ID = '" ID "'";
//SqlConnection conn = new SqlConnection(connectionstring);
SqlCommand cmd = new SqlCommand(query, conn1);
conn1.Open();
// create data adapter
SqlDataAdapter da = new SqlDataAdapter(cmd);
// this will query your database and return the result to your datatable
da.Fill(dt);
if (dt.Rows.Count > 0)
{
for (int i = 0; (i < dt.Rows.Count); i )
{
coilURL.Add(imgurl dt.Rows[i]["CCD_IMAGE_URL"].ToString());
coilView.Add(dt.Rows[i]["CCD_VIEW_DESC"].ToString());
var view = "View:" coilView[i];
var sig = coilURL[i];
iText.Layout.Element.Paragraph p1 = new
iText.Layout.Element.Paragraph().Add(view);
//p.SetMaxHeight(20);
iDoc.Add(p1);
iText.Layout.Element.Image sigImage = new
iText.Layout.Element.Image(ImageDataFactory.Create(sig));
sigImage.SetAutoScale(true);
iText.Layout.Element.Paragraph p = new
iText.Layout.Element.Paragraph().Add(sigImage);
//p.SetMaxHeight(20);
iDoc.Add(p);
}
}
conn1.Close();
da.Dispose();
}
else
{
iText.Layout.Element.Paragraph para = new
iText.Layout.Element.Paragraph(s);
para.SetFont(font);
para.SetFontSize(9);
iDoc.Add(para);
}
}
//iDoc.Close();
//Close document
iDoc.Close();
// Add Paragraph to document
pdf.Close();
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
httpResponseMessage.Content = new StreamContent(new FileStream(pdfDocument,
FileMode.Open, FileAccess.Read));
//httpResponseMessage.Content.Headers.ContentType = new
MediaTypeHeaderValue("application / vnd.openxmlformats -
officedocument.wordprocessingml.document");
httpResponseMessage.Content.Headers.ContentType = new
MediaTypeHeaderValue("application/pdf");
httpResponseMessage.Content.Headers.ContentDisposition = new
ContentDispositionHeaderValue("attachment");
httpResponseMessage.Content.Headers.ContentDisposition.FileName = "Coil_Detail"
fixture "_" ID "_" ".pdf";
httpResponseMessage.StatusCode = HttpStatusCode.OK;
return httpResponseMessage;
}
Я пытаюсь сделать хвостики смелыми и выровненными по центру. Как мне это сделать в текущем контексте. Пожалуйста, помогите
Комментарии:
1. «Я пытаюсь сделать койлдетали смелыми и выровненными по центру. Как мне это сделать в текущем контексте». — Ну, во-первых, в вашем текущем контексте ваша архитектура не предназначена для того, чтобы какая-либо текстовая строка была специально оформлена, потому что все они хранятся в простом списке строк. Конечно, если только эта строка нуждается в специальной обработке, вы можете запомнить ее позицию в списке в переменной, а позже, когда вы повторите список, проверьте, находитесь ли вы в этой позиции. Или вы можете добавить к этой строке префикс с маркером для проверки. Или может иметь параллельную структуру, содержащую такую информацию. Или…
Ответ №1:
Используйте p.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER);
для выравнивания его по центру и для установки его полужирным шрифтом после добавления попробуйте использовать .SetBold() или .setFont(жирным шрифтом)
Комментарии:
1. Привет, вы можете добавить код для текущего контекста. Я уже упоминал, что .установите жирный шрифт и p.установите выравнивание текста, что приводит к ошибке в visual studio в текущем контексте
Ответ №2:
Я делаю несколько сценариев с помощью itext7, используя linqpad.net в c#, но у меня нет проблем с преобразованием в visual studio. вот строка в C#
p = новый абзац(целевой текст).SetFontSize(12).SetTextAlignment(выравнивание текста.ОПРАВДАНО).SetFontColor(новое устройство (0, 153, 0)).СетБолд();
Комментарии:
1. это тот же ответ, что и у Anuj, но он показывает, как складывать команды 2 для одного и того же «p»; Я не пытаюсь добиться признания от Anuj.