3

我有一个包含更多二进制类型列的表。我必须将这些字节数组转换为 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 文件?请帮我。

4

1 回答 1

0

如果有些人对 Pdf 也有问题,我建议下载PDF 规范

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

于 2015-08-11T16:24:10.220 回答