Пример #1
0
        private byte[] GetImageSource(ProofItem proof)
        {
            switch (proof.Type)
            {
            case FileTypeEnum.Directory:
            case FileTypeEnum.Word:
            case FileTypeEnum.Excel:
                return(File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "Images\\file.png"));

            case FileTypeEnum.Pdf:
                return(File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "Images\\pdf.png"));

            case FileTypeEnum.Img:
                FileStream datFs = null;
                try
                {
                    datFs = new FileStream(proofDatFileName, FileMode.Open, FileAccess.Read);
                    byte[] buffer = new byte[proof.Length];
                    datFs.Position = proof.StartIndex;
                    datFs.Read(buffer, 0, buffer.Length);
                    return(buffer);
                }
                finally
                {
                    if (datFs != null)
                    {
                        datFs.Dispose();
                    }
                }

            default: throw new Exception("获取证据失败。");
            }
        }
Пример #2
0
        public ProofControl(ProofItem proof, int selectIndex)
        {
            InitializeComponent();

            this.selectIndex = selectIndex;
            this.proof       = proof;
            LoadControl(proof.Proofs[selectIndex]);
        }
Пример #3
0
        private void LoadControl(ProofItem file)
        {
            switch (file.Type)
            {
            case FileTypeEnum.Pdf:
                PDFView pdf = new PDFView(file);
                container.Content = pdf;
                break;

            case FileTypeEnum.Img:
                ImageView image = new ImageView(file.ImgSource);
                container.Content = image;
                break;
            }
        }
Пример #4
0
        private IList <ProofItem> ConvertToProofItems(ProofFileFolder root, ProofItem parent = null)
        {
            IList <ProofItem> proofs = new List <ProofItem>();

            for (int i = 0; i < root.Folders.Count; i++)
            {
                ProofItem proof = new ProofItem();
                proof.Type      = FileTypeEnum.Directory;
                proof.Name      = root.Folders[i].Name;
                proof.ImgSource = GetImageSource(proof);
                proof.Proofs    = new ObservableCollection <ProofItem>();
                proof.Parent    = parent;

                IList <ProofItem> children = ConvertToProofItems(root.Folders[i], proof);

                for (int j = 0; j < children.Count; j++)
                {
                    proof.Proofs.Add(children[j]);
                }

                proofs.Add(proof);
            }

            for (int i = 0; i < root.Files.Count; i++)
            {
                ProofItem proof = new ProofItem();
                proof.Type       = root.Files[i].FileType;
                proof.Name       = root.Files[i].Name;
                proof.StartIndex = root.Files[i].StartIndex;
                proof.Length     = root.Files[i].Length;
                proof.ImgSource  = GetImageSource(proof);
                proofs.Add(proof);
            }

            return(proofs);
        }
Пример #5
0
        public string GetProofTempFilePath(ProofItem proof)
        {
            FileStream datFs  = null;
            FileStream tempFs = null;

            byte[] buffer;

            try
            {
                string tempFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf");
                datFs          = new FileStream(proofDatFileName, FileMode.Open, FileAccess.Read);
                tempFs         = new FileStream(tempFileName, FileMode.Create, FileAccess.Write);
                datFs.Position = proof.StartIndex;

                while (tempFs.Position < proof.Length)
                {
                    buffer = new byte[proof.Length - tempFs.Position > BUFFER_LENGTH ? BUFFER_LENGTH : proof.Length - tempFs.Position];
                    datFs.Read(buffer, 0, buffer.Length);
                    tempFs.Write(buffer, 0, buffer.Length);
                }

                return(tempFileName);
            }
            finally
            {
                if (datFs != null)
                {
                    datFs.Dispose();
                }

                if (tempFs != null)
                {
                    tempFs.Dispose();
                }
            }
        }
Пример #6
0
 public void AdobeReaderControl(ProofItem choiseItem)
 {
     tempFilePath = SingletonManager.Get <ProofShowProcessor>().GetProofTempFilePath(choiseItem);
     this.axAcroPDF1.LoadFile(tempFilePath);
 }
Пример #7
0
 public string GetProofTempFilePath(ProofItem proof)
 {
     return(proofManager.GetProofTempFilePath(proof));
 }
Пример #8
0
 public PDFView(ProofItem proof)
 {
     InitializeComponent();
     this.pdfReader.AdobeReaderControl(proof);
 }