Как решить ошибку «невозможно преобразовать строку [] в строку» при использовании XGraphics - PullRequest
0 голосов
/ 10 октября 2019

У меня есть кнопка для создания PDF из всех изображений в моем статическом каталоге (C: \ myfolder). но у меня есть ошибка

"невозможно преобразовать строку [] в строку" для строки "files" в строке ниже:

DrawImage(gfx, files, 0, 0, (int)page.Width, (int)page.Height);

Как можноя решаю эту ошибку? Благодарю. Вот мой код:

string[] files = Directory.GetFiles(@"C:\myfolder");
PdfDocument document = new PdfDocument();
document.Info.Title = "Created in Pdf";

foreach (string img in files)
{
    PdfPage page = document.AddPage();
    XGraphics gfx = XGraphics.FromPdfPage(page);
    DrawImage(gfx, files, 0, 0, (int)page.Width, (int)page.Height);
}
if(document.PageCount > 0)
{
    document.Save(@"C:\test.pdf");
}

void DrawImage(XGraphics gfx, string jpegSamplePath, int x, int y, int width, int height)
{
    XImage image = XImage.FromFile(jpegSamplePath);
    gfx.DrawImage(image, x, y, width, height);
}

Ответы [ 2 ]

2 голосов
/ 10 октября 2019

Для каждого img в вашем files списке вы хотите нарисовать img.
Поэтому DrawImage(gfx, files,...) должно быть DrawImage(gfx, img,...)

1 голос
/ 10 октября 2019

Посмотрите объявления вашего метода для DrawImage:

void DrawImage(XGraphics gfx, string jpegSamplePath, ...

Второй параметр - string, содержащий имя файла, а не массив string с.

Простоизмените ошибку в своем коде, чтобы использовать имя файла (img), а не имя файла s (files), и оно будет работать:

DrawImage(gfx, img, 0, 0, (int)page.Width, (int)page.Height);
...