PDA

View Full Version : پرینت گرفتن از یک فایل پی دی اف روی هارد دیسک



elderado
سه شنبه 26 آذر 1392, 20:35 عصر
با سلام و خسته نباشید خدمت دوستان عزیز

من میخوام از یک فایل پی دی اف روی هارد دیسک پرینت بگیرم ممنون میشم برام کدش رو بذارید .

در ضمن من یک کد برای این کار دارم که با یک کلاس این کار رو انجام میده، اما یه مشکلی داره، انگار پی دی اف رو بصورت خام می فرسته و توسط پرینتر خام شناخته میشه و اون رو پرینت نمی کنه.
کد ها رو میزارم اینجا اگه کسی مشکلش رو فهمید لطفا بهم بگه
ممنونم
rawprinthelper
کلاسی هست که کار رو انجام میده و این هم کدی هست که کلاس رو فراخوانی می کنم
البته ناگفته نماند که فایلی که میخوام پرینت کنم رو طبق همین کد خودم با همین کد روی هارد ذخیره می کنم


byte[] pdffile= Class1.pdfselect("select pdfdata from jal where pdfname=N'"+name+"'");
string filename = dataGridView1.CurrentRow.Cells[0].Value.ToString();
File.WriteAllBytes(@"c:\windows\jalal.pdf",pdffile);
PrintDialog pd = new PrintDialog();
pd.PrinterSettings = new PrinterSettings();
if (DialogResult.OK == pd.ShowDialog())
{

RawPrinterHelper.SendFileToPrinter(pd.PrinterSetti ngs.PrinterName, @"c:\windows\jalal.pdf");
int p = Convert.ToInt32(label1.Text);
int cpr = Convert.ToInt32(Class1.search("select cprint from cprint").Rows[0][0].ToString());
cpr += p;
Class1.commm("update cprint set cprint="+cpr+"");
}

elderado
سه شنبه 26 آذر 1392, 21:50 عصر
به نظر شما این کد کجاش مشکل داره؟؟؟
چرا خالی پرینت میزنه؟؟/

printDocument1.DocumentName = @"e:\sher.docx";
PrintDialog pd = new PrintDialog();
if (pd.ShowDialog() == DialogResult.OK)
{
printDocument1.PrinterSettings.PrinterName = pd.PrinterSettings.PrinterName;
printDocument1.Print();
}

shahryari
چهارشنبه 27 آذر 1392, 10:37 صبح
سلام

private void SendToPrinter()
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\output.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;

Process p = new Process();
p.StartInfo = info;
p.Start();

p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
}

elderado
دوشنبه 02 دی 1392, 12:31 عصر
میشه کاری کرد که قبل از پرینت گرفتن ، پنجره انتخاب پرینتر ( کاربر بخواد فایل رو بصورت پشت و رو یا دو صفحه در یک برگه پرینت بگیره) نمایش داده بشه و بعد از اون عمل پرینت انجام بشه؟

elderado
دوشنبه 02 دی 1392, 17:19 عصر
یعنی هیچ کس توی این فروم پرینت گرفتن از یه فایل پی دی اف رو بلد نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