الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ملئ فرغات في ملف Pdf من صفحة Asp.net

بدأه in2sol في 7 سبتمبر 2008 · 2 رد · 1,104 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم وشهر مبارك علينا وعليكم

احبتي في المنتدى العربي , اليوم سأتكلم عن طريقة لملئ فرغات موجودة في ملف PDF عن طريق صفحة ASP.net.

الحقيقة اني كنت ابحث من فتره طويله عن طريقة لتحوييل صفحتي الى PDF او طريقة لانشاء ملف PDF من الاساس, ولكن لسوء الحظ اغلب الامثلة والطرق الموجوده في الانترنت كان فيها مشاكل خصوصا مسألة التحويل المباشرة.

عموما انا لقيت طريقة اتمنى انها تعجبكم وتفيدكم .. واذا كان احد منكم عنده طريقة اكيده ومجربة فياليت مايبخل علينا.

راح ابداء بالمتطلبات اللي لازم تتوفر لنا:

  1. برنامج لكتابة ملفات الPDF انصح باستخدام(CutePDF )

طبعا بعد انشائنا للملف الPDF ومثلا خلونا نسمية test.pdf بالشكل التالي:

469950942.gif

نقوم بوضع Text Boxes ونعطيها اسم مختلف كما هو واضح *

ثم نحفظ الملف في السيرفير اللي موجود فيه الموقع.

الان نروح للاهم وهو الكود

طبعا اول شي لازم تحطه ببالك هو اني استخدم اداة اسمها iTextSharp *وهذي الاداة حقيقة اداة جدا ممتازه يتم من خلالها التحويل الى الPDF بطرق كثيره لكنها للاسف غير منظمه من ناحية الامثلة وايضا ماعندهم مثال واضح تقدر تسويلة تحميل وتجربه . عموما هذا موقعوهم ادخلوه ونزلو الdll الخاصه فيه وحاولوا تلقون امثله اخرى.

في الحقيقة هذا هو السبب اللي خلاني اكتب فيه موضوع.

على اي حال .

بعد ما نضيف ال itextsharp.dll

نبداء بالخطوه الاولى :

1 - راح تكون صفحتنا بالشكل التالي:

157094341.gif

2 - راح نضيف الدالة التالية واللي تقوم بارسال ال Absolute Path الخاص بملف ال pdf:

Protected Function GetAbsolutePath() As String
		Dim virtualPath As String = Request.CurrentExecutionFilePath.Substring(0, Request.CurrentExecutionFilePath.LastIndexOf("/") + 1)

		Dim port As String = Request.ServerVariables("SERVER_PORT")
		If port Is Nothing OrElse port = "80" OrElse port = "443" Then
			port = ""
		Else
			port = ":" + port
		End If

		Dim protocol As String = Request.ServerVariables("SERVER_PORT_SECURE")
		If protocol Is Nothing OrElse protocol = "0" Then
			protocol = "http://"
		Else
			protocol = "https://"
		End If

		Return [String].Concat(protocol, Request.ServerVariables("SERVER_NAME"), port, virtualPath)
	End Function

اهم شي قبل لا انسى لازم نضيف القيمة التالية على مستوى الكلاس اي ان جميع الدوال تتمكن من رؤتها الا وهي :

Private ReadOnly pdfFormFileName As String = "test.pdf"

بعد كذا نقوم بالاتي:

في الحدث الخاص بالbutton اللي انا سميته btnGetPDF راح نقوم بالتالي:

 Response.Clear()
		Response.ContentType = "application/vnd.pdf"

		Dim fdfWriter As New FdfWriter()

		fdfWriter.File = GetAbsolutePath() + pdfFormFileName
		fdfWriter.SetFieldAsName("txtName", txtName.Text)
		fdfWriter.SetFieldAsName("txtAge", txtAge.Text)
		fdfWriter.SetFieldAsName("txtSex", txtSex.Text)	 
		Response.AddHeader("Content-disposition", "inline; filename=FlatPDFForm.fdf")
		fdfWriter.WriteTo(Response.OutputStream)
		Response.[End]()

وبس!

وبكذا نكون عبينا الفرغات الموجوده في الملف الPDF عن طريق صفحة ال ASP.net

ارجو اني اكون وفقت في اصال المعلومات وانا مستعد على الرد على اي استفسار

ورجائي اذا كان فيه احد عنده معلومات افضل ان لا يبخل علينا فيها وشكرا لكم مجددا

*اضافة الTextBoxes للملف ال PDF تحتاج احد برامج الكتابة على على ال PDF مثل ال CutePDF

* ITextSharp اداة مجانية يمكنكم الحصول عليها عن طريق هذا الرابط

وشكرا لكم

fillUpPDF.rar

Success is the ability to go from one failure to the next without any loss of Enthusiasm

#3
buaziz كتب:

شكرا يا عزيزي buaziz

هل لديك اي امثله على هذا ال DLL

زشكرا لك على اي حال

Success is the ability to go from one failure to the next without any loss of Enthusiasm

مواضيع مشابهة