internal static void placeWatermark(string newFile) { Bitmap bitmap = global::Res.Properties.Resources.reportBig; ImageConverter converter = new ImageConverter(); byte[] imgBytes = (byte[])converter.ConvertTo(bitmap, typeof(byte[])); using (Stream inputPdfStream = new FileStream(newFile, FileMode.Open, FileAccess.Read, FileShare.Read)) using (Stream inputImageStream = new MemoryStream(imgBytes)) using (Stream outputPdfStream = new FileStream(newFile + ".tmp", FileMode.Create, FileAccess.Write, FileShare.None)) { var reader = new PdfReader(inputPdfStream); var stamper = new PdfStamper(reader, outputPdfStream); var pdfContentByte = stamper.GetOverContent(1); //Logo hinzufügen iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(inputImageStream); image.ScaleToFit(25, 25); image.SetAbsolutePosition(reader.GetPageSize(reader.GetPageN(1)).Width - 30, reader.GetPageSize(reader.GetPageN(1)).Height - 30); pdfContentByte.AddImage(image); //Text hinzufügen PdfContentByte pdfPageContents = stamper.GetUnderContent(1); pdfPageContents.BeginText(); BaseFont baseFont = BaseFont.CreateFont(BaseFont.COURIER, Encoding.ASCII.EncodingName, true); pdfPageContents.SetFontAndSize(baseFont, 7f); pdfPageContents.SetRGBColorFill(42, 127, 255); pdfPageContents.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "Erstellt mit der kostenlosen Software", reader.GetPageSize(reader.GetPageN(1)).Width - 30, reader.GetPageSize(reader.GetPageN(1)).Height - 15, 0); pdfPageContents.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "von http://ausbildungsbericht.net", reader.GetPageSize(reader.GetPageN(1)).Width - 30, reader.GetPageSize(reader.GetPageN(1)).Height - 24, 0); pdfPageContents.EndText(); //Stamper schließen stamper.Close(); //temp file löschen und neues file speichern File.Copy(newFile + ".tmp", newFile, true); File.Delete(newFile + ".tmp"); } //Statistiken senden SendStats.SendPDFSaved(); }
private void btnSend_Click(object sender, EventArgs e) { if (cbChooseSubject.Text != string.Empty && tbxEmail.Text != string.Empty && tbxName.Text != string.Empty && tbxText.Text != string.Empty) { if (TestEmailRegex(tbxEmail.Text)) { SendStats.SendFeedback(tbxText.Text, tbxEmail.Text, tbxName.Text, cbChooseSubject.Text); this.Close(); } else { MessageBox.Show("Tragen sie bitte eine gültige E-Mail-Adresse ein", "E-Mail ungültig"); } } else { MessageBox.Show("Füllen sie bitte alle Felder aus", "Nicht alle angaben vorhanden"); } }
//In den SendStatsBlock setzen, damit wirklich nur erfasst wird, wenn auch gesendet private void RatingChanged(object sender, EventArgs e) { RatingItem ri = (sender as RatingItem); if (_settings.ContainsKey(ri.Name)) { _settings[ri.Name] = ri.Rating.ToString(); } else { _settings.Add(ri.Name, ri.Rating.ToString()); } DataManager.SaveSettings(_settings); switch (ri.Name) { case "riGUI": SendStats.SendRating("gui", ri.Rating); break; case "riStability": SendStats.SendRating("stability", ri.Rating); break; case "riSupport": SendStats.SendRating("support", ri.Rating); break; case "riUsability": SendStats.SendRating("usability", ri.Rating); break; case "riFunctions": SendStats.SendRating("functions", ri.Rating); break; } }