У меня была функция Azure с триггером BLOB-объектов, которую я хотел использовать в приложении логики. Затем я понял, что в приложениях логики поддерживаются только функции лазера HTTP-триггера.
Я перенес код, который работал нормально в триггерной функции BLOB-объекта, в новую функцию Azure, активируемую http. Я заменил поток, полученный функцией триггера blob, для тела запроса в триггере http, но я не смог открыть pdf-файл, созданный этим потоком.
Функция триггера BLOB-объекта
public static void Run([BlobTrigger("attachments/{name}", Connection = "")]Stream blobPdf, string name, ILogger log)
{
// Create MemoryStream
var streamPdf = new MemoryStream();
CopyStream(blobPdf, streamPdf);
// Create PDF from MemoryStream
var pdf = PdfReader.Open(streamPdf);
}
Функция триггера HTTP
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)
{
// Create MemoryStream
var streamPdf = new MemoryStream();
CopyStream(req.Body, streamPdf);
// Create PDF from MemoryStream
var pdf = PdfReader.Open(streamPdf);
}
При попытке открыть появляется ошибкаPDF в последней строке. Там есть 2 ошибки в зависимости от файла PDF. Первый из них:
System.Private.CoreLib: Exception while executing function: ExtractTextFromPDF. PdfSharp: Invalid PDF file: no trailer found.
Второй:
System.Private.CoreLib: Exception while executing function: ExtractTextFromPDF. PdfSharp: Unexpected token 'n' in PDF stream. The file may be corrupted. If you think this is a bug in PDFsharp, please send us your PDF file.