// PDFデータをまとめて作成する async public Task <ProgressValue> MakeAllPDF(string mansionName, string printCnt, string no, string subPathName, int cnt) { ProgressValue values = new ProgressValue(); if (forCustomer) // お客様向けモード { if (Convert.ToDecimal(printCnt) % 2 == 1) // 奇数の場合 { printCnt = "Z" + Convert.ToString(Convert.ToDecimal(printCnt) + 1); } else // 偶数の場合 { printCnt = "Z" + printCnt; } } else // 社内向けモード { printCnt = "CP" + Convert.ToString(Math.Ceiling(Convert.ToDecimal(printCnt) / 2)); } // ロッキーさんより指示あり、一時的にIndexをファイル名に含めない(11/11/13) // string filename = no + "_" + mansionName + "_" + printCnt + ".pdf"; string filename = mansionName + "_" + printCnt + ".pdf"; string font = box_fontlist.SelectedValue.ToString(); int align = GetRadioBoxValue(); float alignedMinX = GetAlignedXcoord(minX, slctWidth, align); await Task.Run(() => { PDFAppend pdf = new PDFAppend(pdfPath); var pdfContentByte = pdf.CopyTemplate(); pdf.Append(ref pdfContentByte, mansionName, alignedMinX, maxY, slctWidth, slctHeight, font, fontcolor, align); pdf.Close(); string dstPath = Path.Combine(subPathName, filename); try { pdf.Save(dstPath); } catch (IOException) { string errorMsg = "◆No." + no + " " + mansionName + " : 開いているPDFを閉じてから、作成ボタンを押してください。"; errorList.Add(errorMsg); cnt--; } }); values.name = filename; values.count = ++cnt; return(values); }
// サンプルデータを作成 ボタンを押したときの処理 async private void btn_MakeSample_Click(object sender, EventArgs e) { if (minX == 0 || maxY == 0 || slctWidth == 0 || slctHeight == 0) { MessageBox.Show("PDFを選択し、座標を指定してください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (savePath == null) { savePath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); } string font = box_fontlist.SelectedValue.ToString(); string sampleText = txtbx_Sampletext.Text.ToString(); int align = GetRadioBoxValue(); float alignedMinX = GetAlignedXcoord(minX, slctWidth, align); string sampleFileName = "【見本】" + Path.GetFileNameWithoutExtension(pdfPath) + ".pdf"; string dstPath = Path.Combine(savePath, sampleFileName); if (File.Exists(dstPath)) { DialogResult result = MessageBox.Show("既に" + dstPath + "が存在します。上書きしてもよろしいですか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.No) { return; } } btn_MakeSample.Enabled = false; btn_MakeAll.Enabled = false; btn_reset.Enabled = false; await Task.Run(() => { PDFAppend pdf = new PDFAppend(pdfPath); var pdfContentByte = pdf.CopyTemplate(); pdf.Append(ref pdfContentByte, sampleText, alignedMinX, maxY, slctWidth, slctHeight, font, fontcolor, align); pdf.Close(); try { pdf.Save(dstPath); } catch (IOException) { MessageBox.Show("開いているPDFを閉じてから、作成ボタンを押してください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } finally { btn_MakeSample.Enabled = true; btn_MakeAll.Enabled = true; btn_reset.Enabled = true; } MessageBox.Show(dstPath + "を作成しました。"); System.Diagnostics.Process p = System.Diagnostics.Process.Start(dstPath); }); }