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(); }
/// <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); }
/// <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); }