private void AddTotalPagesAndCopies(PSfiles psFiles, StringBuilder sb)
        {
            switch (psFiles)
            {
            case PSfiles.ElevenTextPages:
                sb.AppendLine("TotalPages=11");
                sb.AppendLine("Copies=1");
                break;

            case PSfiles.EmptyPage:
            case PSfiles.LandscapePage:
            case PSfiles.PortraitPage:
            case PSfiles.PDFCreatorTestpage:
                sb.AppendLine("Copies=1");
                sb.AppendLine("TotalPages=1");
                break;

            case PSfiles.PortraitLandscapeLandscapeLandscapePortrait:
                sb.AppendLine("Copies=1");
                sb.AppendLine("TotalPages=1");
                break;

            case PSfiles.SixEmptyPages:
                sb.AppendLine("Copies=6");
                sb.AppendLine("TotalPages=1");
                break;

            case PSfiles.ThreePDFCreatorTestpages:
                sb.AppendLine("Copies=3");
                sb.AppendLine("TotalPages=1");
                break;
            }
        }
        /// <summary>
        /// </summary>
        /// <param name="psFiles"></param>
        /// <returns></returns>
        public string GenerateInfFileWithPsFiles(PSfiles psFiles)
        {
            TmpInfFile = Path.Combine(TmpTestFolder, psFiles + ".inf");

            TmpPsFiles = GeneratePSFileList(psFiles, TmpTestFolder);

            var sb = new StringBuilder();

            for (var i = 1; i <= TmpPsFiles.Count; i++)
            {
                sb.AppendLine("[" + i + "]");
                sb.AppendLine("SessionId=1");
                sb.AppendLine("WinStation=Console");
                sb.AppendLine("UserName=SampleUser1234");
                sb.AppendLine("ClientComputer=\\PC1");
                sb.AppendLine("SpoolFileName=" + TmpPsFiles[i - 1]);
                sb.AppendLine("PrinterName=PDFCreator");
                sb.AppendLine("JobId=1");
                sb.AppendLine("DocumentTitle=Title");
                AddTotalPagesAndCopies(psFiles, sb);
                sb.AppendLine("");
            }

            File.WriteAllText(TmpInfFile, sb.ToString(), Encoding.GetEncoding("Unicode"));

            return(TmpInfFile);
        }
        /// <summary>
        ///     Generates a job with default testpasswords (if required by the profile settings).
        ///     Therefore an INF file and the required PS Files will be created and set in the jobs JobInfo.
        /// </summary>
        /// <param name="psFiles">select test content according to psFiles</param>
        /// <param name="outputformat">set output format</param>
        public void GenerateGsJob(PSfiles psFiles, OutputFormat outputformat)
        {
            _profile.OutputFormat = outputformat;

            GenerateInfFileWithPsFiles(psFiles);
            var jobInfoReader = new JobInfoManager(new LocalTitleReplacerProvider(new List <TitleReplacement>()));

            JobInfo = jobInfoReader.ReadFromInfFile(TmpInfFile);

            var jobTranslations = new JobTranslations();

            jobTranslations.EmailSignature = "\r\n\r\nCreated with PDFCreator";

            Job = new Job(JobInfo, _profile, jobTranslations, AppSettings.Accounts);

            var extension = outputformat.ToString();

            if (outputformat == OutputFormat.PdfA1B || outputformat == OutputFormat.PdfA2B || outputformat == OutputFormat.PdfX)
            {
                extension = "pdf";
            }
            Job.OutputFilenameTemplate         = TmpInfFile.Replace(".inf", "." + extension);
            Job.Passwords.PdfUserPassword      = _profile.PdfSettings.Security.RequireUserPassword ? UserPassword : null;
            Job.Passwords.PdfOwnerPassword     = _profile.PdfSettings.Security.Enabled ? OwnerPassword : null;
            Job.Passwords.PdfSignaturePassword = _profile.PdfSettings.Signature.Enabled ? SignaturePassword : null;

            EnableLogging();
            InitMissingData();
        }
