удаление комментов

This commit is contained in:
GokaPek 2024-10-01 10:26:35 +04:00
parent 1cd9ae93c9
commit 4e81c3f101
3 changed files with 7 additions and 18 deletions

View File

@ -27,19 +27,19 @@ namespace Library14Petrushin
throw new ArgumentException("Все входные данные должны быть заполнены."); throw new ArgumentException("Все входные данные должны быть заполнены.");
} }
// Создание документа
PdfDocument document = new PdfDocument(); PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage(); PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page); XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Verdana", 10); XFont font = new XFont("Verdana", 10);
// Отрисовка заголовка документа
gfx.DrawString(documentTitle, new XFont("Verdana", 16, XFontStyleEx.Bold), XBrushes.Black, new XRect(0, 0, page.Width, 50), XStringFormats.Center); gfx.DrawString(documentTitle, new XFont("Verdana", 16, XFontStyleEx.Bold), XBrushes.Black, new XRect(0, 0, page.Width, 50), XStringFormats.Center);
// Отрисовка заголовка диаграммы
gfx.DrawString(chartTitle, font, XBrushes.Black, new XRect(50, 50, page.Width - 100, 30), XStringFormats.Center); gfx.DrawString(chartTitle, font, XBrushes.Black, new XRect(50, 50, page.Width - 100, 30), XStringFormats.Center);
// Отрисовка круговой диаграммы
DrawPieChart(gfx, new XRect(50, 100, 300, 300), chartData, legendPosition); DrawPieChart(gfx, new XRect(50, 100, 300, 300), chartData, legendPosition);
// Сохранение документа // Сохранение документа
@ -74,14 +74,13 @@ namespace Library14Petrushin
break; break;
} }
// Отрисовка секторов диаграммы // Отрисовка секторов диаграммы и легенды
foreach (var data in chartData) foreach (var data in chartData)
{ {
double sweepAngle = 360 * (data.Value / total); double sweepAngle = 360 * (data.Value / total);
gfx.DrawPie(GetRandomBrush(), rect, startAngle, sweepAngle); gfx.DrawPie(GetRandomBrush(), rect, startAngle, sweepAngle);
startAngle += sweepAngle; startAngle += sweepAngle;
// Отрисовка легенды
gfx.DrawString(data.SeriesName, new XFont("Verdana", 8), XBrushes.Black, new XPoint(legendX, legendY)); gfx.DrawString(data.SeriesName, new XFont("Verdana", 8), XBrushes.Black, new XPoint(legendX, legendY));
legendY += 20; legendY += 20;
} }

View File

@ -42,13 +42,13 @@ namespace Library14Petrushin
throw new ArgumentException("Количество высот строк должно совпадать с количеством строк данных."); throw new ArgumentException("Количество высот строк должно совпадать с количеством строк данных.");
} }
// Создание документа
PdfDocument document = new PdfDocument(); PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage(); PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page); XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Verdana", 10); XFont font = new XFont("Verdana", 10);
// Отрисовка заголовка документа
gfx.DrawString(documentTitle, new XFont("Verdana", 16, XFontStyleEx.Bold), XBrushes.Black, new XRect(0, 0, page.Width, 50), XStringFormats.Center); gfx.DrawString(documentTitle, new XFont("Verdana", 16, XFontStyleEx.Bold), XBrushes.Black, new XRect(0, 0, page.Width, 50), XStringFormats.Center);
// Отрисовка таблицы // Отрисовка таблицы
@ -104,7 +104,6 @@ namespace Library14Petrushin
gfx.DrawString(headers[startRow], font, XBrushes.Black, new XRect(mergeX, mergeY, mergeWidth, mergeHeight), XStringFormats.Center); gfx.DrawString(headers[startRow], font, XBrushes.Black, new XRect(mergeX, mergeY, mergeWidth, mergeHeight), XStringFormats.Center);
} }
// Сохранение документа
document.Save(fileName); document.Save(fileName);
} }
} }

View File

@ -22,22 +22,18 @@ namespace Library14Petrushin
public void CreatePdfDocument(string fileName, string documentTitle, List<ImageData> images) public void CreatePdfDocument(string fileName, string documentTitle, List<ImageData> images)
{ {
// Проверка на заполненность входных данных
if (string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(documentTitle) || images == null || images.Count == 0) if (string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(documentTitle) || images == null || images.Count == 0)
{ {
throw new ArgumentException("Все входные данные должны быть заполнены."); throw new ArgumentException("Все входные данные должны быть заполнены.");
} }
// Создание PDF-документа
PdfDocument document = new PdfDocument(); PdfDocument document = new PdfDocument();
// Добавление заголовка документа на первую страницу
PdfPage firstPage = document.AddPage(); PdfPage firstPage = document.AddPage();
XGraphics gfxFirstPage = XGraphics.FromPdfPage(firstPage); XGraphics gfxFirstPage = XGraphics.FromPdfPage(firstPage);
XFont font = new XFont("Arial", 20, XFontStyleEx.BoldItalic); XFont font = new XFont("Arial", 20, XFontStyleEx.BoldItalic);
gfxFirstPage.DrawString(documentTitle, font, XBrushes.Black, new XRect(0, 0, firstPage.Width, 50), XStringFormats.Center); gfxFirstPage.DrawString(documentTitle, font, XBrushes.Black, new XRect(0, 0, firstPage.Width, 50), XStringFormats.Center);
// Добавление изображений в документ
foreach (var imageData in images) foreach (var imageData in images)
{ {
PdfPage page = document.AddPage(); PdfPage page = document.AddPage();
@ -45,24 +41,19 @@ namespace Library14Petrushin
using (XImage img = XImage.FromFile(imageData.ImagePath)) using (XImage img = XImage.FromFile(imageData.ImagePath))
{ {
// Определяем размеры изображения
double imageWidth = img.PixelWidth * 72 / img.HorizontalResolution; double imageWidth = img.PixelWidth * 72 / img.HorizontalResolution;
double imageHeight = img.PixelHeight * 72 / img.VerticalResolution; double imageHeight = img.PixelHeight * 72 / img.VerticalResolution;
// Вычисляем масштаб, чтобы изображение поместилось на странице
double scale = Math.Min(page.Width / imageWidth, page.Height / imageHeight); double scale = Math.Min(page.Width / imageWidth, page.Height / imageHeight);
// Рисуем изображение на странице
gfx.DrawImage(img, 0, 0, imageWidth * scale, imageHeight * scale); gfx.DrawImage(img, 0, 0, imageWidth * scale, imageHeight * scale);
} }
} }
// Сохранение документа
document.Save(fileName); document.Save(fileName);
} }
} }
// Класс для хранения данных об изображении
public class ImageData public class ImageData
{ {
public string ImagePath { get; set; } public string ImagePath { get; set; }