我下载了 PDFLib x64 版本,并快速试用了 Windows Azure Web Role。该库仅包含一个作为 PDFlib_dotnet.dll 的 DLL,您可以将其添加为参考并将其属性设置为“Copy Local As True”。之后,您可以在代码中引用它并根据文档使用它。
根据我的快速测试,您确实需要修改代码以使用 Windows Azure 本地存储来创建 PDF 文件并同步到 Windows Azure Blob 存储以正确保存它。可能有办法将 PDF 直接创建到 Azure Blob 存储,但我只是没有进一步研究。
我使用以下代码创建了一个基于 ASP.NET 的 webrole:
PDFlib p;
int font;
p = new PDFlib();
try
{
// This means we must check return values of load_font() etc.
p.set_parameter("errorpolicy", "return");
// Added code to create PDF on Local Storage
LocalResource myStorage = RoleEnvironment.GetLocalResource("myLocalStorage");
string filePath = Path.Combine(myStorage.RootPath, "hello.pdf");
if (p.begin_document(filePath, "") == -1)
{
Console.WriteLine("Error: {0}\n", p.get_errmsg());
return;
}
p.set_info("Creator", "hello.cs");
p.set_info("Author", "Rainer Schaaf");
p.set_info("Title", "Hello, world (.NET/C#)!");
p.begin_page_ext(595, 842, "");
font = p.load_font("Helvetica-Bold", "unicode", "");
if (font == -1)
{
Console.WriteLine("Error: {0}\n", p.get_errmsg());
return;
}
p.setfont(font, 24);
p.set_text_pos(50, 700);
p.show("Hello, world!");
p.continue_text("(says .NET/C#)");
p.end_page_ext("");
p.end_document("");
}
catch (PDFlibException eX)
{
// caught exception thrown by PDFlib
Console.WriteLine("PDFlib exception occurred in hello sample:\n");
Console.WriteLine("[{0}] {1}: {2}\n", eX.get_errnum(),
eX.get_apiname(), eX.get_errmsg());
}
finally
{
if (p != null)
{
p.Dispose();
}
}
}