将项目添加到现有PDF的正确方法是什么?方法GetFileBytes从磁盘读取PDF并转换为数组,这很好,但生成的文件NP.PDF与原始文件完全相同.我实际上想要添加条形码但是想要先尝试使用一个简单的项目.
Byte[] bytes = GetFileBytes();
Document document = new Document();
MemoryStream ms = new MemoryStream(bytes);
PdfWriter writer = PdfWriter.GetInstance(document, ms);
document.Open();
document.Add(new Paragraph("First Paragraph"));
document.Add(new Paragraph("Second Paragraph"));
//document.Close();
ms.Position = 0;
File.WriteAllBytes(@"e:\NP.pdf", (Byte[])ms.ToArray());
Run Code Online (Sandbox Code Playgroud) 我正在将文件从 Azure 文件共享复制到存储容器中的 CloudBlockBlob。在删除原始文件之前,我想验证两个位置的字节 (.Properties.Length) 是否相同。我认为这是获得对复制的 blob 的新引用的情况,但它始终为 -1。
副本工作正常,对文件 v blob 的目视检查显示字节是相同的,只是不确定如何在我的 C# 应用程序中复制它。
我遇到问题的那一行是定义“复制”对象的那一行。
string myfile = @"junk.txt";
CloudFile sourcefile =
fileStorage.Share.GetRootDirectoryReference().GetFileReference(myfile);
CloudBlockBlob destBlob =
destStorage.Container.GetBlockBlobReference(myfile);
string fileSAS = sourcefile.GetSharedAccessSignature(new
SharedAccessFilePolicy()
{
Permissions = SharedAccessFilePermissions.Read,
SharedAccessExpiryTime = DateTime.Now.AddHours(24)
});
Uri fileUri = new Uri(sourcefile.StorageUri.PrimaryUri.ToString() + fileSAS);
CloudBlockBlob destBlob = destStorage.Container.GetBlockBlobReference(file.Path);
destBlob.StartCopy(fileUri);
CloudBlockBlob copied = destStorage.Container.GetBlockBlobReference(myfile);
Run Code Online (Sandbox Code Playgroud) 谁能给我一个如何从MemoryStream获取PdfReader的示例吗?我可以看到PdfReader类有几个看起来很可能候选的方法(GetStreamBytes和GetStreamBytesRaw),但是这些似乎想要iText特定的流,我的只是常规的Byte []或MemoryStream。
这是使用C#和.net4
iTextSharp.text.pdf.PdfReader rdr = iTextSharp.text.pdf.PdfReader.GetStreamBytesRaw
Run Code Online (Sandbox Code Playgroud)
提前致谢。