예제 #4
0
        /// <summary>
        /// Generates a job with default testpasswords (if required by the profile settings).
        /// Therefore an INF file and the required PS Files will be created and set in the jobs JobInfo.
        /// </summary>
        /// <param name="psFiles">select test content according to psFiles</param>
        public void GenerateGsJob(PSfiles psFiles, OutputFormat outputformat, IFile fileWrap, IDirectory directoryWrap, string jobTempFolder = null)
        {
            var tempFolderProvider = MockRepository.GenerateStub <ITempFolderProvider>();

            if (string.IsNullOrEmpty(jobTempFolder))
            {
                tempFolderProvider.Stub(x => x.TempFolder)
                .Return(Environment.ExpandEnvironmentVariables(@"%TMP%\PDFCreator\Temp"));
            }
            else
            {
                tempFolderProvider.Stub(x => x.TempFolder)
                .Return(Environment.ExpandEnvironmentVariables(jobTempFolder));
            }
            _profile.OutputFormat = outputformat;

            GenerateInfFileWithPsFiles(psFiles);
            JobInfo = new JobInfo(TmpInfFile, AppSettings.TitleReplacement);

            var jobTranslations = new JobTranslations();

            jobTranslations.EmailSignature = "\r\n\r\nCreated with PDFCreator";

            Job = new GhostscriptJob(JobInfo, _profile, jobTranslations, tempFolderProvider, fileWrap, directoryWrap);

            string extension = outputformat.ToString();

            if (outputformat == OutputFormat.PdfA1B || outputformat == OutputFormat.PdfA2B || outputformat == OutputFormat.PdfX)
            {
                extension = "pdf";
            }
            Job.OutputFilenameTemplate         = TmpInfFile.Replace(".inf", "." + extension);
            Job.Passwords.PdfUserPassword      = _profile.PdfSettings.Security.RequireUserPassword ? UserPassword : null;
            Job.Passwords.PdfOwnerPassword     = _profile.PdfSettings.Security.Enabled ? OwnerPassword : null;
            Job.Passwords.PdfSignaturePassword = _profile.PdfSettings.Signature.Enabled ? SignaturePassword : null;

            EnableLogging();
        }
        private List <string> GeneratePSFileList(PSfiles psFiles, string tmpTestFolder)
        {
            var    list = new List <string>();
            string testFilePath;

            switch (psFiles)
            {
            case PSfiles.ElevenTextPages:
                testFilePath = Path.Combine(tmpTestFolder, psFiles + ".ps");
                File.WriteAllBytes(testFilePath, Resources.ElevenTextPagesPS);
                list.Add(testFilePath);
                break;

            case PSfiles.EmptyPage:
                testFilePath = Path.Combine(tmpTestFolder, psFiles + ".ps");
                File.WriteAllBytes(testFilePath, Resources.EmptyPagePS);
                list.Add(testFilePath);
                break;

            case PSfiles.LandscapePage:
                testFilePath = Path.Combine(tmpTestFolder, psFiles + ".ps");
                File.WriteAllBytes(testFilePath, Resources.LandscapePagePS);
                list.Add(testFilePath);
                break;

            case PSfiles.PDFCreatorTestpage:
                testFilePath = Path.Combine(tmpTestFolder, psFiles + ".ps");
                File.WriteAllBytes(testFilePath, Resources.PDFCreatorTestpagePS);
                list.Add(testFilePath);
                break;

            case PSfiles.ThreePDFCreatorTestpages:
                testFilePath = Path.Combine(tmpTestFolder, "PDFCreatorTestpage.ps");
                File.WriteAllBytes(testFilePath, Resources.PDFCreatorTestpagePS);
                list.Add(testFilePath);
                list.Add(testFilePath);
                list.Add(testFilePath);
                break;

            case PSfiles.PortraitLandscapeLandscapeLandscapePortrait:
                var portrait = Path.Combine(tmpTestFolder, "Portrait.ps");
                File.WriteAllBytes(portrait, Resources.PortraitPagePS);
                var landscape = Path.Combine(tmpTestFolder, "Landscape.ps");
                File.WriteAllBytes(landscape, Resources.LandscapePagePS);
                list.Add(portrait);
                list.Add(landscape);
                list.Add(landscape);
                list.Add(landscape);
                list.Add(portrait);
                break;

            case PSfiles.PortraitPage:
                testFilePath = Path.Combine(tmpTestFolder, psFiles + ".ps");
                File.WriteAllBytes(testFilePath, Resources.PortraitPagePS);
                list.Add(testFilePath);
                break;

            case PSfiles.SixEmptyPages:
                testFilePath = Path.Combine(TmpTestFolder, "EmptyPage.ps");
                File.WriteAllBytes(testFilePath, Resources.EmptyPagePS);
                list.Add(testFilePath);
                list.Add(testFilePath);
                list.Add(testFilePath);
                list.Add(testFilePath);
                list.Add(testFilePath);
                list.Add(testFilePath);
                break;
            }
            return(list);
        }
예제 #6
0
 /// <summary>
 /// Generates a job with default testpasswords (if required by the profile settings).
 /// Therefore an INF file and the required PS Files will be created and set in the jobs JobInfo.
 /// </summary>
 /// <param name="psFiles">select test content according to psFiles</param>
 public void GenerateGsJob(PSfiles psFiles, OutputFormat outputformat, string jobTempFolder = null)
 {
     GenerateGsJob(psFiles, outputformat, new FileWrap(), new DirectoryWrap(), jobTempFolder);
 }