Aspose.Slides لـ Xamarin
نظرة عامة
Xamarin هو إطار عمل يستخدم لتطوير التطبيقات المحمولة في .NET C#. يحتوي Xamarin على أدوات ومكتبات توسع من قدرات منصة .NET. يسمح للمطورين ببناء تطبيقات لنظام التشغيل Android.
تعمل واجهة برمجة التطبيقات Aspose.Slides على منصة Xamarin. لتحقيق ذلك، تضيف حزمة Aspose.Slides .NET ملف DLL منفصل لـ Xamarin. يدعم Aspose.Slides لـ Xamarin معظم الميزات المتاحة في النسخة .NET:
- تحويل وعرض العروض التقديمية.
- تحرير المحتوى في العروض التقديمية: نص، أشكال، مخططات، SmartArt، صوت/فيديو، خطوط، إلخ.
- التعامل مع الرسوم المتحركة، وتأثيرات 2D، وWordArt، إلخ.
- التعامل مع البيانات الوصفية وخصائص الوثائق.
- الطباعة، الاستنساخ، الدمج، المقارنة، التقسيم، إلخ.
قمنا بتوفير مقارنة لجميع الميزات في قسم آخر قريب من أسفل هذه الصفحة.
في واجهة برمجة التطبيقات Aspose.Slides لـ Xamarin، تكون الفئات، ومساحات الأسماء، والمنطق، والسلوك مشابهه قدر الإمكان للإصدار .NET. يمكنك ترحيل تطبيقات Aspose.Slides .NET الخاصة بك إلى Xamarin بتكاليف قليلة.
مثال سريع
يمكنك استخدام Aspose.Slides لـ Xamarin لبناء واستخدام تطبيق C# الخاص بك من خلال Slides لـ Android.
نقدم مثالًا على تطبيق Android عبر Xamarin يستخدم Aspose.Slides لعرض شرائح العروض التقديمية ويضيف شكلاً جديدًا على الشريحة عند اللمس. يمكنك العثور على الكود المصدري الكامل للأمثلة على GitHub.
لنبدأ بإنشاء تطبيق Xamarin Android:
بداية، نقوم بإنشاء تخطيط محتوى يحتوي على صورة عرض وأزرار سابقة وتالية:
XML - content_main.xml - إنشاء تخطيط محتوى
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation= "vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:showIn="@layout/activity_main">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/linearLayout1">
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:scaleType="fitCenter" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="10"
android:id="@+id/linearLayout2">
<Button
android:text="السابق"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonPrev" />
<Button
android:text="التالي"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonNext"/>
</LinearLayout>
</LinearLayout>
هنا، نقوم بالإشارة إلى مكتبة “Aspose.Slides.Droid.dll” التي تتضمن عرض تقديمي عينة (“HelloWorld.pptx”) في أصول تطبيق Xamarin وتضيف تهيئتها إلى MainActivity:
C# - MainActivity.cs - التهيئة
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme.NoActionBar", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private Aspose.Slides.Presentation presentation;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
}
protected override void OnResume()
{
if (presentation == null)
{
using (Stream input = Assets.Open("HelloWorld.pptx"))
{
presentation = new Aspose.Slides.Presentation(input);
}
}
}
protected override void OnPause()
{
if (presentation != null)
{
presentation.Dispose();
presentation = null;
}
}
}
لنقم بإضافة الوظيفة لعرض الشرائح السابقة والتالية عند الضغط على الأزرار:
C# - MainActivity.cs - عرض الشرائح عند الضغط على زر السابق والتالي
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme.NoActionBar", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private Button buttonNext;
private Button buttonPrev;
ImageView imageView;
private Aspose.Slides.Presentation presentation;
private int currentSlideNumber;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
}
protected override void OnResume()
{
base.OnResume();
LoadPresentation();
currentSlideNumber = 0;
if (buttonNext == null)
{
buttonNext = FindViewById<Button>(Resource.Id.buttonNext);
}
if (buttonPrev == null)
{
buttonPrev = FindViewById<Button>(Resource.Id.buttonPrev);
}
if(imageView == null)
{
imageView= FindViewById<ImageView>(Resource.Id.imageView);
}
buttonNext.Click += ButtonNext_Click;
buttonPrev.Click += ButtonPrev_Click;
RefreshButtonsStatus();
ShowSlide(currentSlideNumber);
}
private void ButtonNext_Click(object sender, System.EventArgs e)
{
if (currentSlideNumber > (presentation.Slides.Count - 1))
{
return;
}
ShowSlide(++currentSlideNumber);
RefreshButtonsStatus();
}
private void ButtonPrev_Click(object sender, System.EventArgs e)
{
if (currentSlideNumber == 0)
{
return;
}
ShowSlide(--currentSlideNumber);
RefreshButtonsStatus();
}
protected override void OnPause()
{
base.OnPause();
if (buttonNext != null)
{
buttonNext.Dispose();
buttonNext = null;
}
if (buttonPrev != null)
{
buttonPrev.Dispose();
buttonPrev = null;
}
if(imageView != null)
{
imageView.Dispose();
imageView = null;
}
DisposePresentation();
}
private void RefreshButtonsStatus()
{
buttonNext.Enabled = currentSlideNumber < (presentation.Slides.Count - 1);
buttonPrev.Enabled = currentSlideNumber > 0;
}
private void ShowSlide(int slideNumber)
{
Aspose.Slides.Drawing.Xamarin.Size size = presentation.SlideSize.Size.ToSize();
Aspose.Slides.Drawing.Xamarin.Bitmap bitmap = presentation.Slides[slideNumber].GetThumbnail(size);
imageView.SetImageBitmap(bitmap.ToNativeBitmap());
}
private void LoadPresentation()
{
if(presentation != null)
{
return;
}
using (Stream input = Assets.Open("HelloWorld.pptx"))
{
presentation = new Aspose.Slides.Presentation(input);
}
}
private void DisposePresentation()
{
if(presentation == null)
{
return;
}
presentation.Dispose();
presentation = null;
}
}
أخيرًا، دعنا ننفذ وظيفة لإضافة شكل بيضاوي عند الضغط على الشريحة:
C# - MainActivity.cs - إضافة شكل بيضاوي عند النقر على الشريحة
private void ImageView_Touch(object sender, Android.Views.View.TouchEventArgs e)
{
int[] location = new int[2];
imageView.GetLocationOnScreen(location);
int x = (int)e.Event.GetX();
int y = (int)e.Event.GetY();
int posX = x - location[0];
int posY = y - location[0];
Aspose.Slides.Drawing.Xamarin.Size presSize = presentation.SlideSize.Size.ToSize();
float coeffX = (float)presSize.Width / imageView.Width;
float coeffY = (float)presSize.Height / imageView.Height;
int presPosX = (int)(posX * coeffX);
int presPosY = (int)(posY * coeffY);
int width = presSize.Width / 50;
int height = width;
Aspose.Slides.IAutoShape ellipse = presentation.Slides[currentSlideNumber].Shapes.AddAutoShape(Aspose.Slides.ShapeType.Ellipse, presPosX, presPosY, width, height);
ellipse.FillFormat.FillType = Aspose.Slides.FillType.Solid;
Random random = new Random();
Aspose.Slides.Drawing.Xamarin.Color slidesColor = Aspose.Slides.Drawing.Xamarin.Color.FromArgb(random.Next(256), random.Next(256), random.Next(256));
ellipse.FillFormat.SolidFillColor.Color = slidesColor;
ShowSlide(currentSlideNumber);
}
كل نقرة على الشريحة التقديمية تؤدي إلى إضافة شكل بيضاوي بلون عشوائي:
الميزات المدعومة
الميزات | Aspose.Slides لـ .NET | Aspose.Slides لـ Xamarin |
---|---|---|
ميزات العروض التقديمية: | ||
إنشاء عروض تقديمية جديدة | ||
فتح/حفظ تنسيقات PowerPoint 97 - 2003 | ||
فتح/حفظ تنسيقات PowerPoint 2007 | ||
دعم ملحقات PowerPoint 2010 | ||
دعم ملحقات PowerPoint 2013 | ||
دعم ميزات PowerPoint 2016 | مقيد | مقيد |
دعم ميزات PowerPoint 2019 | مقيد | مقيد |
التحويل من PPT إلى PPTX | ||
التحويل من PPTX إلى PPT | ||
PPTX في PPT | مقيد | مقيد |
معالجة القوالب | ||
معالجة الماكرو | ||
معالجة خصائص الوثيقة | ||
الحماية بكلمة مرور | ||
استخراج نص سريع | ||
دمج الخطوط | ||
عرض التعليقات | ||
إيقاف المهام الطويلة | ||
تنسيقات التصدير: | ||
XPS | ||
HTML | ||
TIFF | ||
ODP | مقيد | مقيد |
SWF | مقيد | مقيد |
SVG | ||
تنسيقات الاستيراد: | ||
HTML | مقيد | مقيد |
ODP | ||
THMX | ||
ميزات الشرائح الرئيسية: | ||
الوصول إلى جميع شرائح الرئيسية الموجودة | ||
إنشاء/إزالة الشرائح الرئيسية | ||
استنساخ الشرائح الرئيسية | ||
ميزات تخطيط الشرائح: | ||
الوصول إلى جميع تخطيطات الشرائح الموجودة | ||
إنشاء/إزالة تخطيطات الشرائح | ||
استنساخ تخطيطات الشرائح | ||
ميزات الشرائح: | ||
الوصول إلى جميع الشرائح الموجودة | ||
إنشاء/إزالة الشرائح | ||
استنساخ الشرائح | ||
تصدير الشرائح إلى الصور | ||
إنشاء/تحرير/إزالة أقسام الشرائح | ||
ميزات ملاحظات الشرائح: | ||
الوصول إلى جميع ملاحظات الشرائح الموجودة | ||
ميزات الشكل: | ||
الوصول إلى جميع أشكال الشرائح | ||
إضافة أشكال جديدة | ||
استنساخ الأشكال | ||
تصدير الأشكال المنفصلة إلى صور | ||
أشكال المدعومة: | ||
جميع أنواع الأشكال المعرفة مسبقًا | ||
إطارات الصور | ||
الجداول | ||
المخططات | ||
SmartArt | ||
الرسوم البيانية القديمة | ||
WordArt | ||
OLE، كائنات ActiveX | مقيد | مقيد |
إطارات الفيديو | ||
إطارات الصوت | ||
الموصلات | ||
ميزات مجموعة الأشكال: | ||
الوصول إلى مجموعة الأشكال | ||
إنشاء مجموعة من الأشكال | ||
فك تجميع مجموعات الأشكال الموجودة | ||
ميزات تأثيرات الأشكال: | ||
تأثيرات 2D | مقيد | مقيد |
تأثيرات 3D | ||
ميزات النص: | ||
تنسيق الفقرات | ||
تنسيق الأجزاء | ||
ميزات الرسوم المتحركة: | ||
تصدير الرسوم المتحركة إلى SWF | ||
تصدير الرسوم المتحركة إلى HTML |