Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        // サンプルデータを作成 ボタンを押したときの処理
        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);
            });
        }