Skip to main content
 首页 » 编程设计

c#-4.0之使用 C# 代码将字节数组转换为 pdf

2024年08月06日14kerrycode

我有一个包含更多二进制类型列的表。我必须将这些字节数组转换为pdf。我用c#代码编写如下:

this.Cursor = Cursors.WaitCursor; 
        using (CMEntities myEntity = new CMEntities()) 
        { 
            myEntity.ContextOptions.LazyLoadingEnabled = false; 
            var r = (from b in myEntity.FileDatas 
                     orderby b.Oid 
                     where b.Status == null 
                     select b).Skip(Directory.GetFiles(@"D:\test\FromBinary\", "*.*", SearchOption.AllDirectories).Length).Take(500); 
            button5.Text = Directory.GetFiles(@"D:\test\FromBinary\", "*.*", SearchOption.AllDirectories).Length.ToString(); 
            int i = 1; 
            try 
            { 
                FileSystemStoreObject fileSystem = new FileSystemStoreObject(); 
                foreach (var item in r) 
                { 
                    byte[] a = item.Content; 
                    File.WriteAllBytes(@"D:\test\FromBinary\" + item.Oid + "-" + item.FileName, a); 
                    fileSystem.Oid = item.Oid; 
                    fileSystem.FileName = item.FileName; 
                    fileSystem.Size = item.size; 
                    item.Status = 1; 
                    myEntity.FileSystemStoreObjects.AddObject(fileSystem); 
                    if (i == 500) 
                    { 
                        break; 
                    } 
                    i++; 
                    fileSystem = new FileSystemStoreObject(); 
                } 
                myEntity.SaveChanges(); 
            } 
            catch { } 
        } 

但是当我的程序开始运行时,我的一些 pdf 文件无法打开。我收到错误消息,该文件已损坏或...... 如何获得健康的pdf文件? 请帮助我。

请您参考如下方法:

如果有些人对PDF也有问题,我建议下载PDF specification .

事实上,您可以看到 PDF 文件必须以 %PDF- plus 版本开头,例如 %PDF-1.4 并以 %%EOF 结尾,前面两行是字节偏移量和startxref... 例如,如果您使用 Notepad++ 查看生成的 PDF,您可以确定文件是否完整以及缺少哪一部分。