diff --git a/ar/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ar/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index a287f6cc12..bd8549ecd6 100644 --- a/ar/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/ar/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,21 +1,21 @@ --- -title: توطين العرض التقديمي +title: توطين العرض type: docs weight: 100 url: /ar/net/presentation-localization/ -keywords: "تغيير اللغة, تدقيق إملائي, تدقيق إملاء, مدقق إملائي, عرض PowerPoint, C#, Csharp, Aspose.Slides for .NET" +keywords: "تغيير اللغة, تدقيق إملائي, تدقيق الإملاء, مدقق إملائي, عرض PowerPoint, C#, Csharp, Aspose.Slides for .NET" description: "تغيير أو فحص اللغة في عرض PowerPoint. تدقيق إملائي للنص في C# أو .NET" --- ## **تغيير اللغة للعرض ونص الشكل** -- إنشاء مثيل لفئة [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) class. -- الحصول على مرجع شريحة باستخدام فهرسها. -- إضافة AutoShape من النوع Rectangle إلى الشريحة. +- إنشاء مثيل لفئة [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) . +- الحصول على مرجع الشريحة باستخدام الفهرس الخاص بها. +- إضافة AutoShape من نوع Rectangle إلى الشريحة. - إضافة بعض النص إلى TextFrame. - تعيين Language Id للنص. -- كتابة العرض بصيغة ملف PPTX. +- حفظ العرض كملف PPTX. -يتم توضيح تنفيذ الخطوات المذكورة أعلاه في مثال أدناه. +يتم توضيح تنفيذ الخطوات المذكورة أعلاه أدناه في مثال. ```c# using (Presentation pres = new Presentation("test0.pptx")) { @@ -28,16 +28,16 @@ using (Presentation pres = new Presentation("test0.pptx")) ``` -## **الأسئلة الشائعة** +## **الأسئلة المتكررة** -**هل يقوم language_id بتفعيل الترجمة التلقائية للنص؟** +**هل يُؤدي معرف اللغة إلى ترجمة النص تلقائيًا؟** -لا. [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) في Aspose.Slides يخزن اللغة للتدقيق الإملائي وإثبات القواعد، لكنه لا يترجم أو يغير محتوى النص. إنها بيانات وصفية يفهمها PowerPoint للإثبات. +لا. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) في Aspose.Slides يخزن اللغة لتدقيق الإملاء وإثبات القواعد، لكنه لا يترجم أو يغيّر محتوى النص. إنه بيانات وصفية يفهمها PowerPoint لإثبات النص. -**هل يؤثر language_id على التقسيم إلى مقاطع والفواصل خلال العرض؟** +**هل يؤثر معرف اللغة على الفواصل والكسرة أثناء العرض؟** -في Aspose.Slides، [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) مخصص للإثبات. جودة التقسيم إلى مقاطع وتفاف السطر تعتمد أساساً على توفر [proper fonts](/slides/ar/net/powerpoint-fonts/) وإعدادات التخطيط/فواصل السطر لنظام الكتابة. لضمان العرض الصحيح، احرص على توفير الخطوط المطلوبة، وتكوين [font substitution rules](/slides/ar/net/font-substitution/)، و/أو [embed fonts](/slides/ar/net/embedded-font/) في العرض. +في Aspose.Slides، [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) مخصص للإثبات. جودة الفواصل والكسرة تعتمد بشكل أساسي على توفر [الخطوط المناسبة](/slides/ar/net/powerpoint-fonts/) وإعدادات التخطيط/الكسرة للنظام الكتابي. لضمان عرض صحيح، احرص على توفر الخطوط المطلوبة، وتكوين [قواعد استبدال الخط](/slides/ar/net/font-substitution/)، و/أو [تضمين الخطوط](/slides/ar/net/embedded-font/) في العرض. **هل يمكنني تعيين لغات مختلفة داخل فقرة واحدة؟** -نعم. يتم تطبيق [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) على مستوى جزء النص، لذا يمكن لفقرة واحدة دمج لغات متعددة بإعدادات إثبات مختلفة. \ No newline at end of file +نعم. يتم تطبيق [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) على مستوى جزء النص، لذا يمكن لفقرة واحدة أن تمزج عدة لغات بإعدادات إثبات مختلفة. diff --git a/ar/nodejs-java/developer-guide/3d-presentation/_index.md b/ar/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..677aefb344 --- /dev/null +++ b/ar/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,227 @@ +--- +title: عرض ثلاثي الأبعاد +type: docs +weight: 232 +url: /ar/nodejs-java/3d-presentation/ +--- + +## **نظرة عامة** + +منذ نسخة Aspose.Slides for Java 20.9 أصبح من الممكن إنشاء ثلاثي الأبعاد في العروض التقديمية. يُعد PowerPoint 3D طريقة لإضفاء الحيوية على العروض. اعرض كائنات العالم الحقيقي باستخدام عرض ثلاثي الأبعاد، أو استعرض نموذج ثلاثي الأبعاد لمشروع عملك المستقبلي، أو نموذج ثلاثي الأبعاد للمبنى أو داخله، أو نموذج ثلاثي الأبعاد لشخصية اللعبة، أو مجرد تمثيل ثلاثي الأبعاد لبياناتك. + +يمكن إنشاء نماذج PowerPoint 3D من أشكال ثنائية الأبعاد، عن طريق تطبيق هذه التأثيرات عليها: دوران ثلاثي الأبعاد، عمق واستخلاص ثلاثي الأبعاد، تدرج لوني ثلاثي الأبعاد، نص ثلاثي الأبعاد، إلخ. يمكن العثور على قائمة ميزات الثلاثي الأبعاد المطبقة على الأشكال في فئة **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. يمكن الحصول على مثيل الفئة عبر: + +- **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** طريقة لإنشاء نموذج PowerPoint 3D. +- **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** طريقة لإنشاء نص ثلاثي الأبعاد (WordArt). + +يمكن استخدام جميع التأثيرات المُنفذة في **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** لكل من الأشكال والنص. دعونا نلقي نظرة سريعة على الطرق الرئيسية لفئة **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. في المثال التالي +ننشئ شكلاً مستطيلاً ثنائي الأبعاد مع نص عليه. من خلال الحصول على عرض الكاميرا على الشكل، نغيّر دورانه لجعله يبدو كنموذج ثلاثي الأبعاد. ضبط إضاءة مسطحة +واتجاهها إلى أعلى النموذج الثلاثي الأبعاد يضيف حجمًا أكبر للنموذج. تغيير المواد، ارتفاع الاستخلاص واللون يجعل النموذج الثلاثي الأبعاد يبدو أكثر حيوية. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +إليك النموذج الثلاثي الأبعاد الناتج: + +![todo:image_alt_text](img_01_01.png) + +## **دوران ثلاثي الأبعاد** + +يمكن تنفيذ دوران النموذج الثلاثي الأبعاد في PowerPoint عبر القائمة: + +![todo:image_alt_text](img_02_01.png) + +لتدوير النموذج الثلاثي الأبعاد باستخدام Aspose.Slides API، استخدم طريقة **[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)**، واضبط دوران الكاميرا بالنسبة إلى الشكل الثلاثي الأبعاد: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... ضبط باقي معلمات مشهد 3D +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **العمق الثلاثي الأبعاد والاستخلاص** + +تُستخدم طريقتا **[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** و **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** لإنشاء الاستخلاص على الشكل: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); +// ... ضبط باقي معلمات مشهد 3D +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +في PowerPoint، يتم ضبط عمق الشكل عبر: + +![todo:image_alt_text](img_02_02.png) + +## **تدرج لوني ثلاثي الأبعاد** + +يمكن للتدرج الثلاثي الأبعاد إضفاء حجم أكبر على شكل PowerPoint ثلاثي الأبعاد: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +هذا هو الشكل: + +![todo:image_alt_text](img_02_03.png) + +يمكنك أيضًا إنشاء تدرج لوني للصورة: +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. إعداد ثلاثي الأبعاد: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* properties +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +النتيجة: + +![todo:image_alt_text](img_02_04.png) + +## **نص ثلاثي الأبعاد (WordArt)** + +لإنشاء نص ثلاثي الأبعاد (WordArt)، قم بما يلي: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // إعداد تأثير تحويل WordArt "قوس أعلى" + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +النتيجة: + +![todo:image_alt_text](img_02_05.png) + +## **الأسئلة الشائعة** + +**هل سيتم حفظ التأثيرات الثلاثية الأبعاد عند تصدير العرض التقديمي إلى صور/PDF/HTML؟** + +نعم. يقوم محرك Slides 3D بتصيير التأثيرات الثلاثية الأبعاد عند التصدير إلى الصيغ المدعومة ([images](/slides/ar/nodejs-java/convert-powerpoint-to-png/), [PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/), [HTML](/slides/ar/nodejs-java/convert-powerpoint-to-html/), إلخ). + +**هل يمكنني استرجاع القيم "الفعالة" (النهائية) لمعلمات 3D التي تأخذ في الاعتبار السمات والوراثة وما إلى ذلك؟** + +نعم. توفِّر Slides واجهات برمجة تطبيقات ل[قراءة القيم الفعالة](/slides/ar/nodejs-java/shape-effective-properties/) (بما في ذلك للـ 3D—الإضاءة، الحواف، إلخ) حتى تتمكن من رؤية الإعدادات النهائية المطبقة. + +**هل تعمل التأثيرات الثلاثية الأبعاد عند تحويل العرض التقديمي إلى فيديو؟** + +نعم. عند [إنشاء الإطارات للفيديو](/slides/ar/nodejs-java/convert-powerpoint-to-video/)، يتم تصيير التأثيرات الثلاثية الأبعاد بنفس طريقة تصييرها لل[صور المصدَّرَة](/slides/ar/nodejs-java/convert-powerpoint-to-png/). \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..208f545521 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: تحويل OpenOffice ODP +type: docs +weight: 10 +url: /ar/nodejs-java/convert-openoffice-odp/ +keywords: "تحويل ODP إلى PDF، ODP إلى HTML، ODP إلى TIFF في JavaScript" +description: "تحويل ODP إلى PDF، ODP إلى PPT، ODP إلى PPTX، ODP إلى HTML في JavaScript" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) يسمح بتحويل عروض OpenOffice ODP إلى صيغ متعددة. واجهة برمجة التطبيقات لتحويل ODP إلى صيغ أخرى هي نفسها المستخدمة لأنواع PowerPoint. يمكنك استخدام الأمثلة التالية لتحويل ODP، فقط بتغيير ملف المصدر إلى ملف عرض ODP: + +- [تحويل ODP إلى HTML](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [تحويل ODP إلى PDF](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [تحويل ODP إلى TIFF](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [تحويل ODP إلى SWF Flash](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [تحويل ODP إلى XPS](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [تحويل ODP إلى PDF مع الملاحظات](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [تحويل ODP إلى TIFF مع الملاحظات](/slides/ar/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **الأسئلة الشائعة** + +**ماذا لو تغير تنسيق ملف ODP بعد التحويل؟** + +ODP وPowerPoint يستخدمان نماذج عرض مختلفة، وقد لا يتم عرض بعض العناصر—مثل الجداول، الخطوط المخصصة، أو أنماط التعبئة—بنفس الشكل تمامًا. يوصى بمراجعة الناتج وضبط التخطيط أو التنسيق في الكود إذا لزم الأمر. + +**هل أحتاج إلى تثبيت OpenOffice أو LibreOffice لاستخدام تحويل ODP؟** + +لا، Aspose.Slides مكتبة مستقلة ولا تتطلب تثبيت OpenOffice أو LibreOffice على نظامك. + +**هل يمكنني تخصيص صيغة الإخراج أثناء تحويل ODP (مثل ضبط خيارات PDF)؟** + +نعم، Aspose.Slides يوفر خيارات غنية لتخصيص الإخراج. على سبيل المثال، عند الحفظ كملف PDF، يمكنك التحكم في الضغط، جودة الصورة، عرض النص، والمزيد عبر الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/). + +**هل Aspose.Slides مناسب لمعالجة ODP من جانب الخادم أو السحابة؟** + +بالتأكيد. Aspose.Slides مصمم للعمل في بيئات سطح المكتب والخادم، بما في ذلك المنصات السحابية مثل Azure وAWS وحاويات Docker، دون أي تبعيات لواجهة المستخدم. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..2f9252baab --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: تحويل ODP إلى PPTX +type: docs +weight: 10 +url: /ar/nodejs-java/convert-odp-to-pptx/ +--- + +## **تحويل ODP إلى عرض PPTX/PPT** +توفر Aspose.Slides لـ Node.js عبر Java فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) التي تمثل ملف عرض تقديمي. يمكن الآن لفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) أيضًا الوصول إلى ODP عبر مُنشئ [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) عند إنشاء الكائن. يوضح المثال التالي كيفية تحويل عرض تقديمي ODP إلى عرض PPTX. +```javascript +// فتح ملف ODP +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// حفظ عرض ODP إلى صيغة PPTX +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **مثال حي** +يمكنك زيارة تطبيق الويب [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) الذي تم بناؤه باستخدام **Aspose.Slides API**. يُظهر التطبيق كيفية تنفيذ تحويل ODP إلى PPTX باستخدام Aspose.Slides API. + +## **الأسئلة المتكررة** + +**هل أحتاج إلى تثبيت Microsoft PowerPoint أو LibreOffice لتحويل ODP إلى PPTX؟** + +لا. تعمل Aspose.Slides بشكل مستقل ولا تتطلب تطبيقات طرف ثالث لقراءة أو كتابة ODP/PPTX. + +**هل يتم الحفاظ على الشرائح الرئيسية والتخطيطات والسمات أثناء التحويل؟** + +نعم. تستخدم المكتبة نموذج كائن عرض تقديمي كامل وتحتفظ بالبنية، بما في ذلك الشرائح الرئيسية والتخطيطات، بحيث يبقى التصميم صحيحًا بعد التحويل. + +**هل يمكنني تحويل ملفات ODP المحمية بكلمة مرور؟** + +نعم. تدعم Aspose.Slides اكتشاف الحماية، وفتح والعمل مع [protected presentations](/slides/ar/nodejs-java/password-protected-presentation/) (بما في ذلك ODP) عند توفير كلمة المرور، بالإضافة إلى تهيئة التشفير والوصول إلى خصائص المستند. + +**هل Aspose.Slides مناسبة لخدمات التحويل السحابي أو القائمة على REST؟** + +نعم. يمكنك استخدام المكتبة المحلية في الخلفية الخاصة بك أو [Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/) (REST API)؛ كلا الخيارين يدعمان تحويل ODP → PPTX. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..822767f3f3 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,63 @@ +--- +title: تحويل العروض التقديمية في وضع النشرة في JavaScript +type: docs +weight: 150 +url: /ar/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- تحويل PowerPoint +- وضع النشرة +- نشرة +- PowerPoint +- PPT +- PPTX +- عرض تقديمي +- Node.js +- JavaScript +- Aspose.Slides +description: "تحويل العروض التقديمية في وضع النشرة في JavaScript" +--- + +## **تصدير وضع النشرة** + +توفر Aspose.Slides القدرة على تحويل العروض التقديمية إلى صيغ مختلفة، بما في ذلك إنشاء نشرات للطباعة في وضع النشرة. يتيح لك هذا الوضع تكوين كيفية ظهور عدة شرائح على صفحة واحدة، مما يجعله مفيدًا للمؤتمرات والندوات وغيرها من الفعاليات. يمكنك تفعيل هذا الوضع عن طريق ضبط طريقة `setSlidesLayoutOptions` في فئات [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/), و[TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). + +لتكوين وضع النشرة، استخدم كائن [HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/) الذي يحدد عدد الشرائح الموضوعة على صفحة واحدة وغيرها من معلمات العرض. + +فيما يلي مثال على الشيفرة يوضح كيفية تحويل عرض تقديمي إلى PDF في وضع النشرة. +```js +// تحميل عرض تقديمي. +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// تحديد خيارات التصدير. +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 4 شرائح على صفحة واحدة أفقياً +slidesLayoutOptions.setPrintSlideNumbers(true); // طباعة أرقام الشرائح +slidesLayoutOptions.setPrintFrameSlide(true); // طباعة إطار حول الشرائح +slidesLayoutOptions.setPrintComments(false); // بدون تعليقات + +let pdfOptions = new asposeSlides.PdfOptions(); +pdfOptions.setSlidesLayoutOptions(slidesLayoutOptions); + +// تصدير العرض التقديمي إلى PDF مع التخطيط المحدد. +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} +ضع في اعتبارك أن طريقة `setSlidesLayoutOptions` متاحة فقط لبعض صيغ الإخراج، مثل PDF، HTML، TIFF، وعند العرض كصور. +{{% /alert %}} + +## **الأسئلة الشائعة** + +**ما هو الحد الأقصى لعدد صور الشرائح المصغرة لكل صفحة في وضع النشرة؟** + +يدعم Aspose.Slides [الإعدادات المسبقة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) حتى 9 صور مصغرة لكل صفحة بترتيب أفقي أو عمودي: 1، 2، 3، 4 (أفقي/عمودي)، 6 (أفقي/عمودي)، و9 (أفقي/عمودي). + +**هل يمكنني تعريف شبكة مخصصة، مثل 5 أو 8 شرائح لكل صفحة؟** + +لا. يتم التحكم في عدد وترتيب الصور المصغرة بدقة بواسطة تعداد [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/); لا يدعم التخطيطات العشوائية. + +**هل يمكنني تضمين الشرائح المخفية في ناتج النشرة؟** + +نعم. استخدم طريقة `setShowHiddenSlides` في إعدادات التصدير للصيغة المستهدفة، مثل [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/), أو [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..0f271269e4 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,62 @@ +--- +title: تحويل PowerPoint إلى GIF متحرك +type: docs +weight: 65 +url: /ar/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "تحويل PowerPoint إلى GIF متحرك, PPT إلى GIF, PPTX إلى GIF" +description: "تحويل PowerPoint إلى GIF متحرك: PPT إلى GIF, PPTX إلى GIF, باستخدام Aspose.Slides API." +--- + +## **تحويل العروض التقديمية إلى GIF متحرك باستخدام الإعدادات الافتراضية** + +يعرض لك هذا المثال البرمجي بلغة JavaScript كيفية تحويل عرض تقديمي إلى GIF متحرك باستخدام الإعدادات القياسية: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +سيتم إنشاء GIF المتحرك باستخدام المعلمات الافتراضية. + +{{% alert title="TIP" color="primary" %}} +إذا كنت تفضّل تخصيص معلمات GIF، يمكنك استخدام الفئة [GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions). راجع المثال البرمجي أدناه. +{{% /alert %}} + +## **تحويل العروض التقديمية إلى GIF متحرك باستخدام إعدادات مخصصة** + +يعرض لك هذا المثال البرمجي كيفية تحويل عرض تقديمي إلى GIF متحرك باستخدام إعدادات مخصصة في JavaScript: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// حجم GIF الناتج + gifOptions.setDefaultDelay(2000);// المدة التي ستظهر فيها كل شريحة قبل الانتقال إلى التالية + gifOptions.setTransitionFps(35);// زيادة FPS لتحسين جودة حركة الانتقال + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +قد ترغب في تجربة محوّل مجاني من [نص إلى GIF](https://products.aspose.app/slides/text-to-gif) تم تطويره بواسطة Aspose. +{{% /alert %}} + +## **الأسئلة الشائعة** + +**ماذا لو لم تكن الخطوط المستخدمة في العرض التقديمي مثبتة على النظام؟** + +قم بتثبيت الخطوط المفقودة أو [ضبط الخطوط الاحتياطية](/slides/ar/nodejs-java/powerpoint-fonts/). سيقوم Aspose.Slides باستبدالها، لكن قد يختلف الشكل. لضمان التوافق مع العلامة التجارية، تأكد دائماً من توفر الخطوط المطلوبة بشكل صريح. + +**هل يمكنني إضافة علامة مائية على إطارات GIF؟** + +نعم. يمكنك [إضافة عنصر/شعار شبه شفاف](/slides/ar/nodejs-java/watermark/) إلى الشريحة الرئيسية أو إلى الشرائح الفردية قبل التصدير — ستظهر العلامة المائية على كل إطار. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..9e7bb35c48 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,411 @@ +--- +title: تحويل PowerPoint إلى HTML باستخدام JavaScript +linktitle: تحويل PowerPoint إلى HTML +type: docs +weight: 30 +url: /ar/nodejs-java/convert-powerpoint-to-html/ +keywords: "PowerPoint Java إلى HTML, تحويل عرض PowerPoint, PPTX, PPT, PPT إلى HTML, PPTX إلى HTML, PowerPoint إلى HTML, حفظ PowerPoint كـ HTML, حفظ PPT كـ HTML, حفظ PPTX كـ HTML, Java, Aspose.Slides, تصدير HTML" +description: "تحويل PowerPoint إلى HTML باستخدام JavaScript. حفظ PPTX أو PPT كـ HTML في JavaScript. حفظ الشرائح كـ HTML في JavaScript" +--- + +## **نظرة عامة** + +تشرح هذه المقالة كيفية تحويل عرض PowerPoint إلى صيغة HTML باستخدام JavaScript. تغطي المواضيع التالية: + +- تحويل PowerPoint إلى HTML في JavaScript +- تحويل PPT إلى HTML في JavaScript +- تحويل PPTX إلى HTML في JavaScript +- تحويل ODP إلى HTML في JavaScript +- تحويل شريحة PowerPoint إلى HTML في JavaScript + +## **PowerPoint إلى HTML في JavaScript** + +للحصول على عينة كود JavaScript لتحويل PowerPoint إلى HTML، يرجى الاطلاع على القسم أدناه أي [Convert PowerPoint to HTML](#convert-powerpoint-to-html). يمكن للكود تحميل عدد من الصيغ مثل PPT و PPTX و ODP في كائن Presentation وحفظه بصيغة HTML. + +## **حول تحويل PowerPoint إلى HTML** +باستخدام [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/)، يمكن للتطبيقات والمطورين تحويل عرض PowerPoint إلى HTML: **PPTX إلى HTML** أو **PPT إلى HTML**. + +**Aspose.Slides** يوفر العديد من الخيارات (معظمها من فئة [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions)) التي تحدد عملية تحويل PowerPoint إلى HTML: + +* تحويل عرض PowerPoint كامل إلى HTML. +* تحويل شريحة محددة في عرض PowerPoint إلى HTML. +* تحويل وسائط العرض (الصور، الفيديوهات، إلخ) إلى HTML. +* تحويل عرض PowerPoint إلى HTML متجاوب. +* تحويل عرض PowerPoint إلى HTML مع تضمين أو استبعاد ملاحظات المتحدث. +* تحويل عرض PowerPoint إلى HTML مع تضمين أو استبعاد التعليقات. +* تحويل عرض PowerPoint إلى HTML مع الخطوط الأصلية أو المدمجة. +* تحويل عرض PowerPoint إلى HTML مع استخدام نمط CSS الجديد. + +{{% alert color="primary" %}} + +باستخدام API الخاص به، طوّرت Aspose محولات مجانية [من عرض إلى HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html): [PPT إلى HTML](https://products.aspose.app/slides/conversion/ppt-to-html)، [PPTX إلى HTML](https://products.aspose.app/slides/conversion/pptx-to-html)، [ODP إلى HTML](https://products.aspose.app/slides/conversion/odp-to-html)، إلخ. + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +قد ترغب في الاطلاع على محولات مجانية أخرى من Aspose عبر هذا الرابط: [free converters from Aspose](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +بالإضافة إلى عمليات التحويل المذكورة هنا، يدعم Aspose.Slides عمليات التحويل التالية المتعلقة بصيغة HTML: + +* [HTML إلى صورة](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML إلى XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML إلى TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + +## **تحويل PowerPoint إلى HTML** +باستخدام Aspose.Slides، يمكنك تحويل عرض PowerPoint كامل إلى HTML بهذه الطريقة: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. استخدم طريقة [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) لحفظ الكائن كملف HTML. + +يظهر هذا الكود كيفية تحويل PowerPoint إلى HTML في JavaScript: +```javascript +// إنشاء كائن Presentation يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // حفظ العرض التقديمي إلى HTML + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى HTML متجاوب** +توفر Aspose.Slides الفئة [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController) التي تسمح بإنشاء ملفات HTML متجاوبة. يوضح هذا الكود كيفية تحويل عرض PowerPoint إلى HTML متجاوب في JavaScript: +```javascript +// إنشاء كائن Presentation يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // حفظ العرض التقديمي إلى HTML + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى HTML مع ملاحظات** +يظهر هذا الكود كيفية تحويل PowerPoint إلى HTML مع الملاحظات في JavaScript: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // حفظ صفحات الملاحظات + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى HTML مع الخطوط الأصلية** + +توفر Aspose.Slides الفئة [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) التي تسمح بدمج جميع الخطوط في العرض أثناء تحويله إلى HTML. + +لمنع دمج خطوط معينة، يمكنك تمرير مصفوفة من أسماء الخطوط إلى المُنشئ المParameterized من فئة [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController). الخطوط الشائعة، مثل Calibri أو Arial، عند استخدامها في العرض، لا يلزم دمجها لأن معظم الأنظمة تحتوي عليها مسبقًا. عندما يتم دمج تلك الخطوط، يصبح مستند HTML الناتج كبيرًا بشكل غير ضروري. + +تدعم فئة [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) الميراث وتوفر طريقة [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-) التي يُقصد تجاوزها. +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // استبعاد خطوط العرض التقديمي الافتراضية + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى HTML مع صور عالية الجودة** + +بشكل افتراضي، عند تحويل PowerPoint إلى HTML، ينتج Aspose.Slides ملفات HTML صغيرة مع صور بدقة 72 DPI ومناطق مقصوصة محذوفة. للحصول على ملفات HTML بصور ذات جودة أعلى، عليك تمرير القيمة `96` إلى طريقة `setPicturesCompression` من فئة `HtmlOptions` (أي `PicturesCompression.Dpi96`) أو قيم أعلى كما هو موضح في [القيم المتاحة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PicturesCompression). + +يُظهر هذا الكود JavaScript كيفية تحويل عرض PowerPoint إلى HTML مع الحصول على صور عالية الجودة بدقة 150 DPI (أي `PicturesCompression.Dpi150`): +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +هذا الكود في JavaScript يُظهر كيفية إخراج HTML مع صور بجودة كاملة: +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل الشريحة إلى HTML** +لتحويل شريحة معينة في PowerPoint إلى HTML، عليك إنشاء مثيل من نفس الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) (المستخدمة لتحويل العروض الكلية إلى HTML) ثم استخدام طريقة [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) لحفظ الملف كـ HTML. يمكن استخدام فئة [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) لتحديد خيارات تحويل إضافية: + +يُظهر هذا الكود JavaScript كيفية تحويل شريحة في عرض PowerPoint إلى HTML: +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // حفظ الملف + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **حفظ CSS والصور عند التصدير إلى HTML** +باستخدام ملفات نمط CSS الجديدة، يمكنك بسهولة تغيير نمط ملف HTML الناتج عن عملية تحويل PowerPoint إلى HTML. + +يُظهر الكود JavaScript في هذا المثال كيفية استخدام طرق يمكن تجاوزها لإنشاء مستند HTML مخصص مع رابط إلى ملف CSS: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +ستحتاج إلى تنفيذ `CustomHeaderAndFontsController` في Java، تجميعه، وإضافته إلى موقع الوحدة \aspose.slides.via.java\lib\. +يُظهر هذا الكود Java كيفية تنفيذ `CustomHeaderAndFontsController`: +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // قالب رأس مخصص + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **ربط جميع الخطوط عند تحويل العرض إلى HTML** + +إذا كنت لا ترغب في دمج الخطوط (لتجنب زيادة حجم HTML الناتج)، يمكنك ربط جميع الخطوط عبر تنفيذ نسخة خاصة من `LinkAllFontsHtmlController`. + +يُظهر هذا الكود JavaScript كيفية تحويل PowerPoint إلى HTML مع ربط جميع الخطوط واستثناء "Calibri" و "Arial" (لأنهما موجودتان بالفعل في النظام): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // استبعاد خطوط العرض التقديمي الافتراضية + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +ستحتاج إلى تنفيذ `LinkAllFontsHtmlController` في Java، تجميعه، وإضافته إلى موقع الوحدة \aspose.slides.via.java\lib\. +يُظهر هذا الكود Java كيفية تنفيذ `LinkAllFontsHtmlController`: +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // قد يكون من الضروري تنقية المسار + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **تحويل PowerPoint إلى HTML متجاوب** +يُظهر هذا الكود JavaScript كيفية تحويل عرض PowerPoint إلى HTML متجاوب: +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **استخراج ملفات الوسائط إلى HTML** +باستخدام Aspose.Slides for Node.js via Java، يمكنك استخراج ملفات الوسائط بهذه الطريقة: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. الحصول على مرجع إلى الشريحة. +1. إضافة فيديو إلى الشريحة. +1. كتابة العرض كملف HTML. + +يُظهر هذا الكود JavaScript كيفية إضافة فيديو إلى العرض ثم حفظه كـ HTML: +```javascript +// تحميل عرض تقديمي +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // تعيين خيارات HTML + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // حفظ الملف + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**ما هو أداء Aspose.Slides عند تحويل عروض متعددة إلى HTML؟** + +يعتمد الأداء على حجم وتعقيد العروض. Aspose.Slides فعال للغاية وقابل للتوسع للعمليات الدفعية. لتحقيق الأداء المثالي عند تحويل عدد كبير من العروض، يُنصح باستخدام المعالجة المتعددة الخيوط أو المعالجة المتوازية كلما كان ذلك ممكنًا. + +**هل يدعم Aspose.Slides تصدير الروابط التشعبية إلى HTML؟** + +نعم، يدعم Aspose.Slides بالكامل تصدير الروابط التشعبية المدمجة إلى HTML. عندما تقوم بتحويل العروض إلى صيغة HTML، تُحافظ الروابط التشعبية تلقائيًا وتظل قابلة للنقر. + +**هل هناك حد لعدد الشرائح عند تحويل العروض إلى HTML؟** + +لا يوجد حد لعدد الشرائح عند استخدام Aspose.Slides. يمكنك تحويل عروض بأي حجم. ومع ذلك، بالنسبة للعروض التي تحتوي على عدد كبير جدًا من الشرائح، قد يعتمد الأداء على الموارد المتاحة على الخادم أو النظام الخاص بك. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..af1f7f8b21 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,144 @@ +--- +title: تحويل PowerPoint إلى JPG +type: docs +weight: 60 +url: /ar/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "تحويل PowerPoint إلى JPG, PPTX إلى JPEG, PPT إلى JPEG" +description: "تحويل PowerPoint إلى JPG: PPT إلى JPG, PPTX إلى JPG في JavaScript" +--- + +## **حول تحويل PowerPoint إلى JPG** +مع [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) يمكنك تحويل عرض تقديمي PowerPoint PPT أو PPTX إلى صورة JPG. كما يمكن تحويل PPT/PPTX إلى JPEG أو PNG أو SVG. باستخدام هذه الميزات يصبح من السهل تنفيذ عارض عروض تقديمية خاص بك، وإنشاء صورة مصغرة لكل شريحة. قد يكون هذا مفيدًا إذا رغبت في حماية شرائح العرض من النسخ، أو عرض العرض في وضع القراءة فقط. يسمح Aspose.Slides بتحويل العرض بالكامل أو شريحة معينة إلى صيغ صور. + +{{% alert color="primary" %}} + +لمعرفة كيفية تحويل PowerPoint إلى صور JPG باستخدام Aspose.Slides، يمكنك تجربة هذه المحولات المجانية عبر الإنترنت: PowerPoint [PPTX إلى JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) و [PPT إلى JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg). + +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **تحويل PowerPoint PPT/PPTX إلى JPG** +فيما يلي خطوات تحويل PPT/PPTX إلى JPG: + +1. إنشاء كائن من النوع [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. الحصول على كائن الشريحة من نوع [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) عبر مجموعة [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) . +3. إنشاء الصورة المصغرة لكل شريحة ثم تحويلها إلى JPG. يتم استخدام طريقة [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) للحصول على صورة مصغرة للشريحة، وتعيد كائن [Imagess](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images). يجب استدعاء طريقة [getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) من الشريحة المطلوبة من نوع [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide)، حيث يتم تمرير مقاييس الصورة المصغرة إلى الطريقة. +4. بعد الحصول على الصورة المصغرة للشريحة، استدعِ طريقة [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) من كائن الصورة المصغرة. مرّر اسم الملف الناتج وصيغة الصورة إليها. + +{{% alert color="primary" %}} + +**ملاحظة**: تختلف عملية تحويل PPT/PPTX إلى JPG عن التحويل إلى صيغ أخرى في Aspose.Slides API. بالنسبة للأنواع الأخرى، عادةً ما تستخدم طريقة [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-)، ولكن هنا تحتاج إلى طريقة [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)). + +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // ينشئ صورة بحجم كامل + var slideImage = sld.getImage(1.0, 1.0); + // يحفظ الصورة على القرص بصيغة JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint PPT/PPTX إلى JPG بأبعاد مخصصة** +لتغيير أبعاد الصورة المصغرة الناتجة وصورة JPG، يمكنك تعيين قيم *ScaleX* و *ScaleY* بتمريرها إلى طريقة [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-): +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // تعريف الأبعاد + var desiredX = 1200; + var desiredY = 800; + // الحصول على قيم X و Y المُقاسة + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // إنشاء صورة بالحجم الكامل + var slideImage = sld.getImage(ScaleX, ScaleY); + // حفظ الصورة على القرص بصيغة JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **عرض التعليقات عند حفظ العرض كصورة** +يوفر Aspose.Slides للـ Node.js عبر Java إمكانية عرض التعليقات في شرائح العرض عند تحويلها إلى صور. يوضح هذا الكود JavaScript العملية: +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +تقدم Aspose تطبيقًا ويبًا مجانيًا للملصقات ([Collage](https://products.aspose.app/slides/collage)). باستخدام هذه الخدمة عبر الإنترنت، يمكنك دمج [JPG إلى JPG](https://products.aspose.app/slides/collage/jpg) أو PNG إلى PNG، إنشاء [شبكات صور](https://products.aspose.app/slides/collage/photo-grid) وغيرها. + +باستخدام نفس المبادئ المذكورة في هذه المقالة، يمكنك تحويل الصور من صيغة إلى أخرى. للمزيد من المعلومات، راجع الصفحات التالية: تحويل [صورة إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); تحويل [JPG إلى صورة](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); تحويل [JPG إلى PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/)، تحويل [PNG إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); تحويل [PNG إلى SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/)، تحويل [SVG إلى PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **انظر أيضًا** + +انظر خيارات أخرى لتحويل PPT/PPTX إلى صورة مثل: + +- [تحويل PPT/PPTX إلى SVG](/slides/ar/nodejs-java/render-a-slide-as-an-svg-image/). + +## **الأسئلة الشائعة** + +**هل يدعم هذا الأسلوب التحويل الدفعي؟** + +نعم، يتيح Aspose.Slides التحويل الدفعي لعدة شرائح إلى JPG في عملية واحدة. + +**هل يدعم التحويل كائنات SmartArt والرسوم البيانية والكائنات المعقدة الأخرى؟** + +نعم، يقوم Aspose.Slides بتص rendering جميع المحتويات، بما في ذلك SmartArt والرسوم البيانية والجداول والأشكال وغيرها. ومع ذلك، قد تختلف دقة العرض قليلًا مقارنةً بـ PowerPoint، خاصةً عند استخدام خطوط مخصصة أو مفقودة. + +**هل هناك أي قيود على عدد الشرائح التي يمكن معالجتها؟** + +لا يفرض Aspose.Slides حدًا صريحًا على عدد الشرائح التي يمكنك معالجتها. إلا أنه قد تواجه خطأ نفاد الذاكرة عند العمل على عروض تقديمية كبيرة أو صور بدقة عالية. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..08e65b4649 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,120 @@ +--- +title: تحويل PowerPoint إلى Markdown باستخدام JavaScript +type: docs +weight: 140 +url: /ar/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "تحويل PowerPoint إلى Markdown, تحويل ppt إلى md, PowerPoint, PPT, PPTX, عرض تقديمي, Markdown, Java, Aspose.Slides لـ Node.js عبر Java" +description: تحويل PowerPoint إلى Markdown باستخدام JavaScript +--- + +{{% alert color="info" %}} + +تم تنفيذ دعم تحويل PowerPoint إلى markdown في [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/). + +{{% /alert %}} + +{{% alert color="warning" %}} + +يكون تصدير PowerPoint إلى markdown **بدون صور** بشكل افتراضي. إذا كنت تريد تصدير مستند PowerPoint يحتوي على صور، تحتاج إلى استدعاء `markdownSaveOptions.setExportType(MarkdownExportType.Visual)` وأيضًا تعيين `BasePath` حيث سيتم حفظ الصور المشار إليها في مستند markdown. + +{{% /alert %}} + +## **تحويل PowerPoint إلى Markdown** + +1. إنشاء نسخة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) لتمثيل كائن عرض تقديمي. +2. استخدام طريقة [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) لحفظ الكائن كملف markdown. + +هذا الكود JavaScript يوضح لك كيفية تحويل PowerPoint إلى markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى صيغة Markdown** + +تتيح لك Aspose.Slides تحويل PowerPoint إلى markdown (بصيغة أساسية)، CommonMark، GitHub flavored markdown، Trello، XWiki، GitLab، و 17 صيغة markdown أخرى. + +هذا الكود JavaScript يوضح لك كيفية تحويل PowerPoint إلى CommonMark: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +الصيغ الـ23 المدعومة للـmarkdown مدرجة تحت تعداد [Flavor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) من فئة [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/). + +## **تحويل عرض تقديمي يحتوي على صور إلى Markdown** + +توفر فئة [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) خصائص وتعدادات تتيح لك استخدام خيارات أو إعدادات معينة للملف markdown الناتج. على سبيل المثال، يمكن ضبط تعداد [MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/) إلى قيم تحدد كيفية عرض أو معالجة الصور: `Sequential`، `TextOnly`، `Visual`. + +### **تحويل الصور تسلسليًا** + +إذا كنت تريد ظهور الصور بشكل فردي واحدة تلو الأخرى في markdown الناتج، يجب اختيار الخيار التسلسلي. هذا الكود JavaScript يوضح لك كيفية تحويل عرض تقديمي يحتوي على صور إلى markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تحويل الصور بصريًا** + +إذا كنت تريد ظهور الصور معًا في markdown الناتج، يجب اختيار الخيار البصري. في هذه الحالة، سيتم حفظ الصور في الدليل الحالي للتطبيق (وسيتم إنشاء مسار نسبي لها في مستند markdown)، أو يمكنك تحديد المسار المفضل واسم المجلد. + +هذا الكود JavaScript يوضح العملية: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل تحافظ الارتباطات التشعبية على وجودها بعد التصدير إلى Markdown؟** + +نعم. يتم الحفاظ على النصوص [الارتباطات التشعبية](/slides/ar/nodejs-java/manage-hyperlinks/) كروابط Markdown قياسية. ولا يتم تحويل [الانتقالات](/slides/ar/nodejs-java/slide-transition/) و[الرسوم المتحركة](/slides/ar/nodejs-java/powerpoint-animation/). + +**هل يمكنني تسريع التحويل عبر تشغيله في عدة خيوط؟** + +يمكنك تنفيذ التحويل بالتوازي عبر الملفات، لكن لا يجب [عدم المشاركة](/slides/ar/nodejs-java/multithreading/) لنفس نسخة [Presentation] عبر الخيوط. استخدم نسخًا/عمليات منفصلة لكل ملف لتجنب النزاع. + +**ماذا يحدث للصور — أين يتم حفظها، وهل المسارات نسبية؟** + +[الصور](/slides/ar/nodejs-java/image/) يتم تصديرها إلى مجلد مخصص، ويشير ملف Markdown إليها باستخدام مسارات نسبية بشكل افتراضي. يمكنك تكوين المسار الأساسي للإخراج واسم مجلد الأصول للحفاظ على بنية مستودع متوقعة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..35cd2d09ce --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,326 @@ +--- +title: تحويل PPT و PPTX إلى PDF في JavaScript [متضمنة الميزات المتقدمة] +linktitle: تحويل PPT و PPTX إلى PDF +type: docs +weight: 40 +url: /ar/nodejs-java/convert-powerpoint-to-pdf/ +keywords: +- تحويل PowerPoint +- تحويل العرض التقديمي +- PowerPoint إلى PDF +- العرض التقديمي إلى PDF +- PPT إلى PDF +- تحويل PPT إلى PDF +- تحويل PPTX إلى PDF +- ODP إلى PDF +- تحويل ODP إلى PDF +- حفظ PowerPoint كملف PDF +- PDF/A1a +- PDF/A1b +- PDF/UA +- JavaScript +- Node.js +- Aspose.Slides لـ Node.js عبر Java +description: "تعرف على كيفية تحويل عروض PPT و PPTX و ODP إلى PDF في JavaScript باستخدام Aspose.Slides. تنفيذ ميزات متقدمة مثل الحماية بكلمة مرور، معايير الامتثال، وخيارات مخصصة للحصول على مستندات PDF عالية الجودة ومتاحة." +--- + +## **نظرة عامة** + +تحويل عروض PowerPoint وOpenDocument (PPT، PPTX، ODP، إلخ) إلى تنسيق PDF باستخدام JavaScript يقدم عدة مزايا، بما في ذلك التوافق عبر الأجهزة المختلفة والحفاظ على تخطيط وتنسيق عرضك التقديمي. يوضح هذا الدليل كيفية تحويل العروض إلى مستندات PDF، واستخدام خيارات مختلفة للتحكم في جودة الصور، وإضافة الشرائح المخفية، وحماية ملفات PDF بكلمة مرور، واكتشاف استبدال الخطوط، واختيار شرائح محددة للتحويل، وتطبيق معايير الامتثال على المستندات الناتجة. + +## **تحويلات PowerPoint إلى PDF** + +* **PPT** +* **PPTX** +* **ODP** + +لتحويل عرض تقديمي إلى PDF، مرّر اسم الملف كمعامل إلى الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) ثم احفظ العرض بتنسيق PDF باستخدام طريقة `save`. تُظهر الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) طريقة `save` التي تُستخدم عادةً لتحويل العرض إلى PDF. + +{{% alert title="ملاحظة" color="warning" %}} + +تقوم Aspose.Slides لـ Node.js عبر Java بإدراج معلومات واجهة برمجة التطبيقات ورقم الإصدار في المستندات الناتجة. على سبيل المثال، عند تحويل عرض تقديمي إلى PDF، تقوم Aspose.Slides بملء حقل التطبيق بـ "*Aspose.Slides*" وحقل منتج PDF بقيمة بصيغة "*Aspose.Slides v XX.XX*". **ملاحظة** أنه لا يمكنك توجيه Aspose.Slides لتغيير أو إزالة هذه المعلومات من المستندات الناتجة. + +{{% /alert %}} + +تتيح لك Aspose.Slides تحويل: + +* العروض الكاملة إلى PDF +* شرائح محددة من عرض تقديمي إلى PDF + +تقوم Aspose.Slides بتصدير العروض إلى PDF، مما يضمن أن ملفات PDF الناتجة تتطابق بشكل كبير مع العروض الأصلية. يتم عرض العناصر والسمات بدقة في عملية التحويل، بما في ذلك: + +* الصور +* مربعات النص والأشكال +* تنسيق النص +* تنسيق الفقرات +* الروابط التشعبية +* رؤوس وتذييلات الصفحات +* الرصاصات +* الجداول + +## **تحويل PowerPoint إلى PDF** + +تستخدم عملية التحويل القياسية من PowerPoint إلى PDF الخيارات الافتراضية. في هذه الحالة، تحاول Aspose.Slides تحويل العرض المقدم إلى PDF باستخدام إعدادات مثلى بأعلى مستويات الجودة. + +This code shows you how to convert a presentation (PPT, PPTX, ODP, etc.) to PDF: +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // حفظ العرض التقديمي كملف PDF. + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} + +تقدم Aspose أداة تحويل مجانية عبر الإنترنت **محول PowerPoint إلى PDF** توضح عملية تحويل العرض إلى PDF. يمكنك إجراء اختبار باستخدام هذه الأداة لتطبيق عملي للإجراءات الموضحة هنا. + +{{% /alert %}} + +## **تحويل PowerPoint إلى PDF مع خيارات** + +توفر Aspose.Slides خيارات مخصصة—خصائص ضمن الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)— التي تتيح لك تخصيص ملف PDF الناتج، أو قفل PDF بكلمة مرور، أو تحديد كيفية سير عملية التحويل. + +### **تحويل PowerPoint إلى PDF مع خيارات مخصصة** + +باستخدام خيارات التحويل المخصصة، يمكنك تحديد إعداد الجودة المفضل للصور النقطية، وتحديد كيفية معالجة ملفات الميتا، وضبط مستوى ضغط النص، وتكوين DPI للصور، وأكثر من ذلك. + +The code example below demonstrates how to convert a PowerPoint presentation to PDF with several custom options. +```js +// إنشاء كائن من فئة PdfOptions. +let pdfOptions = new aspose.slides.PdfOptions(); + +// تعيين جودة صور JPG. +pdfOptions.setJpegQuality(java.newByte(90)); + +// تعيين DPI للصور. +pdfOptions.setSufficientResolution(300); + +// تعيين سلوك ملفات الميتا. +pdfOptions.setSaveMetafilesAsPng(true); + +// تعيين مستوى ضغط النص للمحتوى النصي. +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// تعريف وضع الامتثال PDF. +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // حفظ العرض التقديمي كملف PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **تحويل PowerPoint إلى PDF مع الشرائح المخفية** + +إذا كان العرض يحتوي على شرائح مخفية، يمكنك استخدام طريقة [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) من الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) لتضمين الشرائح المخفية كصفحات في ملف PDF الناتج. + +This JavaScript code shows how to convert a PowerPoint presentation to PDF with hidden slides included: +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument file. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // إنشاء كائن من فئة PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // إضافة الشرائح المخفية. + pdfOptions.setShowHiddenSlides(true); + + // حفظ العرض التقديمي كملف PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **تحويل PowerPoint إلى PDF محمي بكلمة مرور** + +This JavaScript code demonstrates how to convert a PowerPoint presentation into a password-protected PDF using the protection parameters from the [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) class: +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument file. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // إنشاء كائن من فئة PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // تعيين كلمة مرور PDF وأذونات الوصول. + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // حفظ العرض التقديمي كملف PDF. + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **اكتشاف استبدال الخطوط** + +توفر Aspose.Slides طريقة [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) ضمن الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)، مما يتيح لك اكتشاف استبدال الخطوط أثناء عملية تحويل العرض إلى PDF. + +This JavaScript code shows how to detect font substitutions: +```js +// تعيين رد نداء التحذير في خيارات PDF. +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument. +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// حفظ العرض التقديمي كملف PDF. +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} + +لمزيد من المعلومات حول استلام ردود النداء لاستبدال الخطوط أثناء عملية العرض، راجع [الحصول على ردود النداء للتحذير لاستبدال الخطوط](/slides/ar/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/). + +لمزيد من المعلومات حول استبدال الخطوط، راجع المقالة [استبدال الخطوط](/slides/ar/nodejs-java/font-substitution/). + +{{% /alert %}} + +## **تحويل الشرائح المحددة في PowerPoint إلى PDF** + +This JavaScript code demonstrates how to convert only specific slides from a PowerPoint presentation to PDF: +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument file. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // تعيين مصفوفة أرقام الشرائح. + let slides = java.newArray("int", [1, 3]); + + // حفظ العرض التقديمي كملف PDF. + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **تحويل PowerPoint إلى PDF بحجم شريحة مخصص** + +```js +const slideWidth = 612; +const slideHeight = 792; + +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// إنشاء عرض تقديمي جديد بحجم شريحة معدل. +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // تعيين حجم الشريحة المخصص. + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // استنساخ الشريحة الأولى من العرض التقديمي الأصلي. + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // حفظ العرض التقديمي المعاد تحجيمه إلى PDF مع الملاحظات. + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **تحويل PowerPoint إلى PDF في عرض ملاحظات الشريحة** + +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint أو OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // تكوين خيارات PDF باستخدام تخطيط الملاحظات. + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // حفظ العرض التقديمي إلى PDF مع الملاحظات. + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **معايير الوصول والامتثال لملفات PDF** + +تتيح لك Aspose.Slides استخدام إجراء تحويل يتوافق مع [إرشادات إمكانية الوصول إلى محتوى الويب (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html). يمكنك تصدير مستند PowerPoint إلى PDF باستخدام أيٍ من هذه المعايير المطلوبة: **PDF/A1a**، **PDF/A1b**، و **PDF/UA**. + +This JavaScript code demonstrates a PowerPoint-to-PDF conversion process that produces multiple PDFs based on different compliance standards: +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="ملاحظة" color="warning" %}} + +تدعم Aspose.Slides عمليات تحويل PDF، مما يتيح لك تحويل ملفات PDF إلى صيغ شائعة. يمكنك إجراء التحويلات [PDF إلى HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/)، [PDF إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/)، و[PDF إلى PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/). كما يتم دعم عمليات تحويل PDF إلى صيغ متخصصة—[PDF إلى SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/)، [PDF إلى TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/)—. + +{{% /alert %}} + +## **الأسئلة المتكررة** + +**هل يمكنني تحويل عدة ملفات PowerPoint إلى PDF دفعيًا؟** + +نعم، تدعم Aspose.Slides التحويل الدفعي لعدة ملفات PPT أو PPTX إلى PDF. يمكنك المرور على ملفاتك وتطبيق عملية التحويل برمجيًا. + +**هل من الممكن حماية PDF المحول باستخدام كلمة مرور؟** + +بالطبع. استخدم الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) لتعيين كلمة مرور وتحديد أذونات الوصول أثناء عملية التحويل. + +**كيف يمكنني تضمين الشرائح المخفية في PDF؟** + +استخدم طريقة `setShowHiddenSlides` في الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) لتضمين الشرائح المخفية في PDF الناتج. + +**هل يمكن لـ Aspose.Slides الحفاظ على جودة صور عالية في PDF؟** + +نعم، يمكنك التحكم في جودة الصور باستخدام طرق مثل `setJpegQuality` و`setSufficientResolution` في الفئة [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) لضمان صور عالية الجودة في ملف PDF الخاص بك. + +**هل تدعم Aspose.Slides معايير الامتثال PDF/A؟** + +نعم، تتيح لك Aspose.Slides تصدير ملفات PDF التي تتوافق مع معايير مختلفة، بما في ذلك PDF/A1a، PDF/A1b، وPDF/UA، مما يضمن أن مستنداتك تلبي متطلبات الوصول والحفظ. + +## **موارد إضافية** + +- [توثيق Aspose.Slides لـ Node.js عبر Java](/slides/ar/nodejs-java/) +- [مرجع API لـ Aspose.Slides لـ Node.js عبر Java](https://reference.aspose.com/slides/nodejs-java/) +- [محولات Aspose المجانية عبر الإنترنت](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..5de5b246a5 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,113 @@ +--- +title: تحويل PowerPoint إلى PNG +type: docs +weight: 30 +url: /ar/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint إلى PNG, PPT إلى PNG, PPTX إلى PNG, java, Aspose.Slides لـ Node.js عبر Java +description: تحويل عرض PowerPoint التقديمي إلى PNG +--- + +## **حول تحويل PowerPoint إلى PNG** + +تنسيق PNG (Portable Network Graphics) ليس شائعًا كما JPEG (Joint Photographic Experts Group)، لكنه لا يزال شائعًا جدًا. + +**حالة الاستخدام:** عندما يكون لديك صورة معقدة ولا تكون الحجم مشكلة، فإن PNG هو تنسيق صورة أفضل من JPEG. + +{{% alert title="Tip" color="primary" %}} قد ترغب في الاطلاع على محولات Aspose المجانية **PowerPoint to PNG Converters**: [PPTX to PNG](https://products.aspose.app/slides/conversion/pptx-to-png) و[PPT to PNG](https://products.aspose.app/slides/conversion/ppt-to-png). إنها تنفيذ حي للعملية الموصوفة في هذه الصفحة. {{% /alert %}} + +## **تحويل PowerPoint إلى PNG** + +اتبع الخطوات التالية: + +1. إنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. احصل على كائن الشريحة من المجموعة التي تُرجعها الطريقة [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) ضمن الفئة [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide). +3. استخدم الطريقة [Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) للحصول على الصورة المصغرة لكل شريحة. +4. استخدم الطريقة [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) لحفظ الصورة المصغرة للشريحة بتنسيق PNG. + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى PNG بأبعاد مخصصة** + +إذا كنت تريد الحصول على ملفات PNG بحجم معين، يمكنك تعيين القيم لـ `desiredX` و `desiredY`، والتي تحدد أبعاد الصورة المصغرة الناتجة. + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل PowerPoint إلى PNG بحجم مخصص** + +إذا كنت تريد الحصول على ملفات PNG بحجم معين، يمكنك تمرير القيم المفضلة لـ `width` و `height` كوسائط لـ `ImageSize`. + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**كيف يمكنني تصدير شكل معين فقط (مثل مخطط أو صورة) بدلاً من الشريحة كاملة؟** +Aspose.Slides يدعم [إنشاء صور مصغرة للأشكال الفردية](/slides/ar/nodejs-java/create-shape-thumbnails/); يمكنك تحويل شكل إلى صورة PNG. + +**هل يدعم التحويل المتوازي على الخادم؟** +نعم، لكن لا يجب [مشاركة](/slides/ar/nodejs-java/multithreading/) كائن العرض الواحد عبر الخيوط. استخدم كائنًا منفصلًا لكل خيط أو عملية. + +**ما هي قيود الإصدار التجريبي عند التصدير إلى PNG؟** +وضع التقييم يضيف علامة مائية إلى الصور الناتجة ويفرض [قيودًا أخرى](/slides/ar/nodejs-java/licensing/) حتى يتم تطبيق الترخيص. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..c4f167115b --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,40 @@ +--- +title: تحويل PowerPoint إلى SWF Flash +type: docs +weight: 80 +url: /ar/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT, PPTX إلى SWF" +description: "تحويل PowerPoint PPT، PPTX إلى SWF في JavaScript" +--- + +## **تحويل PPT(X) إلى SWF** +يمكن استخدام طريقة [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) المعرضة من قبل فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) لتحويل العرض التقديمي بالكامل إلى مستند **SWF**. يوضح المثال التالي كيفية تحويل عرض تقديمي إلى مستند **SWF** باستخدام الخيارات التي توفرها فئة [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) . يمكنك أيضًا تضمين التعليقات في ملف SWF المُولد باستخدام فئة [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) وفئة [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions) . +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // حفظ العرض التقديمي + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل يمكنني تضمين الشرائح المخفية في ملف SWF؟** +نعم. استخدم طريقة [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) في فئة [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/). بشكل افتراضي، لا يتم تصدير الشرائح المخفية. + +**كيف يمكنني التحكم في الضغط وحجم ملف SWF النهائي؟** +استخدم طريقة [setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) وطريقة [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/) لتحقيق التوازن بين حجم الملف وجودة الصورة. + +**ما هو الغرض من 'setViewerIncluded' ومتى يجب استخدامه؟** +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) يضيف واجهة مستخدم مدمجة للمشغل (عناصر تحكم التنقل، اللوحات، البحث). استخدمه إذا كنت تخطط لاستخدام مشغلك الخاص أو تحتاج إلى إطار SWF بسيط بدون واجهة. + +**ماذا يحدث إذا كان الخط المصدر مفقودًا على جهاز التصدير؟** +ستقوم Aspose.Slides باستبدال الخط الذي تحدده عبر [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) في فئة [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) لتجنب الرجوع غير المقصود. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..feaa624e97 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,91 @@ +--- +title: تحويل PowerPoint إلى TIFF مع الملاحظات في JavaScript +linktitle: PowerPoint إلى TIFF مع الملاحظات +type: docs +weight: 100 +url: /ar/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- تحويل PowerPoint إلى TIFF +- تحويل العرض التقديمي إلى TIFF +- تحويل الشريحة إلى TIFF +- تحويل PPT إلى TIFF +- تحويل PPTX إلى TIFF +- تحويل ODP إلى TIFF +- PowerPoint إلى TIFF +- العرض التقديمي إلى TIFF +- الشريحة إلى TIFF +- PPT إلى TIFF +- PPTX إلى TIFF +- ODP إلى TIFF +- PowerPoint مع الملاحظات +- العرض التقديمي مع الملاحظات +- الشريحة مع الملاحظات +- PPT مع الملاحظات +- PPTX مع الملاحظات +- ODP مع الملاحظات +- TIFF مع الملاحظات +- Node.js +- JavaScript +- Aspose.Slides +description: "تحويل عروض PowerPoint وOpenDocument إلى TIFF مع الملاحظات باستخدام Aspose.Slides لـ Node.js عبر Java. تعلم كيفية تصدير الشرائح مع ملاحظات المتحدث بكفاءة." +--- + +## **نظرة عامة** + +Aspose.Slides for Node.js via Java يوفر حلاً بسيطًا لتحويل عروض PowerPoint وOpenDocument (PPT, PPTX, وODP) مع الملاحظات إلى صيغة TIFF. تُستخدم هذه الصيغة على نطاق واسع لتخزين الصور عالية الجودة، الطباعة، وأرشفة المستندات. مع Aspose.Slides، يمكنك ليس فقط تصدير العروض بالكامل مع ملاحظات المتحدث بل أيضًا إنشاء صور مصغرة للشرائح في عرض ملاحظات الشريحة. عملية التحويل بسيطة وفعّالة، باستخدام طريقة `save` من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) لتحويل العرض بالكامل إلى سلسلة من صور TIFF مع الحفاظ على الملاحظات والتخطيط. + +## **تحويل عرض تقديمي إلى TIFF مع الملاحظات** + +حفظ عرض PowerPoint أو OpenDocument إلى TIFF مع الملاحظات باستخدام Aspose.Slides for Node.js via Java يتضمن الخطوات التالية: + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/): تحميل ملف PowerPoint أو OpenDocument. +1. تكوين خيارات تخطيط الإخراج: استخدم فئة [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/) لتحديد كيفية عرض الملاحظات والتعليقات. +1. حفظ العرض بتنسيق TIFF: مرّر الخيارات المُكوَّنة إلى طريقة [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save). + +لنفترض أن لدينا الملف "speaker_notes.pptx" مع الشريحة التالية: + +![شريحة العرض التقديمي مع ملاحظات المتحدث](slide_with_notes.png) + +المقتطف البرمجي أدناه يوضح كيفية تحويل العرض إلى صورة TIFF في عرض ملاحظات الشريحة باستخدام طريقة [setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions). +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي. +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // عرض الملاحظات أسفل الشريحة. + + // تكوين خيارات TIFF مع تخطيط الملاحظات. + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // حفظ العرض التقديمي إلى TIFF مع ملاحظات المتحدث. + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +النتيجة: + +![صورة TIFF مع ملاحظات المتحدث](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} +تحقق من Aspose [Free PowerPoint to Poster Converter](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online). +{{% /alert %}} + +## **الأسئلة الشائعة** + +**هل يمكنني التحكم في موقع منطقة الملاحظات في ملف TIFF الناتج؟** + +نعم. استخدم [إعدادات تخطيط الملاحظات](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) للاختيار بين الخيارات مثل `None`، `BottomTruncated`، أو `BottomFull`، والتي تُخفي الملاحظات، تُلائمها في صفحة واحدة، أو تسمح لها بالانتشار إلى صفحات إضافية على التوالي. + +**كيف يمكنني تقليل حجم ملف TIFF مع الملاحظات دون فقدان واضح للجودة؟** + +اختر [ضغطًا فعالًا](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/) (مثل `LZW` أو `RLE`)، حدد قيمة DPI معقولة، وإذا كان مقبولًا، استخدم [تنسيق بكسل](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/) أقل (مثل 8 bpp أو 1 bpp للوحيد اللون). تقليل أبعاد [الصورة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) قليلًا يمكن أيضًا أن يساعد دون التأثير الملحوظ على قابلية القراءة. + +**هل يؤثر الخط في الملاحظات على النتيجة إذا كانت الخطوط الأصلية مفقودة من النظام؟** + +نعم. الخطوط المفقودة تُفعِّل [الاستبدال](/slides/ar/nodejs-java/font-selection-sequence/)، ما قد يغيّر مقاييس النص ومظهره. لتجنّب ذلك، [وفر الخطوط المطلوبة](/slides/ar/nodejs-java/custom-font/) أو عيّن [خط احتياطي افتراضي](/slides/ar/nodejs-java/fallback-font/) حتى تُستخدم الأنماط المطلوبة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..6fe74cecac --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,164 @@ +--- +title: تحويل عروض PowerPoint إلى TIFF باستخدام JavaScript +titlelink: PowerPoint إلى TIFF +type: docs +weight: 90 +url: /ar/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- تحويل PowerPoint +- تحويل OpenDocument +- تحويل العرض التقديمي +- تحويل الشريحة +- PowerPoint إلى TIFF +- OpenDocument إلى TIFF +- العرض التقديمي إلى TIFF +- الشريحة إلى TIFF +- PPT إلى TIFF +- PPTX إلى TIFF +- ODP إلى TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "تعلم كيفية تحويل عروض PowerPoint (PPT، PPTX) وOpenDocument (ODP) بسهولة إلى صور TIFF عالية الجودة باستخدام Aspose.Slides لـ Node.js عبر Java. دليل خطوة بخطوة مع أمثلة على الشيفرة مضمّن." +--- + +## **نظرة عامة** + +TIFF (**Tagged Image File Format**) هو تنسيق صورة نقطية غير مضغوط واسع الاستخدام ومعروف بجودته الاستثنائية والحفاظ الدقيق على الرسومات. غالبًا ما يختار المصممون والمصورون وناشرو الحاسوب TIFF للحفاظ على الطبقات ودقة الألوان والإعدادات الأصلية في صورهم. + +باستخدام Aspose.Slides، يمكنك بسهولة تحويل شرائح PowerPoint (PPT، PPTX) وشرائح OpenDocument (ODP) مباشرةً إلى صور TIFF عالية الجودة، مما يضمن احتفاظ عروضك التقديمية بأعلى درجة من الدقة البصرية. + +## **تحويل عرض تقديمي إلى TIFF** + +باستخدام طريقة [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-) المقدمة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)، يمكنك بسرعة تحويل عرض PowerPoint كامل إلى TIFF. تتطابق صور TIFF الناتجة مع حجم الشريحة الافتراضي. + +يعرض هذا الكود JavaScript كيفية تحويل عرض PowerPoint إلى TIFF: +```js +// إنشاء فئة Presentation التي تمثل ملف عرض تقديمي (PPT، PPTX، ODP، إلخ). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // حفظ العرض التقديمي كملف TIFF. + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **تحويل عرض تقديمي إلى TIFF بالأبيض والأسود** + +تتيح الطريقة [setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) في الفئة [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) تحديد الخوارزمية المستخدمة عند تحويل شريحة أو صورة ملونة إلى TIFF بالأبيض والأسود. لاحظ أن هذا الإعداد يُطبق فقط عندما تكون طريقة [setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) مُعَدة على القيمة `CCITT4` أو `CCITT3`. + +لنفترض أن لدينا ملف "sample.pptx" يحتوي على الشريحة التالية: + +![شريحة عرض تقديمي](slide_black_and_white.png) + +يعرض هذا الكود JavaScript كيفية تحويل الشريحة الملونة إلى TIFF بالأبيض والأسود: +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +النتيجة: + +![TIFF بالأبيض والأسود](TIFF_black_and_white.png) + +## **تحويل عرض تقديمي إلى TIFF بحجم مخصص** + +إذا كنت تحتاج إلى صورة TIFF بأبعاد محددة، يمكنك ضبط القيم المطلوبة باستخدام الطرق المتاحة في [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). على سبيل المثال، تسمح طريقة [setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize) لك بتحديد حجم الصورة الناتجة. + +يعرض هذا الكود JavaScript كيفية تحويل عرض PowerPoint إلى صور TIFF بحجم مخصص: +```js +// إنشاء كائن فئة Presentation الذي يمثل ملف عرض تقديمي (PPT, PPTX, ODP, إلخ). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // ضبط نوع الضغط. + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + أنواع الضغط: + Default - يحدد مخطط الضغط الافتراضي (LZW). + None - يحدد عدم وجود ضغط. + CCITT3 + CCITT4 + LZW + RLE + */ + + // عمق الصورة يعتمد على نوع الضغط ولا يمكن ضبطه يدويًا. + + // ضبط DPI الصورة. + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // ضبط حجم الصورة. + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // حفظ العرض التقديمي كملف TIFF بالحجم المحدد. + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **تحويل عرض تقديمي إلى TIFF بتنسيق بكسل مخصص للصورة** + +باستخدام طريقة [setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) من الفئة [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/)، يمكنك تحديد تنسيق البكسل المفضل لديك للصورة TIFF الناتجة. + +يعرض هذا الكود JavaScript كيفية تحويل عرض PowerPoint إلى صورة TIFF بتنسيق بكسل مخصص: +```js +// إنشاء كائن فئة Presentation الذي يمثل ملف عرض تقديمي (PPT، PPTX، ODP، إلخ). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat يحتوي على القيم التالية (كما هو مذكور في الوثائق): + Format1bppIndexed - 1 بت لكل بكسل، مفهرس. + Format4bppIndexed - 4 بت لكل بكسل، مفهرس. + Format8bppIndexed - 8 بت لكل بكسل، مفهرس. + Format24bppRgb - 24 بت لكل بكسل، RGB. + Format32bppArgb - 32 بت لكل بكسل، ARGB. + */ + + /// حفظ العرض التقديمي كملف TIFF مع حجم الصورة المحدد. + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Tip" color="primary" %}} +تحقق من [محول PowerPoint إلى ملصق مجاني](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online). +{{% /alert %}} + +## **الأسئلة الشائعة** + +**هل يمكنني تحويل شريحة واحدة بدلاً من عرض PowerPoint كامل إلى TIFF?** + +نعم. يتيح لك Aspose.Slides تحويل الشرائح الفردية من عروض PowerPoint وعروض OpenDocument إلى صور TIFF بشكل منفصل. + +**هل هناك أي حد لعدد الشرائح عند تحويل عرض تقديمي إلى TIFF؟** + +لا، لا يفرض Aspose.Slides أي قيود على عدد الشرائح. يمكنك تحويل عروض بأي حجم إلى تنسيق TIFF. + +**هل يتم الحفاظ على الرسوم المتحركة وتأثيرات الانتقال في PowerPoint عند تحويل الشرائح إلى TIFF؟** + +لا، فإن TIFF هو تنسيق صورة ثابت. لذلك لا يتم حفظ الرسوم المتحركة ولا تأثيرات الانتقال؛ يتم تصدير لقطات ثابتة فقط من الشرائح. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..18a1c4dd3f --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,334 @@ +--- +title: تحويل PowerPoint إلى فيديو +type: docs +weight: 130 +url: /ar/nodejs-java/convert-powerpoint-to-video/ +keywords: "تحويل PowerPoint, PPT, PPTX, عرض تقديمي, فيديو, MP4, PPT إلى فيديو, PPT إلى MP4, Java, Aspose.Slides" +description: "تحويل PowerPoint إلى فيديو باستخدام JavaScript" +--- + +بتحويل عرض PowerPoint الخاص بك إلى فيديو، ستحصل على + +* **زيادة في إمكانية الوصول:** جميع الأجهزة (بغض النظر عن النظام) مزودة بمشغلات فيديو بشكل افتراضي مقارنةً بتطبيقات فتح العروض، لذا يجد المستخدمون أنه من الأسهل فتح أو تشغيل مقاطع الفيديو. +* **وصول أوسع:** من خلال الفيديوهات، يمكنك الوصول إلى جمهور كبير وتوجيههم إلى معلومات قد تبدو مملة في العرض التقديمي. معظم الاستطلاعات والإحصاءات تشير إلى أن الأشخاص يشاهدون ويستهلكون الفيديوهات أكثر من أشكال المحتوى الأخرى، وهم يفضلون هذا النوع من المحتوى بشكل عام. + +{{% alert color="primary" %}} + +قد ترغب في تجربة [**PowerPoint to Video Online Converter**](https://products.aspose.app/slides/conversion/ppt-to-word) لأنه تنفيذ حي وفعّال للعملية الموضحة هنا. + +{{% /alert %}} + +## **تحويل PowerPoint إلى فيديو في Aspose.Slides** + +في [Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/)، أضفنا دعمًا لتحويل العروض إلى فيديو. + +* استخدم **Aspose.Slides** لإنشاء مجموعة من الإطارات (من شرائح العرض) التي تتطابق مع معدل FPS معين (إطارات في الثانية). +* استخدم أداة طرف ثالث مثل **ffmpeg** ([لـ java](https://github.com/bramp/ffmpeg-cli-wrapper)) لإنشاء فيديو بناءً على تلك الإطارات. + +### **تحويل PowerPoint إلى فيديو** + +1. حمّل ffmpeg [من هنا](https://ffmpeg.org/download.html). +2. شغّل كود JavaScript لتحويل PowerPoint إلى فيديو. + +هذا الكود يوضح لك كيفية تحويل عرض (يتضمن شكلًا وتأثيري حركة) إلى فيديو: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // يضيف شكل ابتسامة ثم يحركه + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // تكوين مجلد ملفات ffmpeg. انظر هذه الصفحة: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **تأثيرات الفيديو** + +يمكنك تطبيق الحركات على الكائنات داخل الشرائح واستخدام الانتقالات بين الشرائح. + +{{% alert color="primary" %}} + +قد ترغب في الاطلاع على هذه المقالات: [PowerPoint Animation](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/)، [Shape Animation](https://docs.aspose.com/slides/nodejs-java/shape-animation/)، و[Shape Effect](https://docs.aspose.com/slides/nodejs-java/shape-effect/). + +{{% /alert %}} + +الحركات والانتقالات تجعل عروض الشرائح أكثر جاذبية وإثارة—وبالمثل بالنسبة للفيديوهات. لنضيف شريحة وانتقال آخر إلى الكود للعرض السابق: +```javascript +// يضيف شكل ابتسامة ويحركه +// ... +// يضيف شريحة جديدة وانتقالًا متحركًا +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +يدعم Aspose.Slides أيضًا تحريك النصوص. لذا نقوم بتحريك الفقرات على الكائنات، لتظهر واحدة تلو الأخرى (مع تأخير ثانية واحدة): +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // يضيف نصًا وحركات + var autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 120, 300, 300); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Aspose Slides for Node.js via Java")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("convert PowerPoint Presentation with text to video")); + var para3 = new aspose.slides.Paragraph(); + para3.getPortions().add(new aspose.slides.Portion("paragraph by paragraph")); + var paragraphCollection = autoShape.getTextFrame().getParagraphs(); + paragraphCollection.add(para1); + paragraphCollection.add(para2); + paragraphCollection.add(para3); + paragraphCollection.add(new aspose.slides.Paragraph()); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effect1 = mainSequence.addEffect(para1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect2 = mainSequence.addEffect(para2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect3 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect4 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + effect1.getTiming().setTriggerDelayTime(1.0); + effect2.getTiming().setTriggerDelayTime(1.0); + effect3.getTiming().setTriggerDelayTime(1.0); + effect4.getTiming().setTriggerDelayTime(1.0); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // تكوين مجلد ملفات ffmpeg. انظر هذه الصفحة: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **فئات تحويل الفيديو** + +لتمكينك من تنفيذ مهام تحويل PowerPoint إلى فيديو، توفر Aspose.Slides الفئتين [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) و[PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). + +[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) يتيح لك ضبط حجم الإطار للفيديو (الذي سيُنشأ لاحقًا) عبر بنائه. إذا مررّت نسخة من العرض، سيتم استخدام `Presentation.getSlideSize` وتُولِّد الحركات التي يستخدمها [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). + +عند توليد الحركات، يُولَّد حدث `NewAnimation` لكل حركة لاحقة، ويحمل معلمة [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/). الأخيرة هي فئة تمثِّل مشغلًا لحركة منفصلة. + +للعمل مع [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/)، تُستَخدم طريقة [getDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#getDuration--) (المدة الكاملة للحركة) وطريقة [setTimePosition](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#setTimePosition-double-). يتم ضبط موضع كل حركة ضمن النطاق *0 إلى المدة*، ثم تُعيد طريقة `getFrame` صورة BufferedImage تتطابق مع حالة الحركة في تلك اللحظة: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // يضيف شكل ابتسامة ويحركه + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// الحالة الأولية للرسوم المتحركة + try { + // صورة حالة الرسوم المتحركة الأولية + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// الحالة النهائية للرسوم المتحركة + try { + // الإطار الأخير للرسوم المتحركة + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +لجعل جميع الحركات في عرض ما تُشَغَل مرة واحدة، تُستَخدم فئة [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). تأخذ هذه الفئة نسخة من [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) ومعدل FPS للتأثيرات في مُنشئها ثم تُطلق حدث `FrameTick` لكل الحركات لتُشَغَلها: +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +بعد ذلك يمكن تجميع الإطارات المُولَّدة لإنتاج فيديو. راجع قسم [Convert PowerPoint to Video](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video). + +## **الحركات والتأثيرات المدعومة** + +**الدخول**: + +| نوع الحركة | Aspose.Slides | PowerPoint | +|---|---|---| +| **Appear** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Fade** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Fly In** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Float In** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Split** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Wipe** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Shape** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Wheel** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Random Bars** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Grow & Turn** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Zoom** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Swivel** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Bounce** | ![مدعوم](v.png) | ![مدعوم](v.png) | + +**التأكيد**: + +| نوع الحركة | Aspose.Slides | PowerPoint | +|---|---|---| +| **Pulse** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Color Pulse** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Teeter** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Spin** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Grow/Shrink** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Desaturate** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Darken** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Lighten** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Transparency** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Object Color** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Complementary Color** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Line Color** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Fill Color** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | + +**الخروج**: + +| نوع الحركة | Aspose.Slides | PowerPoint | +|---|---|---| +| **Disappear** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Fade** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Fly Out** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Float Out** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Split** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Wipe** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Shape** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Random Bars** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Shrink & Turn** | ![غير مدعوم](x.png) | ![مدعوم](v.png) | +| **Zoom** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Swivel** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Bounce** | ![مدعوم](v.png) | ![مدعوم](v.png) | + +**مسارات الحركة**: + +| نوع الحركة | Aspose.Slides | PowerPoint | +|---|---|---| +| **Lines** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Arcs** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Turns** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Shapes** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Loops** | ![مدعوم](v.png) | ![مدعوم](v.png) | +| **Custom Path** | ![مدعوم](v.png) | ![مدعوم](v.png) | + +## **الأسئلة المتكررة** + +**هل يمكن تحويل العروض التي محمية بكلمة مرور؟** + +نعم، يتيح Aspose.Slides العمل مع العروض المحمية بكلمة مرور. عند معالجة هذه الملفات، يجب توفير كلمة المرور الصحيحة حتى تتمكن المكتبة من الوصول إلى محتوى العرض. + +**هل يدعم Aspose.Slides الاستخدام في حلول السحابة؟** + +نعم، يمكن دمج Aspose.Slides في التطبيقات والخدمات السحابية. صُممت المكتبة للعمل في بيئات الخوادم، مما يضمن أداءً عاليًا وقابلية توسيع للمعالجة الجماعية للملفات. + +**هل هناك قيود على حجم العروض أثناء التحويل؟** + +يستطيع Aspose.Slides معالجة عروض بأي حجم تقريبًا. ومع ذلك، قد تتطلب الملفات الكبيرة موارد نظام إضافية، ومن المفضَّل أحيانًا تحسين العرض لتحسين الأداء. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..b0ad013872 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,96 @@ +--- +title: تحويل PowerPoint إلى XPS +type: docs +weight: 70 +url: /ar/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX إلى XPS" +description: "تحويل PowerPoint PPT(X) إلى XPS في JavaScript" +--- + +## **حول XPS** + +قامت Microsoft بتطوير [XPS](https://docs.fileformat.com/page-description-language/xps/) كبديل لـ [PDF](https://docs.fileformat.com/pdf/). يتيح لك طباعة المحتوى عن طريق إخراج ملف مشابه جداً لـ PDF. يعتمد تنسيق XPS على XML. يظل تخطيط أو بنية ملف XPS هو نفسه على جميع أنظمة التشغيل والطابعات. + +## **متى تستخدم تنسيق Microsoft XPS** + +{{% alert color="primary" %}} + +لرؤية كيفية تحويل Aspose.Slides للعرض التقديمي PPT أو PPTX إلى تنسيق XPS، يمكنك الاطلاع على [هذا التطبيق المجاني على الإنترنت للتحويل](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +إذا رغبت في تقليل تكاليف التخزين، يمكنك تحويل عرض Microsoft PowerPoint الخاص بك إلى تنسيق XPS. بهذه الطريقة، سيكون من الأسهل حفظ المستندات ومشاركتها وطبعها. + +ما زالت Microsoft تدعم XPS بقوة في Windows (حتى في Windows 10)، لذا قد ترغب في حفظ الملفات بهذا التنسيق. إذا كنت تتعامل مع Windows 8.1 أو Windows 8 أو Windows 7 أو Windows Vista، فقد يكون XPS هو الخيار الأفضل لبعض العمليات. + +- **Windows 8** يستخدم تنسيق OXPS (Open XPS) لملفات XPS. OXPS هو نسخة معيارية من تنسيق XPS الأصلي. يوفر Windows 8 دعماً أفضل لملفات XPS مقارنة بملفات PDF. + - **XPS:** عارض/قارئ XPS مدمج وميزة الطباعة إلى XPS متوفرة. + - **PDF:** قارئ PDF متوفر لكن لا توجد ميزة طباعة إلى PDF. + +- **Windows 7 و Windows Vista** يستخدمان تنسيق XPS الأصلي. هذه الأنظمة أيضاً توفر دعماً أفضل لملفات XPS مقارنة بملفات PDF. + - **XPS:** عارض XPS مدمج وميزة الطباعة إلى XPS متوفرة. + - **PDF:** لا قارئ PDF. لا ميزة طباعة إلى PDF. + +|

**إدخال PPT(X):**

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**الإخراج XPS:**

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| +| :- | :- | + + + +في النهاية، نفذت Microsoft دعماً لعمليات الطباعة في PDF من خلال ميزة الطباعة إلى PDF في Windows 10. كان من المتوقع في السابق أن يطبع المستخدمون المستندات عبر تنسيق XPS. + +## **تحويل XPS باستخدام Aspose.Slides** + +في [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/)، يمكنك استخدام طريقة [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) التي توفرها فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) لتحويل العرض التقديمي بالكامل إلى مستند XPS. + +عند تحويل عرض تقديمي إلى XPS، عليك حفظ العرض باستخدام أحد الإعدادات التالية: + +- الإعدادات الافتراضية (دون [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) +- الإعدادات المخصصة (مع [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) + +### **تحويل العروض إلى XPS باستخدام الإعدادات الافتراضية** + +يوضح لك هذا المثال البرمجي في JavaScript كيفية تحويل عرض تقديمي إلى مستند XPS باستخدام الإعدادات القياسية: +```javascript +// إنشاء كائن Presentation يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // حفظ العرض التقديمي إلى مستند XPS + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تحويل العروض إلى XPS باستخدام الإعدادات المخصصة** + +يوضح لك هذا المثال البرمجي كيفية تحويل عرض تقديمي إلى مستند XPS باستخدام الإعدادات المخصصة في JavaScript: +```javascript +// إنشاء كائن Presentation يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // إنشاء كائن من الفئة TiffOptions + var options = new aspose.slides.XpsOptions(); + // حفظ ملفات Meta كـ PNG + options.setSaveMetafilesAsPng(true); + // حفظ العرض التقديمي إلى مستند XPS + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل يمكنني حفظ XPS إلى تدفق (stream) بدلاً من ملف؟** + +نعم—تتيح لك Aspose.Slides التصدير مباشرة إلى تدفق، وهو مثالي لواجهات برمجة التطبيقات على الويب، وخطوط الأنابيب على الخادم، أو أي سيناريو تحتاج فيه إلى إرسال XPS دون الاعتماد على نظام الملفات. + +**هل يتم نقل الشرائح المخفية إلى XPS، وهل يمكن استثناؤها؟** + +بشكل افتراضي، يتم عرض الشرائح العادية (المرئية) فقط. يمكنك [تضمين أو استثناء الشرائح المخفية](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/) عبر [إعدادات التصدير](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/) قبل الحفظ إلى XPS، لضمان أن يحتوي الناتج على الصفحات التي تريدها بالضبط. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..a087bca0ed --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,101 @@ +--- +title: "تحويل PPT إلى PPTX في JavaScript" +linktitle: "تحويل PPT إلى PPTX" +type: docs +weight: 20 +url: /ar/nodejs-java/convert-ppt-to-pptx/ +keywords: "تحويل PPT إلى PPTX باستخدام Java، PowerPoint PPT إلى PPTX في JavaScript" +description: "تحويل PowerPoint PPT إلى PPTX في JavaScript." +--- + +## **نظرة عامة** + +تشرح هذه المقالة كيفية تحويل عرض تقديمي PowerPoint بتنسيق PPT إلى تنسيق PPTX باستخدام JavaScript ومع تطبيق التحويل عبر الإنترنت من PPT إلى PPTX. الموضوع التالي مغطى. + +- تحويل PPT إلى PPTX في JavaScript + +## **Java تحويل PPT إلى PPTX** + +للحصول على عينة كود JavaScript لتحويل PPT إلى PPTX، يرجى الاطلاع على القسم أدناه أي [Convert PPT to PPTX](#convert-ppt-to-pptx). يقوم الكود بتحميل ملف PPT وحفظه بتنسيق PPTX. عن طريق تحديد صيغ حفظ مختلفة، يمكنك أيضًا حفظ ملف PPT إلى صيغ أخرى مثل PDF و XPS و ODP و HTML وغيرها كما هو موضح في هذه المقالات. + +- [Java تحويل PPT إلى PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java تحويل PPT إلى XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java تحويل PPT إلى HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java تحويل PPT إلى ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java تحويل PPT إلى صورة](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **حول تحويل PPT إلى PPTX** +قم بتحويل تنسيق PPT القديم إلى PPTX باستخدام Aspose.Slides API. إذا كنت بحاجة إلى تحويل آلاف العروض التقديمية من PPT إلى تنسيق PPTX، فإن أفضل حل هو القيام بذلك برمجياً. مع Aspose.Slides API يمكن تحقيق ذلك ببضع أسطر من الشيفرة فقط. يدعم الـ API توافقًا كاملًا لتحويل عرض PPT إلى PPTX ويمكنه: + +- تحويل البُنى المعقدة للماسترز والتخطيطات والشرائح. +- تحويل العروض التي تحتوي على مخططات. +- تحويل العروض التي تحتوي على أشكال مجموعات، أشكال تلقائية (مثل المستطيلات والبيضات)، أشكال ذات هندسة مخصصة. +- تحويل العروض التي تحتوي على أنماط تعبئة النصوص والصور للأشكال التلقائية. +- تحويل العروض التي تحتوي على نُسخ مؤقتة، إطارات نصية وحاملات نص. + +{{% alert color="primary" %}} + +ألقِ نظرة على تطبيق [**Aspose.Slides PPT إلى PPTX Conversion**](https://products.aspose.app/slides/conversion/ppt-to-pptx): + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +تم بناء هذا التطبيق استنادًا إلى [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/)، لذا يمكنك مشاهدة مثال حي لقدرات التحويل الأساسية من PPT إلى PPTX. Aspose.Slides Conversion هو تطبيق ويب يتيح سحب ملف عرض بصيغة PPT وتحميله بعد تحويله إلى PPTX. + +اعثر على أمثلة حية أخرى لـ [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) . +{{% /alert %}} + +## **تحويل PPT إلى PPTX** +يسهل Aspose.Slides for Node.js via Java الآن على المطورين الوصول إلى PPT باستخدام فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) وتحويله إلى صيغة [PPTX](https://docs.fileformat.com/presentation/pptx/) المقابلة. حاليًا، يدعم التحويل الجزئي من [PPT](https://docs.fileformat.com/presentation/ppt/) إلى PPTX. لمزيد من التفاصيل حول الميزات المدعومة وغير المدعومة في تحويل PPT إلى PPTX، يرجى الرجوع إلى وثائق [الرابط](/slides/ar/nodejs-java/ppt-to-pptx-conversion/). + +يوفر Aspose.Slides for Node.js via Java فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) التي تمثل ملف عرض **PPTX**. يمكن الآن أيضًا الوصول إلى **PPT** عبر Presentation عند إنشاء الكائن. يوضح المثال التالي كيفية تحويل عرض PPT إلى عرض PPTX. +```javascript +// إنشاء كائن Presentation يمثل ملف PPTX +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // حفظ عرض PPTX إلى تنسيق PPTX + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**الشكل: عرض PPT المصدر**| + +الكود أعلاه يولد عرض PPTX التالي بعد التحويل + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**الشكل: عرض PPTX الناتج بعد التحويل**| + +## **الأسئلة المتكررة** + +**ما الفرق بين صيغتي PPT و PPTX؟** + +PPT هو تنسيق ملف ثنائي قديم يستخدمه Microsoft PowerPoint، بينما PPTX هو التنسيق القائم على XML الذي تم تقديمه مع Microsoft Office 2007. ملفات PPTX تقدم أداءً أفضل، حجم ملف أصغر، وتحسيناً في استعادة البيانات. + +**هل يدعم Aspose.Slides التحويل الجماعي لعدة ملفات PPT إلى PPTX؟** + +نعم، يمكنك استخدام Aspose.Slides داخل حلقة لتحويل عدة ملفات PPT إلى PPTX برمجيًا، مما يجعلها مناسبة لسيناريوهات التحويل الدفعي. + +**هل سيتم الحفاظ على المحتوى والتنسيق بعد التحويل؟** + +يحافظ Aspose.Slides على دقة عالية عند تحويل العروض. يتم الحفاظ على تخطيطات الشرائح، الرسوم المتحركة، الأشكال، المخططات، وعناصر التصميم الأخرى أثناء التحويل من PPT إلى PPTX. + +**هل يمكنني تحويل صيغ أخرى مثل PDF أو HTML من ملفات PPT؟** + +نعم، يدعم Aspose.Slides تحويل ملفات PPT إلى صيغ متعددة، بما في ذلك PDF و XPS و HTML و ODP وصيغ الصور مثل PNG و JPEG. + +**هل يمكن تحويل PPT إلى PPTX دون الحاجة إلى تثبيت Microsoft PowerPoint؟** + +نعم، Aspose.Slides هو API مستقل ولا يتطلب تثبيت Microsoft PowerPoint أو أي برنامج طرف ثالث لأداء التحويل. + +**هل هناك أداة عبر الإنترنت متاحة لتحويل PPT إلى PPTX؟** + +نعم، يمكنك استخدام تطبيق الويب المجاني [Aspose.Slides PPT إلى PPTX Converter](https://products.aspose.app/slides/conversion/ppt-to-pptx) لإجراء التحويل مباشرة في المتصفح دون كتابة أي شيفرة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..1901cc7c2c --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: تحويل PPTX إلى PPT باستخدام JavaScript +linktitle: تحويل PPTX إلى PPT +type: docs +weight: 21 +url: /ar/nodejs-java/convert-pptx-to-ppt/ +keywords: "تحويل PPTX إلى PPT باستخدام Java, تحويل عرض PowerPoint, PPTX إلى PPT, Java, Aspose.Slides" +description: "تحويل PowerPoint PPTX إلى PPT باستخدام JavaScript" +--- + +## **نظرة عامة** + +تشرح هذه المقالة كيفية تحويل عرض PowerPoint بصيغة PPTX إلى صيغة PPT باستخدام JavaScript. الموضوع التالي مغطى. + +- تحويل PPTX إلى PPT باستخدام JavaScript + +## **Java تحويل PPTX إلى PPT** + +للحصول على عينة شفرة JavaScript لتحويل PPTX إلى PPT، يرجى الاطلاع على القسم أدناه أي [Convert PPTX to PPT](#convert-pptx-to-ppt). يقوم بتحميل ملف PPTX وحفظه بصيغة PPT. عن طريق تحديد صيغ حفظ مختلفة، يمكنك أيضًا حفظ ملف PPTX بصيغ أخرى مثل PDF و XPS و ODP و HTML وغيرها كما نوقش في هذه المقالات. + +- [Java تحويل PPTX إلى PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java تحويل PPTX إلى XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java تحويل PPTX إلى HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java تحويل PPTX إلى ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java تحويل PPTX إلى صورة](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **تحويل PPTX إلى PPT** + +لتحويل PPTX إلى PPT، ما عليك سوى تمرير اسم الملف وصيغة الحفظ إلى طريقة **Save** في فئة [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). عينة الشفرة JavaScript أدناه تحول Presentation من PPTX إلى PPT باستخدام الخيارات الافتراضية. +```javascript +// إنشاء كائن Presentation يمثل ملف PPTX +var presentation = new aspose.slides.Presentation("template.pptx"); +// حفظ العرض كملف PPT +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **الأسئلة الشائعة** + +**هل جميع تأثيرات وميزات PPTX تبقى عند الحفظ بصيغة PPT القديمة (97–2003)؟** + +ليس دائماً. صيغة PPT تفتقر إلى بعض القدرات الأحدث (مثل بعض التأثيرات، الكائنات، والسلوكيات)، لذا قد يتم تبسيط الميزات أو تحويلها إلى صورة raster أثناء التحويل. + +**هل يمكنني تحويل شرائح محددة فقط إلى PPT بدلاً من العرض الكامل؟** + +الحفظ المباشر يستهدف العرض كاملًا. لتحويل شرائح محددة، أنشئ عرضًا جديدًا يحتوي فقط على تلك الشرائح وقم بحفظه كـ PPT؛ أو استخدم خدمة/API تدعم معلمات التحويل لكل شريحة. + +**هل يتم دعم العروض المحمية بكلمة مرور؟** + +نعم. يمكنك اكتشاف ما إذا كان الملف محميًا، فتحه باستخدام كلمة مرور، وأيضًا [تكوين إعدادات الحماية/التشفير](/slides/ar/nodejs-java/password-protected-presentation/) للـ PPT المحفوظ. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..b4079ff58c --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,65 @@ +--- +title: PPT مقابل PPTX +type: docs +weight: 10 +url: /ar/nodejs-java/ppt-vs-pptx/ +keywords: "PPT مقابل PPTX" +description: "اقرأ عن الفروق بين PPT و PPTX في Aspose.Slides." +--- + +## **ما هو PPT؟** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) هو تنسيق ملف ثنائي، أي أنه من المستحيل عرض محتواه بدون أدوات خاصة. النسخ الأولى من PowerPoint 97-2003 كانت تعمل بتنسيق ملف PPT، لكن قابلية التوسيع لهذا التنسيق محدودة. + +## **ما هو PPTX؟** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) هو تنسيق ملف عرض تقديمي جديد، يعتمد على معيار Office Open XML (ISO 29500:2008-2016، ECMA-376). يتمحور PPTX حول مجموعة مؤرشفة من ملفات XML والوسائط. تنسيق PPTX سهل التوسيع؛ فمثلاً يمكن إضافة دعم لنوع مخطط جديد أو شكل جديد دون الحاجة لتغيير تنسيق PPTX في كل نسخة جديدة من PowerPoint. يُستخدم تنسيق PPTX بدءاً من PowerPoint 2007. + +## **PPT مقابل PPTX** + +على الرغم من أن PPTX يوفر وظائف أوسع بكثير، لا يزال PPT شائعاً. الحاجة إلى التحويل من PPT إلى PPTX والعكس مطلوبة بشدة. + +مع ذلك، يُعد التحويل بين تنسيق PPT القديم وPPTX الجديد أكثر التحديات تعقيداً بين تنسيقات Microsoft Office الأخرى. على الرغم من أن مواصفات تنسيق PPT مفتوحة، إلا أن العمل به صعب. يمكن لـ PowerPoint إنشاء أجزاء خاصة (MetroBlob) في ملفات PPT لتخزين معلومات من PPTX لا يدعمها تنسيق PPT ولا يمكن عرضها في إصدارات PowerPoint القديمة. يمكن استعادة هذه المعلومات عند تحميل ملف PPT في نسخة PowerPoint حديثة أو تحويله إلى تنسيق PPTX. + +توفر Aspose.Slides فئة عامة للعمل مع جميع تنسيقات العروض التقديمية. تتيح التحويل من PPT إلى PPTX ومن PPTX إلى PPT بطريقة بسيطة جداً. تدعم Aspose.Slides بالكامل التحويل من PPT إلى PPTX وتدعم أيضاً التحويل من PPTX إلى PPT مع بعض القيود. نوصي باستخدام تنسيق PPTX كلما كان ذلك ممكناً. + +{{% alert color="primary" %}} + +تحقق من جودة التحويلات من PPT إلى PPTX ومن PPTX إلى PPT باستخدام تطبيق [**Aspose.Slides Conversion app**](https://products.aspose.app/slides/conversion/) على الإنترنت. + +{{% /alert %}} +```javascript +// إنشاء كائن Presentation يمثل ملف PPT +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // حفظ عرض PPT إلى تنسيق PPTX + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +اقرأ المزيد عن [**كيفية تحويل العروض التقديمية من PPT إلى PPTX**](/slides/ar/nodejs-java/convert-ppt-to-pptx/). +{{% /alert %}} + +## **الأسئلة المتكررة** + +**هل هناك فائدة من الاحتفاظ بالعروض القديمة بصيغة PPT إذا كانت تُفتح دون أخطاء؟** + +إذا كان العرض يُفتح بموثوقية ولا يحتاج إلى التعاون أو المميزات الأحدث، يمكنك الاحتفاظ به بصيغة PPT. ولكن لضمان التوافق المستقبلي وإمكانية التوسيع، من الأفضل [تحويل إلى PPTX](/slides/ar/nodejs-java/convert-ppt-to-pptx/): التنسيق مبني على معيار OOXML المفتوح ويسهل دعمه من الأدوات الحديثة. + +**كيف يمكنني تحديد أي الملفات يجب تحويلها إلى PPTX أولاً؟** + +ابدأ بتحويل العروض التي: يتم تحريرها من قبل عدة أشخاص؛ تحتوي على مخططات [معقدة](/slides/ar/nodejs-java/create-chart/) أو [أشكال](/slides/ar/nodejs-java/shape-manipulations/); تُستخدم في اتصالات خارجية؛ أو تُظهر تحذيرات عند [فتحها](/slides/ar/nodejs-java/open-presentation/). + +**هل سيتم الحفاظ على حماية كلمة المرور عند التحويل من PPT إلى PPTX والعكس؟** + +يتم نقل كلمة المرور فقط إذا تم التحويل بشكل صحيح وتوافر دعم التشفير في الأداة المستخدمة. من الأكثر موثوقية أن تقوم بـ[إزالة الحProtection](/slides/ar/nodejs-java/password-protected-presentation/)، ثم [التحويل](/slides/ar/nodejs-java/convert-ppt-to-pptx/)، ثم إعادة تطبيق الحProtection وفقاً لسياسة الأمان الخاصة بك. + +**لماذا تختفي بعض المؤثرات أو تُبسط عند تحويل PPTX مرة أخرى إلى PPT؟** + +لأن PPT لا يدعم بعض الكائنات/الخصائص الأحدث. يمكن لـ PowerPoint والأدوات تخزين "آثار" هذه المعلومات في كتل خاصة لاستعادتها لاحقاً، لكن إصدارات PowerPoint القديمة لا يمكنها عرضها. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..c66a21dc74 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,68 @@ +--- +title: تحويل شريحة إلى صورة SVG +type: docs +weight: 50 +url: /ar/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **تنسيق SVG** + +SVG—اختصار لـ Scalable Vector Graphics—هو نوع أو تنسيق رسومي قياسي يُستخدم لعرض الصور ثنائية الأبعاد. يخزن SVG الصور كمتجهات في XML مع تفاصيل تُحدد سلوكها أو مظهرها. + +SVG هو أحد القليل من تنسيقات الصور التي تلبي معايير عالية جدًا في هذه الجوانب: القابلية للتوسع، التفاعلية، الأداء، إمكانية الوصول، القابلية للبرمجة، وغيرها. لهذه الأسباب، يُستخدم عادةً في تطوير الويب. + +قد ترغب في استخدام ملفات SVG عندما تحتاج إلى + +- **طباعة عرضك التقديمي بتنسيق *كبير جدًا*.** يمكن لصور SVG أن تتوسع إلى أي دقة أو مستوى. يمكنك تغيير حجم صور SVG مرات متعددة دون التضحية بالجودة. +- **استخدام المخططات والرسوم البيانية من شرائحك في *وسائط أو منصات مختلفة*.** معظم القُراء يمكنهم تفسير ملفات SVG. +- **استخدام *أصغر أحجام ممكنة للصور*.** عادةً ما تكون ملفات SVG أصغر من مكافئاتها عالية الدقة في تنسيقات أخرى، خاصة تلك القائمة على البت ماب (JPEG أو PNG). + +## **تصدير الشرائح كصور SVG** + +Aspose.Slides for Node.js via Java يتيح لك تصدير الشرائح في عروضك التقديمية كصور SVG. اتبع الخطوات التالية لإنشاء صور SVG: + +1. إنشاء مثيل من الفئة Presentation. +2. التنقل عبر جميع الشرائح في العرض التقديمي. +3. كتابة كل شريحة إلى ملف SVG خاص بها عبر FileOutputStream. + +{{% alert color="primary" %}} + +قد ترغب في تجربة [تطبيق الويب المجاني](https://products.aspose.app/slides/conversion/ppt-to-svg) الذي قمنا فيه بتنفيذ وظيفة تحويل PPT إلى SVG من Aspose.Slides for Node.js via Java. + +{{% /alert %}} + +هذا المثال البرمجي في JavaScript يوضح لك كيفية تحويل PPT إلى SVG باستخدام Aspose.Slides: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**لماذا قد يبدو SVG الناتج مختلفًا عبر المتصفحات؟** + +يتم تنفيذ دعم ميزات SVG المحددة بطرق مختلفة من قبل محركات المتصفحات. تساعد معلمات [خيارات SVG](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) على تسوية عدم التوافق. + +**هل من الممكن تصدير ليس فقط الشرائح ولكن أيضًا الأشكال الفردية إلى SVG؟** + +نعم. يمكن حفظ أي [شكل كملف SVG منفصل](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/)، وهو أمر ملائم للأيقونات، والرسوم التوضيحية، وإعادة استخدام الرسومات. + +**هل يمكن دمج عدة شرائح في SVG واحد (شريط/مستند)؟** + +السيناريو القياسي هو شريحة واحدة → SVG واحد. دمج عدة شرائح في لوحة SVG واحدة هو خطوة معالجة لاحقة تُجرى على مستوى التطبيق. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..8d67ad0a70 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,154 @@ +--- +title: تصدير إلى HTML5 +type: docs +weight: 40 +url: /ar/nodejs-java/export-to-html5/ +keywords: +- PowerPoint إلى HTML +- الشرائح إلى HTML +- HTML5 +- تصدير HTML +- تصدير عرض تقديمي +- تحويل عرض تقديمي +- تحويل الشرائح +- Java +- Aspose.Slides لـ Node.js عبر Java +description: "تصدير PowerPoint إلى HTML5 باستخدام JavaScript" +--- + +{{% alert title="معلومات" color="info" %}} + +في [Aspose.Slides 21.9](/slides/ar/nodejs-java/aspose-slides-for-java-21-9-release-notes/)، قمنا بتنفيذ دعم التصدير إلى HTML5. + +{{% /alert %}} + +تسمح لك عملية التصدير إلى HTML5 هنا بتحويل PowerPoint إلى HTML دون ملحقات ويب أو تبعيات. بهذه الطريقة، باستخدام القوالب الخاصة بك، يمكنك تطبيق خيارات مرنة للغاية تحدد عملية التصدير وHTML وCSS وJavaScript وسمات الرسوم المتحركة الناتجة. + +## **تصدير PowerPoint إلى HTML5** + +يظهر هذا الكود JavaScript كيفية تصدير عرض تقديمي إلى HTML5 دون ملحقات ويب وتبعيات: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +في هذه الحالة، ستحصل على HTML نظيف. + +{{% /alert %}} + +قد ترغب في تحديد إعدادات لرسوم متحركة الأشكال وانتقالات الشرائح بهذه الطريقة: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تصدير PowerPoint إلى HTML** + +يوضح هذا الكود JavaScript العملية القياسية لتصدير PowerPoint إلى HTML: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +في هذه الحالة، يتم عرض محتوى العرض التقديمي عبر SVG بالشكل التالي: +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="ملاحظة" color="warning" %}} + +عند استخدام هذه الطريقة لتصدير PowerPoint إلى HTML، بسبب عرض SVG، لن تكون قادرًا على تطبيق الأنماط أو تحريك عناصر محددة. + +{{% /alert %}} + +## **تصدير PowerPoint إلى عرض شريحة HTML5** + +**Aspose.Slides** يتيح لك تحويل عرض تقديمي PowerPoint إلى مستند HTML5 يتم فيه عرض الشرائح في وضع عرض الشرائح. في هذه الحالة، عند فتح ملف HTML5 الناتج في المتصفح، ترى العرض التقديمي في وضع عرض الشرائح على صفحة ويب. + +يظهر هذا الكود JavaScript عملية تصدير PowerPoint إلى عرض شريحة HTML5: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل عرض تقديمي إلى مستند HTML5 مع التعليقات** + +التعليقات في PowerPoint هي أداة تسمح للمستخدمين بترك ملاحظات أو ملاحظات على شرائح العرض التقديمي. وهي مفيدة بشكل خاص في المشاريع التعاونية، حيث يمكن لأكثر من شخص إضافة اقتراحاتهم أو ملاحظاتهم إلى عناصر شريحة معينة دون تعديل المحتوى الرئيسي. كل تعليق يظهر اسم المؤلف، مما يسهل تتبع من ترك الملاحظة. + +لنفترض أن لدينا عرض تقديمي PowerPoint محفوظ في الملف "sample.pptx". + +![تعليقين على شريحة العرض التقديمي](two_comments_pptx.png) + +عند تحويل عرض تقديمي PowerPoint إلى مستند HTML5، يمكنك بسهولة تحديد ما إذا كنت تريد تضمين التعليقات من العرض التقديمي في المستند الناتج. للقيام بذلك، تحتاج إلى تحديد معلمات عرض التعليقات في خاصية `notes_comments_layouting` من فئة [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/). + +المثال التالي يوضح تحويل عرض تقديمي إلى مستند HTML5 مع عرض التعليقات إلى يمين الشرائح. +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +يتم عرض مستند "output.html" في الصورة أدناه. + +![التعليقات في مستند HTML5 الناتج](two_comments_html5.png) + +## **الأسئلة المتكررة** + +**هل يمكنني التحكم فيما إذا كانت رسومات الكائنات وانتقالات الشرائح ستعمل في HTML5؟** + +نعم، يوفر HTML5 خيارات منفصلة لتمكين أو تعطيل [رسومات الأشكال](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) و[انتقالات الشرائح](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/). + +**هل يتم دعم إخراج التعليقات، وأين يمكن وضعها بالنسبة للشرائح؟** + +نعم، يمكن إضافة التعليقات في HTML5 وتحديد موقعها (على سبيل المثال، إلى يمين الشريحة) من خلال [إعدادات التخطيط](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) للملاحظات والتعليقات. + +**هل يمكنني تخطي الروابط التي تستدعي JavaScript لأسباب أمنية أو سياسات CSP؟** + +نعم، هناك [إعداد](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks) يسمح بتخطي الروابط التي تحتوي على استدعاءات JavaScript أثناء الحفظ. يساعد هذا في الامتثال للسياسات الأمنية الصارمة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..4c28258b77 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,66 @@ +--- +title: التصدير إلى XAML +type: docs +weight: 30 +url: /ar/nodejs-java/export-to-xaml/ +--- + +## **تصدير العروض التقديمية إلى XAML** + +{{% alert color="primary" %}} +في [Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/)، أضفنا دعمًا لتصدير XAML. يمكنك الآن تصدير عروضك التقديمية إلى XAML. +{{% /alert %}} + +## **حول XAML** + +XAML هي لغة برمجة وصفية تتيح لك بناء أو كتابة فئات المستخدم للتطبيقات، خاصةً تلك التي تستخدم WPF (Windows Presentation Foundation)، UWP (Universal Windows Platform)، وXamarin Forms. + +XAML، التي هي لغة مبنية على XML، هي نسخة مايكروسوفت لوصف واجهة المستخدم الرسومية. من المحتمل أن تستخدم أداة التصميم للعمل على ملفات XAML معظم الوقت، ولكن لا يزال بإمكانك كتابة وتحرير واجهتك الرسومية. + +## **تصدير العروض التقديمية إلى XAML باستخدام الإعدادات الافتراضية** + +يعرض لك رمز JavaScript هذا كيفية تصدير عرض تقديمي إلى XAML باستخدام الإعدادات الافتراضية: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تصدير العروض التقديمية إلى XAML باستخدام خيارات مخصصة** + +يمكنك اختيار الخيارات من فئة [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions) التي تتحكم في عملية التصدير وتحدد كيف يقوم Aspose.Slides بتصدير عرضك التقديمي إلى XAML. + +على سبيل المثال، إذا كنت ترغب في أن يضيف Aspose.Slides الشرائح المخفية من عرضك التقديمي عند تصديره إلى XAML، يمكنك تعيين الطريقة [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-) إلى true. راجع هذا مثال كود JavaScript: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**كيف يمكنني ضمان خطوط متوقعة إذا كان الخط الأصلي غير متوفر على الجهاز؟** + +استخدم [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) في [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — يُستخدم كخط احتياطي عندما يكون الخط الأصلي مفقودًا. يساعد ذلك على تجنب الاستبدالات غير المتوقعة. + +**هل XAML المُصدّر مخصص فقط لـ WPF، أم يمكن استخدامه في أطر XAML أخرى كذلك؟** + +XAML هي لغة توصيف واجهة مستخدم عامة تُستخدم في WPF وUWP وXamarin.Forms. يستهدف التصدير التوافق مع أطر Microsoft XAML؛ السلوك الدقيق ودعم البُنى المحددة يعتمد على منصة الهدف. اختبر العلامات في بيئتك. + +**هل يتم دعم الشرائح المخفية، وكيف يمكنني منع تصديرها بشكل افتراضي؟** + +بشكل افتراضي، لا يتم تضمين الشرائح المخفية. يمكنك التحكم في هذا السلوك عبر [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/) في [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — حافظ على تعطيلها إذا لم تحتاج إلى تصديرها. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..e289efbd3e --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,75 @@ +--- +title: إنشاء عرض PowerPoint باستخدام JavaScript +linktitle: إنشاء عرض تقديمي +type: docs +weight: 10 +url: /ar/nodejs-java/create-presentation/ +keywords: إنشاء ppt java, إنشاء ppt presentation, إنشاء pptx java +description: تعلم كيفية إنشاء عروض PowerPoint مثل PPT و PPTX باستخدام JavaScript من الصفر. +--- + +## **إنشاء عرض PowerPoint** + +لإضافة خط بسيط ومستوٍ إلى شريحة مختارة من العرض، يرجى اتباع الخطوات أدناه: + +1. إنشاء مثال من الفئة Presentation. +1. الحصول على مرجع الشريحة باستخدام الفهرس الخاص بها. +1. إضافة AutoShape من نوع خط باستخدام الطريقة addAutoShape التي توفرها كائن Shapes. +1. كتابة العرض المعدل كملف PPTX. + +في المثال الموضح أدناه، قمنا بإضافة خط إلى الشريحة الأولى من العرض. +```javascript +// إنشاء كائن Presentation يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation(); +try { + // احصل على الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape من النوع خط + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**ما هي الصيغ التي يمكنني حفظ عرض تقديمي جديد بها؟** + +يمكنك حفظ إلى [PPTX, PPT, and ODP](/slides/ar/nodejs-java/save-presentation/)، وتصدير إلى [PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/)، [XPS](/slides/ar/nodejs-java/convert-powerpoint-to-xps/)، [HTML](/slides/ar/nodejs-java/convert-powerpoint-to-html/)، [SVG](/slides/ar/nodejs-java/convert-powerpoint-to-png/)، و[images](/slides/ar/nodejs-java/convert-powerpoint-to-png/)، من بين أخرى. + +**هل يمكنني البدء من قالب (POTX/POTM) وحفظه كملف PPTX عادي؟** + +نعم. احمِل القالب واحفظه بالصيغة المطلوبة؛ الصيغ POTX/POTM/PPTM وغيرها من الصيغ المشابهة [are supported](/slides/ar/nodejs-java/supported-file-formats/). + +**كيف يمكنني التحكم في حجم الشريحة/نسبة العرض إلى الارتفاع عند إنشاء عرض تقديمي؟** + +قم بضبط [slide size](/slides/ar/nodejs-java/slide-size/) (بما في ذلك الخيارات المسبقة مثل 4:3 و16:9 أو الأبعاد المخصصة) واختر طريقة تكبير المحتوى. + +**بأي وحدات يتم قياس الأحجام والإحداثيات؟** + +بالنقاط: البوصة الواحدة تساوي 72 وحدة. + +**كيف يمكنني التعامل مع عروض تقديمية كبيرة جدًا (مع الكثير من ملفات الوسائط) لتقليل استخدام الذاكرة؟** + +استخدم [BLOB management strategies](/slides/ar/nodejs-java/manage-blob/)، واقتصّر على التخزين في الذاكرة عبر الاستفادة من الملفات المؤقتة، وفضّل سير عمل قائم على الملفات بدلاً من تدفقات الذاكرة الصرفة. + +**هل يمكنني إنشاء/حفظ عروض تقديمية بشكل متوازي؟** + +لا يمكنك التعامل مع نفس كائن [Presentation]( +https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) من [multiple threads](/slides/ar/nodejs-java/multithreading/). شغّل مثيلات منفصلة ومعزولة لكل خيط أو عملية. + +**كيف يمكنني إزالة علامة التجربة المائية والقيود؟** + +[Apply a license](/slides/ar/nodejs-java/licensing/) مرة واحدة لكل عملية. يجب أن يبقى ملف الترخيص XML دون تعديل، ويجب مزامنة إعداد الترخيص إذا شاركت خيوط متعددة. + +**هل يمكنني توقيع الـ PPTX الذي أنشئه رقمياً؟** + +نعم. [Digital signatures](/slides/ar/nodejs-java/digital-signature-in-powerpoint/) (الإضافة والتحقق) مدعومة للعروض التقديمية. + +**هل تدعم الماكرو (VBA) في العروض التي تم إنشاؤها؟** + +نعم. يمكنك [create/edit VBA projects](/slides/ar/nodejs-java/presentation-via-vba/) وحفظ ملفات تمكين الماكرو مثل PPTM/PPSM. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..0a3909391a --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,117 @@ +--- +title: فحص العرض التقديمي +type: docs +weight: 30 +url: /ar/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- عرض تقديمي +- تنسيق العرض التقديمي +- خصائص العرض التقديمي +- خصائص المستند +- الحصول على الخصائص +- قراءة الخصائص +- تغيير الخصائص +- تعديل الخصائص +- PPTX +- PPT +- JavaScript +- Node +description: "قراءة وتعديل خصائص عرض PowerPoint التقديمي في Node" +--- + +Aspose.Slides for Node.js via Java يسمح لك بفحص عرض تقديمي لمعرفة خصائصه وفهم سلوكه. + +{{% alert title="معلومات" color="info" %}} + +The [PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) and [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) classes contain the properties and methods used in operations here. + +{{% /alert %}} + +## **التحقق من تنسيق العرض التقديمي** + +قبل العمل على عرض تقديمي، قد ترغب في معرفة ما هو التنسيق (PPT، PPTX، ODP، وغيرها) الذي يكون عليه العرض في الوقت الحالي. + +يمكنك التحقق من تنسيق العرض التقديمي دون تحميله. راجع هذا الكود JavaScript: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP +``` + + +## **الحصول على خصائص العرض التقديمي** + +يعرض لك هذا الكود JavaScript كيفية الحصول على خصائص العرض التقديمي (معلومات حول العرض): +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +قد ترغب في الاطلاع على [الخصائص تحت فئة DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--) class. + +## **تحديث خصائص العرض التقديمي** + +توفر Aspose.Slides الطريقة [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-) التي تتيح لك إجراء تغييرات على خصائص العرض التقديمي. + +لنفترض أن لدينا عرض PowerPoint يحتوي على خصائص المستند الموضحة أدناه. + +![خصائص المستند الأصلية لعرض PowerPoint](input_properties.png) + +يظهر لك مثال الكود هذا كيفية تعديل بعض خصائص العرض التقديمي: +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +تظهر نتائج تغيير خصائص المستند أدناه. + +![خصائص المستند المتغيرة لعرض PowerPoint](output_properties.png) + +## **روابط مفيدة** + +للحصول على مزيد من المعلومات حول العرض التقديمي وسماته الأمنية، قد تجد هذه الروابط مفيدة: + +- [التحقق مما إذا كان العرض التقديمي مشفراً](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [التحقق مما إذا كان العرض التقديمي محمياً من الكتابة (للقراءة فقط)](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [التحقق مما إذا كان العرض التقديمي محمياً بكلمة مرور قبل تحميله](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [تأكيد كلمة المرور المستخدمة لحماية العرض التقديمي](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **الأسئلة المتكررة** + +**كيف يمكنني التحقق مما إذا كانت الخطوط مضمنة وأيها؟** + +ابحث عن [معلومات الخطوط المضمَّنة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/) على مستوى العرض، ثم قارن تلك الإدخالات مع مجموعة [الخطوط المستخدمة فعلياً عبر المحتوى](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/) لتحديد أي الخطوط حيوية للعرض. + +**كيف يمكنني بسرعة معرفة ما إذا كان الملف يحتوي على شرائح مخفية وعددها؟** + +تجول في [مجموعة الشرائح](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) وتفقد علامة [الرؤية](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/) لكل شريحة. + +**هل يمكنني اكتشاف ما إذا تم استخدام حجم شريحة مخصص واتجاه، وما إذا كانا يختلفان عن الإعدادات الافتراضية؟** + +نعم. قارن [حجم الشريحة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) الحالي والاتجاه مع الإعدادات المسبقة القياسية؛ يساعد ذلك في توقع السلوك عند الطباعة والتصدير. + +**هل هناك طريقة سريعة لمعرفة ما إذا كانت المخططات تشير إلى مصادر بيانات خارجية؟** + +نعم. تجول عبر جميع [المخططات](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/)، تحقق من [مصدر البيانات](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/) الخاص بها، وسجل ما إذا كانت البيانات داخلية أو مبنية على روابط، بما في ذلك أي روابط معطلة. + +**كيف يمكنني تقييم الشرائح 'الثقيلة' التي قد تُبطئ عملية العرض أو تصدير PDF؟** + +لكل شريحة، احسب عدد الكائنات وابحث عن الصور الكبيرة، الشفافية، الظلال، الرسوم المتحركة، والوسائط المتعددة؛ ثم إعطِ درجة تعقيد تقريبية لتحديد نقاط الأداء المحتملة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..7582f11f4f --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,88 @@ +--- +title: استيراد عرض تقديمي +type: docs +weight: 60 +url: /ar/nodejs-java/import-presentation/ +keywords: "استيراد PowerPoint, PDF إلى عرض تقديمي, PDF إلى PPTX, PDF إلى PPT, Java, Aspose.Slides for Node.js via Java" +description: "استيراد عرض تقديمي PowerPoint من PDF. تحويل PDF إلى PowerPoint" +--- + +باستخدام [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/)، يمكنك استيراد العروض التقديمية من ملفات بصيغ أخرى. توفر Aspose.Slides الفئة [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) للسماح لك باستيراد العروض التقديمية من ملفات PDF، ومستندات HTML، وغيرها. + +## **استيراد PowerPoint من PDF** + +في هذه الحالة، ستحول ملف PDF إلى عرض تقديمي PowerPoint. + +pdf-to-powerpoint + +1. أنشئ مثيلًا من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/) . +2. استدعِ الطريقة [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) ومرّر ملف PDF. +3. استخدم الطريقة [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) لحفظ الملف بصيغة PowerPoint. + +يوضح هذا الشيفرة JavaScript عملية التحويل من PDF إلى PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="نصيحة" color="primary" %}} + +قد ترغب في تجربة تطبيق الويب **Aspose free** [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint) لأنه تنفيذ حي للعملية الموضحة هنا. + +{{% /alert %}} + +## **استيراد PowerPoint من HTML** + +في هذه الحالة، ستحول مستند HTML إلى عرض تقديمي PowerPoint. + +1. أنشئ مثيلًا من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/) . +2. استدعِ الطريقة [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) ومرّر ملف HTML. +3. استخدم الطريقة [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) لحفظ الملف بصيغة PowerPoint. + +يوضح هذا الشيفرة JavaScript عملية التحويل من HTML إلى PowerPoint: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**هل يتم حفظ الجداول عند استيراد PDF، وهل يمكن تحسين اكتشافها؟** + +يمكن اكتشاف الجداول أثناء الاستيراد؛ تضم فئة [PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) طريقة [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables) التي تُفعّل التعرف على الجداول. تعتمد الفعالية على بنية ملف PDF. + +{{% alert title="ملاحظة" color="warning" %}} + +يمكنك أيضًا استخدام Aspose.Slides لتحويل HTML إلى صيغ ملفات شائعة أخرى: + +* [HTML إلى صورة](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML إلى XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML إلى TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..b4de931a85 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,118 @@ +--- +title: إدارة عرض الشرائح +type: docs +weight: 90 +url: /ar/nodejs-java/manage-slide-show/ +keywords: +- نوع العرض +- مقدم من قبل متحدث +- مستعرض من قبل فرد +- مستعرض في كشك +- خيارات العرض +- تكرار مستمر +- عرض بدون سرد +- عرض بدون تحريك +- لون القلم +- عرض الشرائح +- عرض مخصص +- تقدم الشرائح +- يدوياً +- باستخدام التوقيتات +- PowerPoint +- عرض تقديمي +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "إدارة إعدادات عرض الشرائح في عروض PowerPoint التقديمية باستخدام JavaScript" +--- + +في Microsoft PowerPoint، تعتبر إعدادات **Slide Show** أداة أساسية لإعداد وتقديم العروض التقديمية الاحترافية. واحدة من أهم الميزات في هذا القسم هي **Set Up Show**، التي تتيح لك تخصيص العرض وفقًا لظروف وجماهير محددة، مما يضمن المرونة والراحة. باستخدام هذه الميزة، يمكنك اختيار نوع العرض (مثلاً، مقدَّم من قبل متحدث، مستعرض من قبل فرد، أو مستعرض في كشك)، تمكين أو تعطيل التكرار، اختيار شرائح معينة للعرض، واستخدام التوقيتات. هذه الخطوة في الإعداد حاسمة لجعل عرضك أكثر فاعلية واحترافية. + +`getSlideShowSettings` هو طريقة من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) التي تُرجع كائنًا من النوع [SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/)، والذي يتيح لك إدارة إعدادات عرض الشرائح في عرض PowerPoint. في هذه المقالة، سنستكشف كيفية استخدام هذه الطريقة لتكوين والتحكم في جوانب مختلفة من إعدادات عرض الشرائح. + +## **Select Show Type** +`SlideShowSettings.setSlideShowType` يحدد نوع عرض الشرائح، والذي يمكن أن يكون مثالًا للصفوف التالية: [PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/), [BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/), أو [BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/). باستخدام هذه الطريقة يمكنك تعديل العرض لسيناريوهات استخدام مختلفة، مثل الأكشاك المؤتمتة أو العروض اليدوية. + +مثال الشيفرة أدناه ينشئ عرضًا تقديميًا جديدًا ويضبط نوع العرض على "Browsed by an individual" دون عرض شريط التمرير. +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Enable Show Options** +`SlideShowSettings.setLoop` يحدد ما إذا كان يجب تكرار عرض الشرائح في حلقة حتى يتم إيقافه يدويًا. هذا مفيد للعروض المؤتمتة التي تحتاج إلى التشغيل المستمر. `SlideShowSettings.setShowNarration` يحدد ما إذا كان يجب تشغيل السرد الصوتي أثناء عرض الشرائح. وهو مفيد للعروض المؤتمتة التي تحتوي على إرشادات صوتية للجمهور. `SlideShowSettings.setShowAnimation` يحدد ما إذا كان يجب تشغيل الرسوم المتحركة المضافة إلى كائنات الشرائح. هذا مفيد لتوفير التأثير البصري الكامل للعرض. + +مثال الشيفرة التالي ينشئ عرضًا تقديميًا جديدًا ويجعل عرض الشرائح يتكرر في حلقة. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Select Slides to Show** +طريقة `SlideShowSettings.setSlides` تتيح لك اختيار نطاق من الشرائح ليتم عرضها أثناء العرض التقديمي. هذا مفيد عندما تحتاج إلى إظهار جزء فقط من العرض بدلاً من جميع الشرائح. مثال الشيفرة التالي ينشئ عرضًا تقديميًا جديدًا ويحدد نطاق الشرائح للعرض من الشريحة `2` إلى الشريحة `9`. +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Use Advance Slides** +طريقة `SlideShowSettings.setUseTimings` تتيح لك تمكين أو تعطيل استخدام توقيتات محددة مسبقًا لكل شريحة. هذا مفيد لعرض الشرائح تلقائيًا وفقًا لمدد عرض محددة مسبقًا. مثال الشيفرة أدناه ينشئ عرضًا تقديميًا جديدًا ويعطل استخدام التوقيتات. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Show Media Controls** +طريقة `SlideShowSettings.setShowMediaControls` تحدد ما إذا كان يجب عرض عناصر تحكم الوسائط (مثل التشغيل، الإيقاف المؤقت، والإيقاف) أثناء عرض الشرائح عندما يتم تشغيل محتوى وسائط متعددة (مثل الفيديو أو الصوت). هذا مفيد عندما ترغب في منح المقدم التحكم في تشغيل الوسائط أثناء العرض. + +مثال الشيفرة التالي ينشئ عرضًا تقديميًا جديدًا ويفعل عرض عناصر التحكم في الوسائط. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **FAQ** + +**Can I save a presentation so it opens directly in slide show mode?** +**هل يمكنني حفظ عرض تقديمي بحيث يفتح مباشرةً في وضع عرض الشرائح؟** +نعم. احفظ الملف بصيغة PPSX أو PPSM؛ هذه الصيغ تُفتح مباشرةً في وضع عرض الشرائح عند فتحها في PowerPoint. في Aspose.Slides، اختر صيغة الحفظ المقابلة [during export](/slides/ar/nodejs-java/save-presentation/). + +**Can I exclude individual slides from the show without deleting them from the file?** +**هل يمكنني استبعاد شرائح فردية من العرض دون حذفها من الملف؟** +نعم. ضع علامة على الشريحة كـ [hidden](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/). الشرائح المخفية تبقى في العرض التقديمي لكنها لا تُعرض أثناء عرض الشرائح. + +**Can Aspose.Slides play a slide show or control a live presentation on screen?** +**هل يمكن لـ Aspose.Slides تشغيل عرض شرائح أو التحكم في عرض مباشر على الشاشة؟** +لا. تقوم Aspose.Slides بتحرير وتحليل وتحويل ملفات العروض التقديمية؛ أما تشغيل العرض الفعلي فيتم عبر تطبيق عارض مثل PowerPoint. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..cf65596b55 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,264 @@ +--- +title: دمج العرض التقديمي +type: docs +weight: 40 +url: /ar/nodejs-java/merge-presentation/ +keywords: "دمج PowerPoint, PPTX, PPT, دمج PowerPoint, دمج العرض التقديمي, دمج العرض, Java" +description: "دمج أو دمج عرض PowerPoint في JavaScript" +--- + +## **دمج العروض التقديمية** + +عند دمج عرض تقديمي بآخر، فإنك في الواقع تجمع الشرائح الخاصة بهما في عرض تقديمي واحد للحصول على ملف واحد. + +{{% alert title="Info" color="info" %}} +معظم برامج العروض التقديمية (PowerPoint أو OpenOffice) تفتقر إلى وظائف تسمح للمستخدمين بدمج العروض بهذه الطريقة. +{{% /alert %}} + +[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/)، ومع ذلك، يتيح لك دمج العروض بطرق متعددة. يمكنك دمج العروض مع جميع الأشكال والأنماط والنصوص والتنسيقات والتعليقات والرسوم المتحركة، إلخ، دون القلق بشأن فقدان الجودة أو البيانات. + +**انظر أيضًا** + +[Clone Slides](https://docs.aspose.com/slides/nodejs-java/clone-slides/). + +{{% alert title="Note" color="warning" %}} +إلى جانب العروض التقديمية، يتيح لك Aspose.Slides دمج ملفات أخرى: + +* [الصور](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/)، مثل [JPG إلى JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) أو [PNG إلى PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/) +* المستندات، مثل [PDF إلى PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) أو [HTML إلى HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/) +* ملفين مختلفين مثل [صورة إلى PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) أو [JPG إلى PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) أو [TIFF إلى PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/). + +{{% /alert %}} + +### **ما يمكن دمجه** + +باستخدام Aspose.Slides، يمكنك دمج + +* العروض التقديمية بالكامل. جميع الشرائح من العروض تنتهي في عرض تقديمي واحد +* شرائح محددة. الشرائح المختارة تنتهي في عرض تقديمي واحد +* العروض بصيغة واحدة (PPT إلى PPT، PPTX إلى PPTX، إلخ) أو بصيغ مختلفة (PPT إلى PPTX، PPTX إلى ODP، إلخ) مع بعضها البعض. + +### **خيارات الدمج** + +يمكنك تطبيق خيارات تحدد ما إذا كان + +* كل شريحة في العرض الناتج تحتفظ بنمط فريد +* يُستخدم نمط محدد لجميع الشرائح في العرض الناتج. + +لدمج العروض، يوفر Aspose.Slides طريقة [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) (من فئة [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection)). هناك عدة تطبيقات لطرق `addClone` تُعرِّف معايير عملية دمج العروض. كل كائن Presentation يحتوي على مجموعة [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--)، لذا يمكنك استدعاء طريقة `addClone` من العرض الذي تريد دمج الشرائح إليه. + +طريقة `addClone` تُعيد كائن `Slide`، وهو نسخة مستنسخة من شريحة المصدر. الشرائح في العرض الناتج هي مجرد نسخة من الشرائح الموجودة في المصدر. لذلك يمكنك تعديل الشرائح الناتجة (مثلاً تطبيق أنماط أو خيارات تنسيق أو تخطيطات) دون القلق من أن تتأثر عروض المصدر. + +## **دمج العروض التقديمية** + +يوفر Aspose.Slides طريقة [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) التي تسمح لك بدمج الشرائح مع احتفاظ الشرائح بتخطيطاتها وأنماطها (معلمات افتراضية). + +يعرض هذا الكود JavaScript كيفية دمج العروض التقديمية: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **دمج العروض التقديمية مع Slide Master** + +يوفر Aspose.Slides طريقة [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-) التي تسمح لك بدمج الشرائح مع تطبيق قالب شريحة رئيسية. بهذه الطريقة، إذا لزم الأمر، يمكنك تغيير النمط للشرائح في العرض الناتج. + +هذا الكود JavaScript يوضح العملية الموصوفة: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +يتم تحديد تخطيط الشريحة للـ slide master تلقائيًا. عندما لا يمكن تحديد تخطيط مناسب، إذا تم تعيين المعامل المنطقي `allowCloneMissingLayout` لطريقة `addClone` إلى true، يُستخدم تخطيط شريحة المصدر. وإلا، سيتم إطلاق استثناء [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException). +{{% /alert %}} + +إذا رغبت في أن تكون الشرائح في العرض الناتج ذات تخطيط شريحة مختلف، استخدم طريقة [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-) بدلاً من ذلك عند الدمج. + +## **دمج شرائح محددة من العروض التقديمية** + +يُعد دمج شرائح محددة من عروض متعددة مفيدًا لإنشاء مجموعات شرائح مخصصة. يتيح لك Aspose.Slides for Node.js via Java تحديد واستيراد الشرائح التي تحتاجها فقط. يحافظ API على تنسيق وتخطيط وتصميم الشرائح الأصلية. + +الكود JavaScript التالي ينشئ عرض تقديمي جديد، يضيف شرائح عنوان من عرضين آخرين، ويحفظ النتيجة في ملف: +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **دمج العروض التقديمية مع تخطيط الشريحة** + +يعرض هذا الكود JavaScript كيفية دمج الشرائح من العروض التقديمية مع تطبيق تخطيط الشريحة المفضل لديك للحصول على عرض تقديمي ناتج واحد: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **دمج العروض التقديمية بأحجام شرائح مختلفة** + +{{% alert title="Note" color="warning" %}} +لا يمكنك دمج عروض تقديمية ذات أحجام شرائح مختلفة. +{{% /alert %}} + +لدمج عرضين بحجم شريحة مختلف، يجب تغيير حجم أحد العروض ليتطابق مع حجم العرض الآخر. + +يظهر هذا المثال الكود الذي يوضح العملية الموصوفة: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **دمج الشرائح إلى قسم في العرض التقديمي** + +يعرض هذا الكود JavaScript كيفية دمج شريحة محددة إلى قسم في العرض التقديمي: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +يتم إضافة الشريحة في نهاية القسم. + +## **الأسئلة المتكررة** + +**هل يتم الاحتفاظ بملاحظات المتحدث أثناء الدمج؟** +نعم. عند استنساخ الشرائح، ينقل Aspose.Slides جميع عناصر الشريحة بما في ذلك الملاحظات والتنسيق والرسوم المتحركة. + +**هل يتم نقل التعليقات ومؤلفيها؟** +التعليقات، كجزء من محتوى الشريحة، تُنسخ مع الشريحة. تُحافظ تسميات مؤلفي التعليقات ككائنات تعليق في العرض الناتج. + +**ماذا لو كان العرض المصدر محمياً بكلمة مرور؟** +يجب [فتحه باستخدام كلمة المرور](/slides/ar/nodejs-java/password-protected-presentation/) عبر [LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/)؛ بعد التحميل، يمكن استنساخ تلك الشرائح بأمان إلى ملف هدف غير محمي (أو محمي كذلك). + +**ما مدى أمان العملية من ناحية الخيوط المتعددة؟** +لا تستخدم نفس كائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) من [عدة خيوط](/slides/ar/nodejs-java/multithreading/). القاعدة الموصى بها هي "مستند واحد — خيط واحد"؛ يمكن معالجة ملفات مختلفة بالتوازي في خيوط منفصلة. + +## **انظر أيضًا** + +توفر Aspose أداة [FREE Online Collage Maker](https://products.aspose.app/slides/collage) مجانية عبر الإنترنت. باستخدام هذه الخدمة يمكنك دمج [JPG إلى JPG](https://products.aspose.app/slides/collage/jpg) أو صور PNG إلى PNG، وإنشاء [شبكات صور](https://products.aspose.app/slides/collage/photo-grid)، والمزيد. + +تحقق من [Aspose FREE Online Merger](https://products.aspose.app/slides/merger). يتيح لك دمج عروض PowerPoint بنفس الصيغة (مثل PPT إلى PPT، PPTX إلى PPTX) أو عبر صيغ مختلفة (مثل PPT إلى PPTX، PPTX إلى ODP). + +[![Aspose FREE Online Merger](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..1bfd32a14b --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: فتح عرض تقديمي في JavaScript +linktitle: فتح العروض +type: docs +weight: 20 +url: /ar/nodejs-java/open-presentation/ +keywords: +- فتح PowerPoint +- فتح عرض تقديمي +- فتح PPTX +- فتح PPT +- فتح ODP +- تحميل عرض تقديمي +- تحميل PPTX +- تحميل PPT +- تحميل ODP +- عرض تقديمي محمي +- عرض تقديمي كبير +- مورد خارجي +- كائن ثنائي +- Node.js +- JavaScript +- Aspose.Slides +description: "فتح عروض PowerPoint (.pptx, .ppt) و OpenDocument (.odp) بسهولة باستخدام Aspose.Slides لـ Node.js — سريع، موثوق، ذو ميزات كاملة." +--- + +## **نظرة عامة** + +بالإضافة إلى إنشاء عروض PowerPoint من الصفر، يتيح Aspose.Slides أيضًا فتح العروض الحالية. بعد تحميل عرض تقديمي، يمكنك استرجاع معلومات عنه، تعديل محتوى الشرائح، إضافة شرائح جديدة، حذف الشرائح الموجودة، وغير ذلك. + +## **فتح العروض** + +لفتح عرض تقديمي موجود، قم بإنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) ومرّر مسار الملف إلى مُنشئها. + +النموذج التالي بلغة JavaScript يوضح كيفية فتح عرض تقديمي والحصول على عدد الشرائح: +```js +// إنشاء كائن من فئة Presentation وتمرير مسار ملف إلى مُنشئها. +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // طباعه إجمالي عدد الشرائح في العرض التقديمي. + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **فتح العروض المحمية بكلمة مرور** + +عند الحاجة لفتح عرض محمي بكلمة مرور، مرّر كلمة المرور عبر طريقة [setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword) من فئة [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) لفك التشفير وتحميله. يوضح الكود التالي ذلك: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // تنفيذ عمليات على العرض التقديمي المفكوك. +} finally { + presentation.dispose(); +} +``` + + +## **فتح العروض الكبيرة** + +يوفر Aspose.Slides خيارات—خصوصًا طريقة [getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions) في فئة [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/)—لمساعدتك في تحميل العروض الكبيرة. + +الكود التالي بلغة JavaScript يوضح تحميل عرض تقديمي كبير (على سبيل المثال، 2 جيجابايت): +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// اختر سلوك KeepLocked — سيبقى ملف العرض مقفولًا طوال مدة +// كائن Presentation، لكن لا يحتاج إلى تحميله في الذاكرة أو نسخه إلى ملف مؤقت. +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 ميجابايت + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // تم تحميل العرض الكبير ويمكن استخدامه، بينما يظل استهلاك الذاكرة منخفضًا. + + // إجراء تغييرات على العرض. + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // حفظ العرض إلى ملف آخر. يظل استهلاك الذاكرة منخفضًا أثناء هذه العملية. + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // لا تفعل هذا! سيتم إثارة استثناء إدخال/إخراج لأن الملف مقفول حتى يتم التخلص من كائن العرض. + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// يمكن فعل ذلك هنا. الملف المصدر لم يعد مقفولًا بواسطة كائن العرض. +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +لتجاوز بعض القيود عند العمل مع التيارات، قد يقوم Aspose.Slides بنسخ محتويات التيار. تحميل عرض تقديمي كبير من تيار يؤدي إلى نسخ العرض وقد يبطئ عملية التحميل. لذلك، عندما تحتاج إلى تحميل عرض تقديمي كبير، نوصي بشدة باستخدام مسار ملف العرض بدلاً من التيار. + +عند إنشاء عرض يحتوي على كائنات كبيرة (فيديو، صوت، صور عالية الدقة، إلخ)، يمكنك استخدام [BLOB management](/slides/ar/nodejs-java/manage-blob/) لتقليل استهلاك الذاكرة. +{{%/alert %}} + +## **التحكم في الموارد الخارجية** + +يوفر Aspose.Slides الواجهة [IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/) التي تسمح لك بإدارة الموارد الخارجية. يوضح الكود التالي بلغة JavaScript كيفية استخدام الواجهة `IResourceLoadingCallback`: +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // تحميل صورة بديلة. + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // تعيين عنوان URL بديل. + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // تخطي جميع الصور الأخرى. + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **تحميل العروض دون كائنات ثنائية مضمّنة** + +يمكن أن يحتوي عرض PowerPoint على الأنواع التالية من الكائنات الثنائية المضمّنة: + +- مشروع VBA (يمكن الوصول إليه عبر [Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject)); +- بيانات كائن OLE المضمّنة (يمكن الوصول إليها عبر [OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData)); +- بيانات ثنائية لعنصر تحكم ActiveX (يمكن الوصول إليها عبر [Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary)). + +باستخدام طريقة [LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects)، يمكنك تحميل عرض تقديمي دون أي كائنات ثنائية مضمّنة. + +هذه الطريقة مفيدة لإزالة المحتوى الثنائي الذي قد يكون ضارًا. يوضح الكود التالي بلغة JavaScript كيفية تحميل عرض تقديمي دون أي محتوى ثنائي مضمّن: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // قم بتنفيذ عمليات على العرض التقديمي. +} finally { + presentation.dispose(); +} +``` + + +## **الأسئلة الشائعة** + +**كيف يمكنني معرفة أن الملف تالف ولا يمكن فتحه؟** + +ستحصل على استثناء أثناء التحميل يوضح حدوث خطأ في التحليل/التحقق من الصيغة. غالبًا ما تشير هذه الأخطاء إلى بنية ZIP غير صالحة أو سجلات PowerPoint معطوبة. + +**ماذا يحدث إذا كانت الخطوط المطلوبة مفقودة عند الفتح؟** + +سيتم فتح الملف، لكن عملية [التصيير/التصدير](/slides/ar/nodejs-java/convert-presentation/) قد تستبدل الخطوط. يمكنك [تهيئة استبدال الخطوط](/slides/ar/nodejs-java/font-substitution/) أو [إضافة الخطوط المطلوبة](/slides/ar/nodejs-java/custom-font/) إلى بيئة التشغيل. + +**ماذا عن الوسائط المضمّنة (فيديو/صوت) عند الفتح؟** + +تتحول إلى موارد داخل العرض. إذا كانت الوسائط مُشار إليها عبر مسارات خارجية، تأكد من أن هذه المسارات متاحة في بيئتك؛ وإلا قد تقوم عملية [التصيير/التصدير](/slides/ar/nodejs-java/convert-presentation/) بإغفال الوسائط. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/ar/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..4c91ef19f5 --- /dev/null +++ b/ar/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,205 @@ +--- +title: حفظ العروض التقديمية في جافا سكريبت +linktitle: حفظ العروض التقديمية +type: docs +weight: 80 +url: /ar/nodejs-java/save-presentation/ +keywords: +- حفظ PowerPoint +- حفظ OpenDocument +- حفظ العرض التقديمي +- حفظ الشريحة +- حفظ PPT +- حفظ PPTX +- حفظ ODP +- العرض إلى ملف +- العرض إلى تدفق +- نوع عرض مسبق التعريف +- تنسيق Strict Office Open XML +- وضع Zip64 +- تجديد الصورة المصغرة +- حفظ التقدم +- Node.js +- جافا سكريبت +- Aspose.Slides +description: "اكتشف كيفية حفظ العروض التقديمية في جافا سكريبت باستخدام Aspose.Slides—تصدير إلى PowerPoint أو OpenDocument مع الحفاظ على التخطيطات والخطوط والتأثيرات." +--- + +## **نظرة عامة** + +[فتح العروض التقديمية في جافا سكريبت](/slides/ar/nodejs-java/open-presentation/) يصف كيفية استخدام فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) لفتح عرض تقديمي. تشرح هذه المقالة كيفية إنشاء العروض وتخزينها. فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) تحتوي على محتويات العرض. سواء كنت تنشئ عرضًا من الصفر أو تعدل عرضًا موجودًا، ستحتاج إلى حفظه عندما تنتهي. مع Aspose.Slides لـ Node.js، يمكنك الحفظ إلى **ملف** أو **تيار**. توضح هذه المقالة الطرق المختلفة لحفظ العرض. + +## **حفظ العروض إلى ملفات** + +احفظ عرضًا تقديميًا إلى ملف عن طريق استدعاء طريقة `save` في فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). مرّر اسم الملف وتنسيق الحفظ إلى الطريقة. المثال التالي يوضح كيفية حفظ عرض تقديمي باستخدام Aspose.Slides. +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي. +let presentation = new aspose.slides.Presentation(); +try { + // تنفيذ بعض الأعمال هنا... + + // حفظ العرض التقديمي إلى ملف. + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **حفظ العروض إلى التيارات** + +يمكنك حفظ عرض تقديمي إلى تيار بتمرير تيار إخراج إلى طريقة `save` في فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). يمكن كتابة العرض إلى أنواع متعددة من التيارات. في المثال أدناه، نقوم بإنشاء عرض جديد ونحفظه إلى تيار ملف. +```js +// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي. +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // حفظ العرض التقديمي إلى التيار. + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **حفظ العروض بنوع عرض مسبق التعريف** + +Aspose.Slides يتيح لك تعيين العرض الأولي الذي يستخدمه PowerPoint عند فتح العرض المُنشأ من خلال فئة [ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/). استخدم طريقة [setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) مع قيمة من تعداد [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/). +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **حفظ العروض بتنسيق Strict Office Open XML** + +Aspose.Slides يتيح لك حفظ العرض بتنسيق Strict Office Open XML. استخدم فئة [PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) وحدد خاصية `conformance` عند الحفظ. إذا ضبطت [Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict)، يتم حفظ ملف الإخراج بتنسيق Strict Office Open XML. + +المثال أدناه يُنشئ عرضًا ويحفظه بتنسيق Strict Office Open XML. +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي. +let presentation = new aspose.slides.Presentation(); +try { + // حفظ العرض التقديمي بتنسيق Strict Office Open XML. + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **حفظ العروض بتنسيق Office Open XML في وضع Zip64** + +ملف Office Open XML هو أرشيف ZIP يفرض حدود 4 GB (2^32 بايت) على الحجم غير المضغوط لأي ملف، وحجم الضغط لأي ملف، وإجمالي حجم الأرشيف، كما يحد من عدد الملفات إلى 65 535 (2^16‑1). امتدادات صيغة ZIP64 ترفع هذه الحدود إلى 2^64. + +طريقة [PptxOptions.setZip64Mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) تتيح لك اختيار متى تستخدم امتدادات صيغة ZIP64 عند حفظ ملف Office Open XML. + +يمكن استخدام هذه الطريقة مع الأنماط التالية: + +- [IfNecessary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#IfNecessary) يستخدم امتدادات صيغة ZIP64 فقط إذا تجاوز العرض الحدود المذكورة أعلاه. هذا هو الوضع الافتراضي. +- [Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) لا يستخدم امتدادات صيغة ZIP64 أبداً. +- [Always](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Always) يستخدم امتدادات صيغة ZIP64 دائماً. + +المقطع البرمجي التالي يوضح كيفية حفظ عرض تقديمي كملف PPTX مع تمكين امتدادات صيغة ZIP64: +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="NOTE" color="warning" %}} +عند الحفظ باستخدام Zip64Mode.Never، يتم طرح استثناء PptxException إذا تعذر حفظ العرض بتنسيق ZIP32. +{{% /alert %}} + +## **حفظ العروض دون تجديد الصورة المصغرة** + +طريقة [PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) تتحكم في توليد الصورة المصغرة عند حفظ العرض إلى PPTX: + +- إذا تم تعيينه إلى `true`، يتم تجديد الصورة المصغرة أثناء الحفظ. هذا هو الوضع الافتراضي. +- إذا تم تعيينه إلى `false`، يتم الحفاظ على الصورة المصغرة الحالية. إذا لم يكن للعرض صورة مصغرة، لن يتم إنشاء أي واحدة. + +في الكود أدناه، يتم حفظ العرض إلى PPTX دون تجديد صورته المصغرة. +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +هذا الخيار يساعد على تقليل الوقت المطلوب لحفظ العرض بتنسيق PPTX. +{{% /alert %}} + +## **تحديثات حفظ التقدم بالنسبة المئوية** + +تقارير تقدم الحفظ تُضبط عبر طريقة [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) في فئة [SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) وفئاتها الفرعية. قدم وكيل Java يطبق واجهة [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/); أثناء التصدير، يستقبل النداء التلقائي تحديثات دورية بنسب مئوية. + +المقاطع البرمجية التالية توضح كيفية استخدام `IProgressCallback`. +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // استخدم قيمة نسبة التقدم هنا. + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +قامت Aspose بتطوير تطبيق مجاني لتقسيم عروض PowerPoint باستخدام واجهتها البرمجية الخاصة. يتيح لك التطبيق تقسيم عرض تقديمي إلى ملفات متعددة عن طريق حفظ الشرائح المحددة كملفات PPTX أو PPT جديدة. +{{% /alert %}} + +## **الأسئلة المتداولة** + +**هل يتم دعم "الحفظ السريع" (الحفظ التدريجي) بحيث تُكتب التغييرات فقط؟** + +لا. كل عملية حفظ تُنشئ الملف الهدف بالكامل في كل مرة؛ الحفظ التدريجي "السريع" غير مدعوم. + +**هل حفظ نفس كائن Presentation من عدة خيوط آمن من ناحية التزامن؟** + +لا. كائن [Presentation](/slides/ar/nodejs-java/multithreading/) غير آمن للتزامن؛ احفظه من خيط واحد. + +**ماذا يحدث للروابط التشعبية والملفات المرتبطة خارجيًا عند الحفظ؟** + +يتم الحفاظ على [Hyperlinks](/slides/ar/nodejs-java/manage-hyperlinks/). الملفات المرتبطة خارجيًا (مثل الفيديوهات عبر مسارات نسبية) لا تُنسخ تلقائيًا—تأكد من بقاء المسارات المشار إليها قابلة للوصول. + +**هل يمكنني تعيين/حفظ بيانات تعريف المستند (المؤلف، العنوان، الشركة، التاريخ)؟** + +نعم. يتم دعم خصائص المستند القياسية وستُكتب إلى الملف عند الحفظ. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/modern-api/_index.md b/ar/nodejs-java/developer-guide/modern-api/_index.md index 6f82418dd4..91103801ea 100644 --- a/ar/nodejs-java/developer-guide/modern-api/_index.md +++ b/ar/nodejs-java/developer-guide/modern-api/_index.md @@ -1,54 +1,53 @@ --- -title: واجهة برمجة التطبيقات الحديثة +title: الواجهة الحديثة type: docs weight: 237 url: /ar/nodejs-java/modern-api/ -keywords: "واجهة برمجة التطبيقات الحديثة عبر الأنظمة" -description: "واجهة برمجة التطبيقات الحديثة" +keywords: "واجهة برمجة التطبيقات الحديثة متعددة المنصات" +description: "الواجهة الحديثة" --- -## مقدمة +## **المقدمة** -تاريخياً، تعتمد Aspose Slides على java.awt وتحتوي في واجهة برمجة التطبيقات العامة على الفئات التالية من هناك: +تاريخيًا، Aspose Slides لديها اعتماد على java.awt وتحتوي الواجهة العامة على الفئات التالية من هناك: - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -اعتبارًا من الإصدار 24.4، تم إعلان هذه الواجهة العامة كمُهملة. +اعتبارًا من الإصدار 24.4، تم إعلان أن هذه الواجهة العامة مهجورة. -للتخلص من الاعتمادات على هذه الفئات، أضفنا ما يسمى "واجهة برمجة التطبيقات الحديثة" - أي الواجهة التي يجب استخدامها بدلاً من الواجهة المُهملة، والتي تحتوي توقيعاتها على اعتمادات على BufferedImage. تم إعلان Graphics2D مُهملة وتمت إزالة دعمها من واجهة برمجة التطبيقات العامة لـ Slides. +للتخلص من الاعتماد على هذه الفئات، أضفنا ما يُسمى "الواجهة الحديثة" – أي الواجهة التي يجب استخدامها بدلاً من الواجهة المهجورة، والتي تحتوي توقيعاتها على اعتماد على BufferedImage. تم إعلان Graphics2D مهجور وتم إزالة دعمه من الواجهة العامة لــ Slides. -سيتم إزالة الواجهة العامة المُهملة التي تعتمد على System.Drawing في الإصدار 24.8. +سيتم إزالة الواجهة العامة المهجورة التي تعتمد على System.Drawing في الإصدار 24.8. -## واجهة برمجة التطبيقات الحديثة +## **الواجهة الحديثة** -تمت إضافة الفئات والأنماط التالية إلى الواجهة العامة: +تم إضافة الفئات والعدادات التالية إلى الواجهة العامة: - IImage - تمثل الصورة النقطية أو المتجهة. -- ImageFormat - تمثل صيغة ملف الصورة. -- Images - طرق لإنشاء والعمل مع واجهة IImage. +- ImageFormat - تمثل تنسيق ملف الصورة. +- Images - طرق لإنشاء والعمل مع فئة IImage. -يرجى الملاحظة أن IImage قابلة للتخلص منها (تطبق واجهة IDisposable ويجب لف استخدامها ضمن using أو التخلص منها بطريقة ملائمة أخرى). - -ربما يبدو السيناريو التقليدي لاستخدام الواجهة الجديدة كما يلي: +يرجى ملاحظة أن IImage قابل للتصرف (يُطبق الواجهة IDisposable ويجب ارتكاب استخدامه داخل using أو التخلص منه بطريقة مناسبة أخرى). +قد يبدو سيناريو نمطي لاستخدام الواجهة الجديدة كما يلي: ``` javascript var pres = new aspose.slides.Presentation(); try { var ppImage; - // إنشاء مثيل قابل للتخلص من IImage من الملف على القرص. + // إنشاء نسخة قابلة للتصرف من IImage من الملف الموجود على القرص. var image = aspose.slides.Images.fromFile("image.png"); try { - // إنشاء صورة PowerPoint عن طريق إضافة مثيل IImage إلى صور العرض التقديمي. + // إنشاء صورة PowerPoint بإضافة نسخة من IImage إلى صور العرض التقديمي. ppImage = pres.getImages().addImage(image); } finally { if (image != null) image.dispose(); } - // إضافة شكل صورة على الشريحة #1 + // إضافة شكل صورة على الشريحة رقم 1 pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, ppImage); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); - // الحصول على مثيل من IImage يمثل الشريحة #1. + // الحصول على نسخة من IImage تمثل الشريحة رقم 1. var slideImage = pres.getSlides().get_Item(0).getImage(size); try { // حفظ الصورة على القرص. @@ -61,11 +60,12 @@ try { } ``` -## استبدال الشيفرة القديمة بواجهة برمجة التطبيقات الحديثة -بشكل عام، ستحتاج إلى استبدال استدعاء الطريقة القديمة باستخدام ImageIO بالطريقة الجديدة. +## **استبدال الشيفرة القديمة بالواجهة الحديثة** + +بشكل عام، ستحتاج إلى استبدال استدعاء الطريقة القديمة التي تستخدم ImageIO بالطريقة الجديدة. -قديم: +القديمة: ``` javascript var imageio = java.import("javax.imageio.ImageIO"); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -73,7 +73,8 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` -جديد: + +الجديدة: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); var slideImage = pres.getSlides().get_Item(0).getImage(size); @@ -81,10 +82,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### الحصول على صورة مصغرة لشريحة -الشيفرة التي تستخدم واجهة برمجة التطبيقات المُهملة: +### **الحصول على صورة مصغرة للشريحة** +الشيفرة التي تستخدم واجهة مهجورة: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +98,8 @@ try { } ``` -واجهة برمجة التطبيقات الحديثة: +الواجهة الحديثة: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +111,10 @@ try { } ``` -### الحصول على صورة مصغرة لشكل -الشيفرة التي تستخدم واجهة برمجة التطبيقات المُهملة: +### **الحصول على صورة مصغرة للشكل** +الشيفرة التي تستخدم واجهة مهجورة: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +127,8 @@ try { } ``` -واجهة برمجة التطبيقات الحديثة: +الواجهة الحديثة: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +140,10 @@ try { } ``` -### الحصول على صورة مصغرة للعرض التقديمي -الشيفرة التي تستخدم واجهة برمجة التطبيقات المُهملة: +### **الحصول على صورة مصغرة للعرض التقديمي** +الشيفرة التي تستخدم واجهة مهجورة: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +161,8 @@ try { } ``` -واجهة برمجة التطبيقات الحديثة: +الواجهة الحديثة: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +185,10 @@ try { } ``` -### إضافة صورة إلى عرض تقديمي -الشيفرة التي تستخدم واجهة برمجة التطبيقات المُهملة: +### **إضافة صورة إلى العرض التقديمي** +الشيفرة التي تستخدم واجهة مهجورة: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +203,8 @@ try { } ``` -واجهة برمجة التطبيقات الحديثة: +الواجهة الحديثة: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,26 +218,27 @@ try { } ``` -## طرق سيتم إزالتها واستبدالها في واجهة برمجة التطبيقات الحديثة -### العرض التقديمي -| توقيع الطريقة | توقيع طريقة الاستبدال | +## **الطرق التي سيتم إزالتها واستبدالها في الواجهة الحديثة** + +### **Presentation** +| توقيع الطريقة | توقيع طريقة الاستبدال | |-----------------------------------------------|---------------------------------------------------------| -| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | -| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### الشكل -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **Shape** +| توقيع الطريقة | توقيع طريقة الاستبدال | |----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### الشريحة -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **Slide** +| توقيع الطريقة | توقيع طريقة الاستبدال | |----------------------------------------------------------------------|-----------------------------------------------------------------------| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | @@ -245,45 +247,54 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | سيتم حذفه تمامًا | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | سيتم حذفه تمامًا | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | سيتم حذفه تمامًا | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Will be deleted completely | -### الإخراج -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **Output** +| توقيع الطريقة | توقيع طريقة الاستبدال | |-----------------------------------------------------------------|-------------------------------------------------------------| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### مجموعة الصور -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **ImageCollection** +| توقيع الطريقة | توقيع طريقة الاستبدال | |-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **PPImage** +| توقيع الطريقة | توقيع طريقة الاستبدال | |--------------------------------------|-----------------------------------------| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### PatternFormat -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **PatternFormat** +| توقيع الطريقة | توقيع طريقة الاستبدال | |-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### PatternFormatEffectiveData -| توقيع الطريقة | توقيع طريقة الاستبدال | +### **PatternFormatEffectiveData** +| توقيع الطريقة | توقيع طريقة الاستبدال | |-----------------------------------------------------------|-----------------------------------------------------| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | +## **سيتم إيقاف دعم Graphics2D في الواجهة البرمجية** + +الطرق التي تستخدم [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) تم الإعلان عن أنها مهجورة وسيتم إزالة دعمها من الواجهة العامة. + +الجزء من الواجهة الذي يستخدمها سيُزال: + +[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) -## دعم واجهة برمجة التطبيقات لGraphics2D سيتم إيقافه +# **الأسئلة المتكررة** -تم إعلان الطرق باستخدام [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) بأنها مُهملة وسيتم إزالة دعمها من واجهة برمجة التطبيقات العامة. +**ما الفائدة العملية من IImage مقارنةً بـ Image/Bitmap؟** -سيتم إزالة الجزء من واجهة برمجة التطبيقات الذي يستخدمه: +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) يوحد التعامل مع الصور النقطية والمتجهة ويسهل حفظها بصيغ متعددة عبر [ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/). -[Slide](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +**هل ستؤثر الواجهة الحديثة على أداء إنشاء الصور المصغرة؟** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +التحويل من `getThumbnail` إلى `getImage` لا ي ухудшает السيناريوهات: الطرق الجديدة توفر نفس القدرات لإنتاج الصور مع الخيارات والأحجام، مع الحفاظ على دعم خيارات العرض. المكسب أو الفقدان المحدد يعتمد على السيناريو، لكن من الناحية الوظيفية البدائل متكافئة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/powerpoint-animation/_index.md b/ar/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..7badcf0db4 --- /dev/null +++ b/ar/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,79 @@ +--- +title: الرسوم المتحركة PowerPoint +type: docs +weight: 150 +url: /ar/nodejs-java/powerpoint-animation/ +keywords: "الرسوم المتحركة PowerPoint" +description: "الرسوم المتحركة PowerPoint، رسوم متحركة لشرائح PowerPoint باستخدام Aspose.Slides." +--- + +نظرًا لأن العروض التقديمية تهدف إلى عرض شيء ما، فإن مظهرها البصري وسلوكها التفاعلي يُؤخذ دائمًا في الاعتبار أثناء إنشائها. + +**PowerPoint animation** تلعب دورًا مهمًا لجعل العرض جذابًا ومثيرًا للانتباه للمشاهدين. تقدم Aspose.Slides for Node.js via Java مجموعة واسعة من الخيارات لإضافة الرسوم المتحركة إلى عرض PowerPoint: + +- تطبيق أنواع مختلفة من تأثيرات الرسوم المتحركة في PowerPoint على الأشكال، والمخططات، والجداول، وكائنات OLE وعناصر العرض التقديمي الأخرى. +- استخدام عدة تأثيرات رسوم متحركة في PowerPoint على شكل واحد. +- استخدام جدول زمني للرسوم المتحركة للتحكم في تأثيرات الرسوم المتحركة. +- إنشاء رسومات متحركة مخصصة. + +في Aspose.Slides for Node.js via Java، يمكن تطبيق تأثيرات رسومية متحركة مختلفة على الأشكال. نظرًا لأن كل عنصر على الشريحة بما في ذلك النص، والصور، وكائن OLE، والجدول إلخ يُعتبر شكلًا، فهذا يعني أنه يمكننا تطبيق تأثير الرسوم المتحركة على كل عنصر في الشريحة. + +## **تأثيرات الرسوم المتحركة** +يدعم Aspose.Slides **150+ تأثيرًا للرسوم المتحركة**، بما في ذلك تأثيرات أساسية مثل Bounce وPathFootball وتأثير التكبير Zoom وتffects محددة مثل OLEObjectShow و OLEObjectOpen. يمكنك العثور على قائمة كاملة لتأثيرات الرسوم المتحركة في تعداد [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/). + +بالإضافة إلى ذلك، يمكن استخدام هذه التأثيرات المتحركة معًا: +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **رسوم متحركة مخصصة** +من الممكن إنشاء **رسوم متحركة مخصصة** خاصة بك في Aspose.Slides. يمكن تحقيق ذلك إذا قمت بدمج عدة سلوكيات معًا في رسوم متحركة مخصصة جديدة. + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) هو وحدة بناء لأي تأثير رسوم متحركة في PowerPoint. جميع تأثيرات الرسوم المتحركة هي في الواقع مجموعة من السلوكيات المكوَّنة في استراتيجية واحدة. يمكنك دمج السلوكيات في رسوم متحركة مخصصة مرة واحدة وإعادة استخدامها في عروض تقديمية أخرى. إذا أضفت سلوكًا جديدًا إلى تأثير رسوم متحركة قياسي في PowerPoint - سيصبح ذلك رسمًا متحركًا مخصصًا آخر. على سبيل المثال، يمكنك إضافة سلوك تكرار إلى رسم متحرك لجعله يتكرر عدة مرات. + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) هو نقطة يتم فيها تطبيق السلوك. + +## **خط زمني للرسوم المتحركة** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) هي مجموعة من تأثيرات الرسوم المتحركة، تُطبق على شكل معين. + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) هي مجموعة من الSequences تُستخدم في شريحة معينة. تم تقديم محرك الرسوم المتحركة هذا منذ PowerPoint 2002. في إصدارات PowerPoint السابقة، كان من الصعب إضافة تأثيرات الرسوم المتحركة إلى العرض، وكان ذلك ممكنًا فقط عبر حلول بديلة مختلفة. يأتي الخط الزمني ليحل محل الفئة القديمة AnimationSettings ويُوفر نموذج كائن أكثر وضوحًا للرسوم المتحركة في PowerPoint. يمكن أن تحتوي شريحة واحدة على خط زمني للرسوم المتحركة واحد فقط. + +## **رسوم متحركة تفاعلية** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) يسمح بتحديد إجراءات المستخدم (مثل النقر على زر) التي ستُشغِل تشغيل رسم متحرك معين. تم إضافة المشغلات فقط في أحدث إصدار من PowerPoint. + +## **رسوم متحركة للأشكال** +تسمح Aspose.Slides بتطبيق الرسوم المتحركة على الأشكال، التي قد تكون نصًا، أو مربعًا، أو خطًا، أو إطارًا، أو كائن OLE، إلخ. + +{{% alert color="primary" %}} +اقرأ المزيد [**حول الرسوم المتحركة للأشكال**](/slides/ar/nodejs-java/shape-animation/). +{{% /alert %}} + +## **مخططات متحركة** +لإنشاء مخططات متحركة، يجب عليك استخدام نفس الفئات المستخدمة للأشكال. ومع ذلك، يمكن استخدام رسوم متحركة في PowerPoint فقط على فئات المخطط أو سلاسل المخطط. يمكنك أيضًا تطبيق تأثير الرسوم المتحركة على عنصر فئة أو عنصر سلسلة. + +{{% alert color="primary" %}} +اقرأ المزيد [**حول المخططات المتحركة**](/slides/ar/nodejs-java/animated-charts/). +{{% /alert %}} + +## **نص متحرك** +بالإضافة إلى النص المتحرك، يمكن أيضًا تطبيق الرسوم المتحركة على فقرة. + +{{% alert color="primary" %}} +اقرأ المزيد [**حول النص المتحرك**](/slides/ar/nodejs-java/animated-text/). +{{% /alert %}} + +## **الأسئلة الشائعة** + +**هل ستُحافظ على الرسوم المتحركة عند التصدير إلى PDF؟** +لا. PDF هو تنسيق ثابت، لذلك لا تُشغل الرسوم المتحركة و[انتقالات الشرائح](/slides/ar/nodejs-java/slide-transition/). إذا كنت تحتاج إلى حركة، فصدّر إلى [HTML5](/slides/ar/nodejs-java/export-to-html5/)، [GIF متحرك](/slides/ar/nodejs-java/convert-powerpoint-to-animated-gif/)، أو [فيديو](/slides/ar/nodejs-java/convert-powerpoint-to-video/) بدلاً من ذلك. + +**هل يمكنني تحويل عرض تقديمي متحرك إلى فيديو والتحكم في معدل الإطارات وحجم الإطار؟** +نعم. يمكنك [تصدير العرض كإطارات](/slides/ar/nodejs-java/convert-powerpoint-to-video/) وترميزها إلى فيديو (مثلاً باستخدام ffmpeg)، مع اختيار عدد الإطارات في الثانية والدقة. تُشغل الرسوم المتحركة وانتقالات الشرائح أثناء التصدير. + +**هل ستبقى الرسوم المتحركة سليمة عند العمل مع ODP (وليس فقط PPTX)؟** +يُدعم PPT وPPTX وODP لل[قراءة](/slides/ar/nodejs-java/open-presentation/) و[كتابة](/slides/ar/nodejs-java/save-presentation/)، لكن اختلافات الصيغ قد تجعل بعض التأثيرات تبدو أو تتصرف بصورة مختلفة قليلاً. تحقق من الحالات الحرجة باستخدام عينات فعلية. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-comments/_index.md b/ar/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..8e945d8bdf --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,229 @@ +--- +title: "تعليقات العرض التقديمي" +type: docs +weight: 100 +url: /ar/nodejs-java/presentation-comments/ +keywords: "تعليقات, تعليقات PowerPoint, عرض PowerPoint, Java, Aspose.Slides for Node.js عبر Java" +description: "إضافة التعليقات والردود في عرض PowerPoint باستخدام JavaScript" +--- + +في PowerPoint، يظهر التعليق كملاحظة أو توضيح على الشريحة. عند النقر على التعليق، يتم إظهار محتواه أو رسائله. + +## **لماذا نضيف تعليقات إلى العروض التقديمية؟** + +قد ترغب في استخدام التعليقات لتقديم الملاحظات أو التواصل مع زملائك عند مراجعة العروض التقديمية. + +لسماح لك باستخدام التعليقات في عروض PowerPoint التقديمية، يقدم Aspose.Slides for Node.js via Java + +* الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) التي تحتوي على مجموعات المؤلفين (من الفئة [CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection)). يضيف المؤلفون التعليقات إلى الشرائح. +* الفئة [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection) التي تحتوي على مجموعة التعليقات للمؤلفين الفرديين. +* الفئة [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) التي تحتوي على معلومات حول المؤلفين وتعليقاتهم: من أضاف التعليق، وقت إضافة التعليق، موضع التعليق، إلخ. +* الفئة [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor) التي تحتوي على معلومات حول المؤلفين الفرديين: اسم المؤلف، الأحرف الأولى له، التعليقات المرتبطة باسم المؤلف، إلخ. + +## **إضافة تعليق إلى الشريحة** +يظهر لك هذا الكود JavaScript كيفية إضافة تعليق إلى شريحة في عرض PowerPoint تقديمي: +```javascript +// ينشئ فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة فارغة + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // يضيف مؤلفًا + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // يحدد موضع التعليقات + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // يضيف تعليق شريحة لمؤلف على الشريحة 1 + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // يضيف تعليق شريحة لمؤلف على الشريحة 2 + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // يصل إلى ISlide 1 + var slide = pres.getSlides().get_Item(0); + // عند تمرير null كوسيطة، تُجلب التعليقات من جميع المؤلفين إلى الشريحة المحددة + var Comments = slide.getSlideComments(author); + // يحصل على التعليق عند الفهرس 0 للشريحة 1 + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // يحدد مجموعة تعليقات المؤلف عند الفهرس 0 + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الوصول إلى تعليقات الشريحة** +يظهر لك هذا الكود JavaScript كيفية الوصول إلى تعليق موجود على شريحة في عرض PowerPoint تقديمي: +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + + +## **الرد على التعليقات** +التعليق الأصلي هو التعليق العلوي أو الأصلي في هيكلية التعليقات أو الردود. باستخدام طريقتي [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) أو [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) (من الفئة [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment))، يمكنك تعيين أو الحصول على التعليق الأصلي. + +يظهر لك هذا الكود JavaScript كيفية إضافة تعليقات والحصول على الردود عليها: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف تعليقاً + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // يضيف ردًا على التعليق 1 + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // يضيف ردًا آخر على التعليق 1 + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // يضيف ردًا على رد موجود + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // يعرض هيكلية التعليقات في وحدة التحكم + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // يزيل التعليق 1 وجميع الردود عليه + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Attention" %}} + +* عند استخدام طريقة [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--) (من الفئة [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)) لحذف تعليق، يتم حذف الردود على التعليق أيضًا. +* إذا أدى تعيين [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) إلى إشارة دائرية، فسيتم إلقاء استثناء [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException). + +{{% /alert %}} + +## **إضافة تعليق حديث** + +في عام 2021، قدمت Microsoft *التعليقات الحديثة* في PowerPoint. تُحسّن ميزة التعليقات الحديثة كثيرًا من التعاون في PowerPoint. من خلال التعليقات الحديثة، يتمكن مستخدمو PowerPoint من حل التعليقات، ربط التعليقات بالأشياء والنصوص، والتفاعل بسهولة أكبر من ذي قبل. + +في [Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/)، نفّذنا دعم التعليقات الحديثة بإضافة الفئة [ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment). تم إضافة طريقتي [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) و[insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) إلى الفئة [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection). + +يظهر لك هذا الكود JavaScript كيفية إضافة تعليق حديث إلى شريحة في عرض PowerPoint تقديمي: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إزالة التعليق** + +### **حذف جميع التعليقات والمؤلفين** + +يظهر لك هذا الكود JavaScript كيفية إزالة جميع التعليقات والمؤلفين في عرض تقديمي: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // يحذف جميع التعليقات من العرض التقديمي + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // يحذف جميع المؤلفين + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **حذف تعليقات محددة** + +يظهر لك هذا الكود JavaScript كيفية حذف تعليقات محددة على شريحة: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // إضافة تعليقات... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // إزالة جميع التعليقات التي تحتوي على نص "comment 1" + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**هل يدعم Aspose.Slides حالة مثل 'تم الحل' للتعليقات الحديثة؟** + +نعم. تُظهر [Modern comments](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) طرقًا [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) و[setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/)؛ يمكنك قراءة حالة التعليق وتعيينها (مثلاً، تحديده كـ 'تم الحل')، وتُحفظ هذه الحالة في الملف ويُعترف بها من قبل PowerPoint. + +**هل تُدعم المناقشات المتسلسلة (سلاسل الردود)، وهل هناك حد للتعشيق؟** + +نعم. يمكن لكل تعليق الإشارة إلى [parent comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/)، مما يتيح سلاسل ردود غير محدودة. لا يُعلن API عن حد معين لعمق التعشيق. + +**في أي نظام إحداثيات يتم تعريف موضع علامة التعليق على الشريحة؟** + +يتم تخزين الموضع كنقطة ذات قيمة عائمة في نظام إحداثيات الشريحة. يتيح لك ذلك وضع علامة التعليق بدقة في المكان المطلوب. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..4c9eb4eccc --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,217 @@ +--- +title: إدارة Blob +type: docs +weight: 10 +url: /ar/nodejs-java/manage-blob/ +description: إدارة Blob في عرض PowerPoint باستخدام JavaScript. استخدم Blob لتقليل استهلاك الذاكرة في عرض PowerPoint باستخدام JavaScript. أضف ملفًا كبيرًا عبر Blob إلى عرض PowerPoint باستخدام JavaScript. صدّر ملفًا كبيرًا عبر Blob من عرض PowerPoint باستخدام JavaScript. حمّل عرض PowerPoint كبير كـ Blob باستخدام JavaScript. +--- + +## **حول BLOB** + +**BLOB** (**كائن ثنائي كبير**) عادةً ما يكون عنصرًا كبيرًا (صورة، عرض تقديمي، مستند أو وسائط) محفوظًا بصيغٍ ثنائية. + +Aspose.Slides for Node.js via Java تتيح لك استخدام BLOBs للكائنات بطريقة تقلل استهلاك الذاكرة عندما تتعامل مع ملفات كبيرة. + +{{% alert title="Info" color="info" %}} +لتجاوز بعض القيود عند التعامل مع التدفقات، قد تقوم Aspose.Slides بنسخ محتوى التدفق. تحميل عرض تقديمي كبير عبر تدفقه سيؤدي إلى نسخ محتويات العرض وبالتالي بطء التحميل. لذلك، عندما تنوي تحميل عرض تقديمي كبير، نوصي بشدة باستخدام مسار ملف العرض وليس تدفقه. +{{% /alert %}} + +## **استخدام BLOB لتقليل استهلاك الذاكرة** + +### **إضافة ملف كبير عبر BLOB إلى عرض تقديمي** + +[Aspose.Slides](/slides/ar/nodejs-java/) for Node.js via Java تتيح لك إضافة ملفات كبيرة (في هذه الحالة، ملف فيديو كبير) عبر عملية تشمل BLOB لتقليل استهلاك الذاكرة. + +هذا المثال في JavaScript يوضح كيفية إضافة ملف فيديو كبير عبر عملية BLOB إلى عرض تقديمي: +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// ينشئ عرضًا تقديميًا جديدًا سيتم إضافة الفيديو إليه +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // لنضيف الفيديو إلى العرض - اخترنا سلوك KeepLocked لأننا لا + // نعتزم الوصول إلى ملف "veryLargeVideo.avi". + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // يحفظ العرض. بينما يتم إخراج عرض تقديمي كبير، يظل استهلاك الذاكرة + // منخفضًا طوال دورة حياة كائن pres + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تصدير ملف كبير عبر BLOB من عرض تقديمي** + +Aspose.Slides for Node.js via Java تتيح لك تصدير ملفات كبيرة (مثل ملف صوت أو فيديو) عبر عملية تشمل BLOB من العروض التقديمية. على سبيل المثال، قد تحتاج لاستخراج ملف وسائط كبير من عرض تقديمي دون تحميله إلى ذاكرة جهازك. من خلال تصديره عبر عملية BLOB، يبقى استهلاك الذاكرة منخفضًا. + +هذا الكود في JavaScript يوضح العملية المذكورة: +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// Locks the source file and does NOT load it into memory +// قفل ملف المصدر وعدم تحميله إلى الذاكرة +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// create the Presentation's instance, lock the "hugePresentationWithAudiosAndVideos.pptx" file. + // إنشاء نسخة من العرض وتقفل ملف "hugePresentationWithAudiosAndVideos.pptx". +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // Let's save each video to a file. To prevent high memory usage, we need a buffer that will be used + // لنحفظ كل فيديو في ملف. لمنع استهلاك عالي للذاكرة، نحتاج إلى مخزن سيُستخدم + // to transfer the data from the presentation's video stream to a stream for a newly created video file. + // لنقل البيانات من تدفق فيديو العرض إلى تدفق لملف فيديو تم إنشاؤه حديثًا. + var buffer = new byte[8 * 1024]; + // Iterates through the videos + // التكرار عبر مقاطع الفيديو + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // Opens the presentation video stream. Please, note that we intentionally avoided accessing properties + // فتح تدفق فيديو العرض. يرجى ملاحظة أننا تجنبنا عن عمد الوصول إلى الخصائص + // like video.BinaryData - because this property returns a byte array containing a full video, which then + // مثل video.BinaryData - لأن هذه الخاصية تُعيد مصفوفة بايت تحتوي على الفيديو بالكامل، وهو ما + // causes bytes to be loaded into memory. We use video.GetStream, which will return Stream - and does NOT + // يتسبب في تحميل البايتات إلى الذاكرة. نستخدم video.GetStream، الذي سيُعيد Stream - ولا + // require us to load the whole video into the memory. + // يتطلب تحميل الفيديو بالكامل إلى الذاكرة. + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // Memory consumption will remain low regardless of the size of the video or presentation. + // ستبقى استهلاك الذاكرة منخفضًا بغض النظر عن حجم الفيديو أو العرض. + } + // If necessary, you can apply the same steps for audio files. + // إذا لزم الأمر، يمكنك تطبيق نفس الخطوات على ملفات الصوت. +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **إضافة صورة كـ BLOB في عرض تقديمي** + +باستخدام طرق من فئة [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) و[**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) يمكنك إضافة صورة كبيرة كتيار لتعاملها كـ BLOB. + +هذا الكود في JavaScript يوضح كيفية إضافة صورة كبيرة عبر عملية BLOB: +```javascript +var pathToLargeImage = "large_image.jpg"; +// ينشئ عرضًا تقديميًا جديدًا سيتم إضافة الصورة إليه. +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // لنضيف الصورة إلى العرض - اخترنا سلوك KeepLocked لأننا + // لا ننوي الوصول إلى الملف "largeImage.png". + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // يحفظ العرض. بينما يتم إخراج عرض تقديمي كبير، استهلاك الذاكرة + // يبقى منخفضًا طوال دورة حياة كائن pres. + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الذاكرة والعروض التقديمية الكبيرة** + +عادةً، لتحميل عرض تقديمي كبير تحتاج الحواسيب إلى الكثير من الذاكرة المؤقتة. يتم تحميل جميع محتويات العرض إلى الذاكرة ويتوقف استخدام الملف الذي تم تحميل العرض منه. + +خذ مثالًا على عرض تقديمي PowerPoint كبير (large.pptx) يحتوي على ملف فيديو حجمه 1.5 GB. الطريقة القياسية لتحميل العرض موضحّة في هذا الكود JavaScript: +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +لكن هذه الطريقة تستهلك حوالي 1.6 GB من الذاكرة المؤقتة. + +### **تحميل عرض تقديمي كبير كـ BLOB** + +من خلال عملية تشمل BLOB، يمكنك تحميل عرض تقديمي كبير باستخدام ذاكرة قليلة. يوضح هذا الكود JavaScript تطبيقًا حيث تُستخدم عملية BLOB لتحميل ملف عرض تقديمي كبير (large.pptx): +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تغيير المجلد للملفات المؤقتة** + +عند استخدام عملية BLOB، يُنشئ جهازك ملفات مؤقتة في المجلد الافتراضي للملفات المؤقتة. إذا رغبت في حفظ الملفات المؤقتة في مجلد مختلف، يمكنك تغيير إعدادات التخزين باستخدام `setTempFilesRootPath`: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Info" color="info" %}} +عند استخدام `setTempFilesRootPath`، لا تقوم Aspose.Slides بإنشاء مجلد لتخزين الملفات المؤقتة تلقائيًا. عليك إنشاء المجلد يدويًا. +{{% /alert %}} + +## **الأسئلة المتكررة** + +**ما البيانات في عرض Aspose.Slides تُعامل كـ BLOB وتتحكم فيها خيارات BLOB؟** + +الكائنات الثنائية الكبيرة مثل الصور، الصوت والفيديو تُعامل كـ BLOB. ملف العرض بالكامل أيضًا يشتمل على معالجة BLOB عند تحميله أو حفظه. تُحكم هذه الكائنات بسياسات BLOB التي تسمح لك بإدارة استهلاك الذاكرة والتحويل إلى ملفات مؤقتة عند الحاجة. + +**أين يمكنني تكوين قواعد معالجة BLOB أثناء تحميل العرض؟** + +استخدم [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) مع [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/). هناك يمكنك ضبط الحد الأقصى للذاكرة لـ BLOB، السماح أو منع الملفات المؤقتة، اختيار المسار الجذري للملفات المؤقتة، وتحديد سلوك قفل المصدر. + +**هل تؤثر إعدادات BLOB على الأداء، وكيف أوازن بين السرعة والذاكرة؟** + +نعم. الاحتفاظ بـ BLOB في الذاكرة يعزز السرعة لكنه يزيد استهلاك RAM؛ خفض الحد الأقصى للذاكرة يحوّل المزيد إلى ملفات مؤقتة، ما يقلل RAM لكن يتطلب I/O إضافي. استخدم الطريقة [setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/) للوصول إلى التوازن المناسب لحمولة عملك وبيئتك. + +**هل تساعد خيارات BLOB عند فتح عروض تقديمية ضخمة جدًا (مثلاً بالغيغابايت)؟** + +نعم. تم تصميم [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) لهذا النوع من السيناريوهات: تمكين الملفات المؤقتة واستخدام قفل المصدر يمكن أن يقلل بشكل كبير من استهلاك RAM الذروة ويستقر معالجة العروض الضخمة جدًا. + +**هل يمكنني استخدام سياسات BLOB عند التحميل من تدفقات بدلاً من ملفات القرص؟** + +نعم. تُطبق القواعد نفسها على التدفقات: يمكن لكائن العرض امتلاك وقفل تدفق الإدخال (حسب وضع القفل المختار)، وتُستخدم الملفات المؤقتة عندما يُسمح بذلك، مما يحافظ على استهلاك الذاكرة متوقعًا أثناء المعالجة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..643c40483a --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,309 @@ +--- +title: إدارة الروابط التشعبية +type: docs +weight: 20 +url: /ar/nodejs-java/manage-hyperlinks/ +keywords: "ارتباط تشعبي PowerPoint, ارتباط تشعبي نص, ارتباط تشعبي شريحة, ارتباط تشعبي شكل, ارتباط تشعبي صورة, ارتباط تشعبي فيديو, Java" +description: "كيفية إضافة ارتباط تشعبي إلى عرض تقديمي PowerPoint باستخدام JavaScript" +--- + +الارتباط التشعبي هو إشارة إلى كائن أو بيانات أو مكان في شيء ما. هذه أمثلة على الروابط التشعبية الشائعة في عروض PowerPoint التقديمية: + +* روابط إلى مواقع ويب داخل النصوص أو الأشكال أو الوسائط +* روابط إلى الشرائح + +Aspose.Slides for Node.js via Java يتيح لك تنفيذ العديد من المهام المتعلقة بالروابط التشعبية في العروض التقديمية. + +{{% alert color="primary" %}} +قد ترغب في تجربة Aspose البسيط، [محرر PowerPoint المجاني على الإنترنت.](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **إضافة روابط URL** + +### **إضافة روابط URL إلى النصوص** + +يظهر لك هذا الشيفرة JavaScript كيفية إضافة ارتباط تشعبي لموقع ويب إلى نص: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **إضافة روابط URL إلى الأشكال أو الإطارات** + +هذا المثال في JavaScript يوضح كيفية إضافة ارتباط تشعبي لموقع ويب إلى شكل: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **إضافة روابط URL إلى الوسائط** + +Aspose.Slides يتيح لك إضافة روابط تشعبية إلى الصور، الملفات الصوتية، وملفات الفيديو. + +هذا المثال يوضح كيفية إضافة ارتباط تشعبي إلى **صورة**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف صورة إلى العرض التقديمي + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // إنشاء إطار صورة على الشريحة 1 بناءً على الصورة المضافة مسبقًا + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +هذا المثال يوضح كيفية إضافة ارتباط تشعبي إلى **ملف صوتي**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +هذا المثال يوضح كيفية إضافة ارتباط تشعبي إلى **فيديو**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +قد ترغب في الاطلاع على *[إدارة OLE](/slides/ar/nodejs-java/manage-ole/)*. +{{% /alert %}} + +## **استخدام الروابط التشعبية لإنشاء فهرس المحتويات** + +نظرًا لأن الروابط التشعبية تتيح لك إضافة مراجع إلى كائنات أو أماكن، يمكنك استخدامها لإنشاء فهرس المحتويات. + +هذا المثال يوضح كيفية إنشاء فهرس محتويات باستخدام الروابط التشعبية: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تنسيق الروابط التشعبية** + +### **اللون** + +باستخدام طريقة [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) في فئة [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) يمكنك ضبط اللون للروابط التشعبية وكذلك الحصول على معلومات اللون من الروابط التشعبية. تم تقديم هذه الميزة لأول مرة في PowerPoint 2019، لذا فإن التغييرات المتعلقة بهذه الخاصية لا تنطبق على إصدارات PowerPoint الأقدم. + +هذا المثال يوضح عملية إضافة روابط تشعبية بألوان مختلفة إلى الشريحة نفسها: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إزالة الروابط التشعبية في العروض التقديمية** + +### **إزالة الروابط التشعبية من النصوص** + +هذا الشيفرة JavaScript يوضح كيفية إزالة الرابط التشعبي من نص في شريحة عرض تقديمي: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // يتحقق مما إذا كان الشكل يدعم إطار النص (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // يتنقل عبر الفقرات في إطار النص + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // يتنقل عبر كل جزء في الفقرة + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// يغير النص + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// يغير التنسيق + } + } + } + } + } + // يحفظ العرض التقديمي المعدل + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **إزالة الروابط التشعبية من الأشكال أو الإطارات** + +هذا الشيفرة JavaScript يوضح كيفية إزالة الرابط التشعبي من شكل في شريحة عرض تقديمي: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الرابط التشعبي القابل للتعديل** + +فئة [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) قابلة للتعديل. باستخدام هذه الفئة يمكنك تغيير قيم هذه الخصائص: + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +المقتطف البرمجي يوضح كيفية إضافة رابط تشعبي إلى شريحة وتعديل تلميحه لاحقًا: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الخصائص المدعومة في IHyperlinkQueries** + +يمكنك الوصول إلى [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) من عرض تقديمي أو شريحة أو نص يتم تعريف الرابط التشعبي فيه. + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +فئة [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) تدعم هذه الطرق والخصائص: + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **الأسئلة المتكررة** + +**كيف يمكنني إنشاء تنقل داخلي ليس فقط إلى شريحة، بل إلى "قسم" أو الشريحة الأولى في قسم؟** + +الأقسام في PowerPoint هي تجميعات للشرائح؛ التنقل يستهدف تقنيًا شريحة معينة. لت "التنقل إلى قسم"، عادةً ما يتم ربطه بأول شريحة في ذلك القسم. + +**هل يمكنني إرفاق ارتباط تشعبي بعناصر الشريحة الرئيسة بحيث يعمل على جميع الشرائح؟** + +نعم. عناصر الشريحة الرئيسة وتخطيطها تدعم الروابط التشعبية. تظهر هذه الروابط على الشرائح الفرعية ويمكن النقر عليها أثناء عرض الشرائح. + +**هل سيتم الحفاظ على الروابط التشعبية عند التصدير إلى PDF أو HTML أو صور أو فيديو؟** + +في [PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/) و[HTML](/slides/ar/nodejs-java/convert-powerpoint-to-html/)، نعم—عادةً ما تُحفظ الروابط. عند التصدير إلى [الصور](/slides/ar/nodejs-java/convert-powerpoint-to-png/) و[الفيديو](/slides/ar/nodejs-java/convert-powerpoint-to-video/)، لن تُنقل قابلية النقر بسبب طبيعة هذه الصيغ (الإطارات النقطية أو الفيديو لا تدعم الروابط التشعبية). \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..97c2e6ce36 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,237 @@ +--- +title: إدارة الصوت في العروض التقديمية باستخدام JavaScript +linktitle: إطار صوت +type: docs +weight: 10 +url: /ar/nodejs-java/audio-frame/ +keywords: +- صوت +- إطار صوت +- صورة مصغرة +- إضافة صوت +- خصائص الصوت +- خيارات الصوت +- استخراج الصوت +- Node.js +- JavaScript +- Aspose.Slides +description: "إنشاء والتحكم في إطارات الصوت في Aspose.Slides لـ Node.js—أمثلة JavaScript لإدماج، تقليم، تكرار، وتكوين التشغيل عبر عروض PPT و PPTX و ODP." +--- + +## **إنشاء إطارات صوتية** + +Aspose.Slides for Node.js via Java يتيح لك إضافة ملفات صوتية إلى الشرائح. تُدمج ملفات الصوت في الشرائح كإطارات صوتية. + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. الحصول على مرجع الشريحة عبر فهرستها. +3. تحميل تدفق ملف الصوت الذي تريد دمجه في الشريحة. +4. إضافة إطار الصوت المدمج (الذي يحتوي على ملف الصوت) إلى الشريحة. +5. تعيين [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) و`Volume` المعروضة بواسطة كائن [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame). +6. حفظ العرض التقديمي المعدل. + +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي +const pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + const sld = pres.getSlides().get_Item(0); + // تحميل ملف الصوت wav إلى تدفق + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // إضافة إطار صوت + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // تعيين وضع التشغيل ومستوى الصوت للملف الصوتي + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // كتابة ملف PowerPoint إلى القرص + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تغيير صورة مصغرة لإطار الصوت** + +عند إضافة ملف صوت إلى عرض تقديمي، يظهر الصوت كإطار يحتوي على صورة افتراضية قياسية (انظر الصورة في القسم أدناه). يمكنك تغيير صورة المعاينة لإطار الصوت (تعيين الصورة التي تفضلها). + +هذا الكود JavaScript يوضح لك كيفية تغيير صورة مصغرة أو صورة معاينة لإطار الصوت: +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // يضيف إطار صوت إلى الشريحة بموقع وحجم محددين. + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // يضيف صورة إلى موارد العرض التقديمي. + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // يحدد الصورة لإطار الصوت. + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // يحفظ العرض التقديمي المعدل على القرص + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **تغيير خيارات تشغيل الصوت** + +Aspose.Slides for Node.js via Java يتيح لك تعديل الخيارات التي تتحكم في تشغيل الصوت أو خصائصه. على سبيل المثال، يمكنك ضبط مستوى صوت الصوت، أو تشغيل الصوت بصورة متكررة، أو حتى إخفاء أيقونة الصوت. + +لوحة **Audio Options** في Microsoft PowerPoint: + +![example1_image](audio_frame_0.png) + +PowerPoint **Audio Options** التي تتطابق مع خصائص Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) هي: +- **Start** قائمة منسدلة تتطابق مع طريقة [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode). +- **Volume** تتطابق مع طريقة [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume). +- **Play Across Slides** تتطابق مع طريقة [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides). +- **Loop until Stopped** تتطابق مع طريقة [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode). +- **Hide During Show** تتطابق مع طريقة [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing). +- **Rewind after Playing** تتطابق مع طريقة [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio). + +PowerPoint **Editing** options التي تتطابق مع خصائص Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/): +- **Fade In** تتطابق مع طريقة [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration). +- **Fade Out** تتطابق مع طريقة [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration). +- **Trim Audio Start Time** تتطابق مع طريقة [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart). +- **Trim Audio End Time** القيمة تساوي مدة الصوت ناقص قيمة طريقة [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd). + +تحكم **Volume** في لوحة التحكم بالصوت في PowerPoint يتطابق مع طريقة [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue). يتيح لك تعديل مستوى الصوت كنسبة مئوية. + +هذه هي طريقة تغيير خيارات تشغيل الصوت: +1. [Сreate](#create-audio-frame) أو الحصول على إطار الصوت. +2. تعيين قيم جديدة لخصائص إطار الصوت التي تريد تعديلها. +3. حفظ ملف PowerPoint المعدل. + +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // يحصل على شكل AudioFrame + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // يضبط وضع التشغيل لتشغيل عند النقر + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // يضبط مستوى الصوت إلى منخفض + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // يضبط الصوت لتشغيل عبر الشرائح + audioFrame.setPlayAcrossSlides(true); + // يعطل الحلقة للصوت + audioFrame.setPlayLoopMode(false); + // يخفي AudioFrame أثناء عرض الشرائح + audioFrame.setHideAtShowing(true); + // يعيد تشغيل الصوت من البداية بعد التشغيل + audioFrame.setRewindAudio(true); + // يحفظ ملف PowerPoint على القرص + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +هذا الكود JavaScript يوضح عملية تعديل خيارات الصوت: +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // يضبط إزاحة بداية التقليم إلى 1.5 ثانية + audioFrame.setTrimFromStart(1500); + // يضبط إزاحة نهاية التقليم إلى 2 ثانية + audioFrame.setTrimFromEnd(2000); + + // يضبط مدة التلاشي التدريجي للبدء إلى 200 مللي ثانية + audioFrame.setFadeInDuration(200); + // يضبط مدة التلاشي التدريجي للنهاية إلى 500 مللي ثانية + audioFrame.setFadeOutDuration(500); + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +العينة التالية من الكود توضح كيفية استرداد إطار صوت مدمج وتعيين مستوى صوته إلى 85%: +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // يحصل على شكل إطار صوت + const audioFrame = slide.getShapes().get_Item(0); + + // يضبط مستوى الصوت إلى 85% + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **استخراج الصوت** + +Aspose.Slides for Node.js via Java يتيح لك استخراج الصوت المستخدم في انتقالات عرض الشرائح. على سبيل المثال، يمكنك استخراج الصوت المستخدم في شريحة معينة. + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) وتحميل العرض التقديمي الذي يحتوي على الصوت. +2. الحصول على مرجع الشريحة ذات الصلة عبر فهرستها. +3. الوصول إلى [slideshow transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--) الخاصة بالشريحة. +4. استخراج الصوت على شكل بيانات بايت. + +هذا الكود JavaScript يوضح لك كيفية استخراج الصوت المستخدم في شريحة: +```javascript +// ينشئ كائن من فئة Presentation التي تمثل ملف عرض تقديمي +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // يصل إلى الشريحة المطلوبة + const slide = pres.getSlides().get_Item(0); + // يحصل على تأثيرات انتقال عرض الشرائح للشريحة + const transition = slide.getSlideShowTransition(); + // يستخرج الصوت كمصفوفة بايت + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**هل يمكنني إعادة استخدام نفس ملف الصوت عبر عدة شرائح دون زيادة حجم الملف؟** + +نعم. أضف الصوت مرة واحدة إلى [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) المشترك في العرض التقديمي وأنشئ إطارات صوت إضافية تشير إلى ذلك الأصل الموجود. هذا يمنع تكرار بيانات الوسائط ويحافظ على حجم العرض التقديمي تحت السيطرة. + +**هل يمكنني استبدال الصوت في إطار صوت موجود دون إعادة إنشاء الشكل؟** + +نعم. بالنسبة لصوت مرتبط، قم بتحديث [link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) للإشارة إلى الملف الجديد. بالنسبة لصوت مدمج، استبدل كائن [embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) بآخر من [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) الموجود في العرض التقديمي. يبقى تنسيق الإطار ومعظم إعدادات التشغيل كما هي. + +**هل يؤدي التقليم إلى تغيير بيانات الصوت الأساسية المخزنة في العرض التقديمي؟** + +لا. يقتصر التقليم على تعديل حدود التشغيل فقط. تبقى بايتات الصوت الأصلية دون تغيير ويمكن الوصول إليها عبر الصوت المدمج أو مجموعة الصوت في العرض التقديمي. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..0c0baec6d5 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: فلاش +type: docs +weight: 10 +url: /ar/nodejs-java/flash/ +description: استخراج كائنات الفلاش من عرض PowerPoint باستخدام JavaScript +--- + +## **استخراج كائنات الفلاش من العرض التقديمي** + +توفر Aspose.Slides لـ Node.js عبر Java إمكانية استخراج كائنات الفلاش من العرض التقديمي. يمكنك الوصول إلى عنصر التحكم بالفلاش بالاسم واستخراجه من العرض التقديمي بما في ذلك تخزين بيانات كائن SWF. +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**ما تنسيقات العروض التقديمية المدعومة عند استخراج محتوى الفلاش؟** + +يدعم [Aspose.Slides](/slides/ar/nodejs-java/supported-file-formats/) تنسيقات PowerPoint الرئيسية مثل PPT و PPTX، لأنه يستطيع تحميل هذه الحاويات والوصول إلى عناصر التحكم فيها، بما في ذلك عناصر ActiveX المرتبطة بالفلاش. + +**هل يمكنني تحويل عرض تقديمي يحتوي على فلاش إلى HTML5 مع الحفاظ على التفاعل الفلاشي؟** + +لا. لا يقوم Aspose.Slides بتنفيذ محتوى SWF أو تحويل تفاعليته. بينما يُدعَم التصدير إلى [HTML](/slides/ar/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/ar/nodejs-java/export-to-html5/)، فإن الفلاش لن يعمل في المتصفحات الحديثة بسبب انتهاء الدعم. يُنصَح باستبدال الفلاش ببدائل مثل الفيديو أو الرسوم المتحركة HTML5 قبل التصدير. + +**من منظور الأمان، هل يقوم Aspose.Slides بتنفيذ ملفات SWF أثناء قراءة العرض التقديمي؟** + +لا. يتعامل Aspose.Slides مع الفلاش كبيانات ثنائية مضمَّنة في الملف ولا ينفّذ محتوى SWF أثناء المعالجة. + +**كيف يجب أن أتعامل مع العروض التقديمية التي تحتوي على فلاش مع ملفات مضمَّنة أخرى عبر OLE؟** + +يدعم Aspose.Slides [استخراج كائنات OLE المضمَّنة](/slides/ar/nodejs-java/manage-ole/)، بحيث يمكنك معالجة جميع المحتويات المضمَّنة ذات الصلة في خطوة واحدة، ومعالجة عناصر تحكم الفلاش وغيرها من المستندات المضمنة عبر OLE معًا. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..4c9cbcd506 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,302 @@ +--- +title: صورة +type: docs +weight: 10 +url: /ar/nodejs-java/image/ +keywords: +- إضافة صورة +- إضافة صورة +- إضافة صورة نقطية +- استبدال صورة +- استبدال صورة +- من الويب +- خلفية +- إضافة PNG +- إضافة JPG +- إضافة SVG +- إضافة EMF +- إضافة WMF +- إضافة TIFF +- PowerPoint +- OpenDocument +- عرض تقديمي +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "تبسيط إدارة الصور في PowerPoint وOpenDocument باستخدام Aspose.Slides لـ Node.js، مع تحسين الأداء وأتمتة سير العمل الخاص بك." +--- + +## **الصور في الشرائح في العروض التقديمية** + +تجعل الصور العروض التقديمية أكثر جاذبية وإثارة للاهتمام. في Microsoft PowerPoint، يمكنك إدراج صور من ملف أو من الإنترنت أو من مواقع أخرى إلى الشرائح. وبالمثل، يتيح لك Aspose.Slides إضافة الصور إلى الشرائح في عروضك التقديمية عبر إجراءات مختلفة. + +{{% alert title="Tip" color="primary" %}} +توفر Aspose محولات مجانية—[JPEG to PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) و[PNG to PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)—تمكن الأشخاص من إنشاء عروض تقديمية بسرعة من الصور. +{{% /alert %}} + +{{% alert title="Info" color="info" %}} +إذا كنت ترغب في إضافة صورة ككائن إطار—خاصة إذا كنت تخطط لاستخدام خيارات تنسيق قياسية لتغيير حجمها، أو إضافة تأثيرات، وما إلى ذلك—انظر إلى [Picture Frame](https://docs.aspose.com/slides/nodejs-java/picture-frame/). +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} +يمكنك معالجة عمليات الإدخال/الإخراج المتعلقة بالصور وعروض PowerPoint لتحويل صورة من تنسيق إلى آخر. راجع الصفحات التالية: تحويل [image to JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); تحويل [JPG to image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); تحويل [JPG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), تحويل [PNG to JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); تحويل [PNG to SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), تحويل [SVG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). +{{% /alert %}} + +يدعم Aspose.Slides عمليات الصور بهذه الصيغ الشائعة: JPEG، PNG، GIF، وغيرها. + +## **إضافة صور مخزنة محليًا إلى الشرائح** + +يمكنك إضافة صورة واحدة أو عدة صور من جهاز الكمبيوتر الخاص بك إلى شريحة في عرض تقديمي. يعرض لك هذا المثال البرمجي بجافاسكريبت كيفية إضافة صورة إلى شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة صور من الدفق إلى الشرائح** + +إذا كانت الصورة التي ترغب في إضافتها إلى شريحة غير متوفرة على جهازك، يمكنك إضافة الصورة مباشرة من الويب. + +يعرض لك هذا المثال البرمجي كيفية إضافة صورة من الويب إلى شريحة باستخدام جافاسكريبت: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // تحميل ملف إكسل إلى تدفق + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // إنشاء كائن بيانات للتضمين + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // إضافة شكل إطار كائن Ole + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // كتابة ملف PPTX إلى القرص + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة صور إلى ماستر الشرائح** + +ماستر الشريحة هو الشريحة العليا التي تخزن وتتحكم في معلومات (المظهر، التخطيط، إلخ) حول جميع الشرائح تحته. لذا، عندما تضيف صورة إلى ماستر الشريحة، تظهر تلك الصورة على كل شريحة تحت ذلك الماستر. + +يعرض لك هذا المثال البرمجي بجافاسكريبت كيفية إضافة صورة إلى ماستر الشريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة صور كخلفية للشريحة** + +قد تقرر استخدام صورة كخلفية لشريحة معينة أو لعدة شرائح. في هذه الحالة، عليك الاطلاع على *[Setting Images as Backgrounds for Slides](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)*. + +## **إضافة SVG إلى العروض التقديمية** + +يمكنك إضافة أو إدراج أي صورة في عرض تقديمي باستخدام طريقة [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) التي تنتمي إلى فئة [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +لإنشاء كائن صورة بناءً على صورة SVG، يمكنك القيام بذلك بهذه الطريقة: + +1. إنشاء كائن SvgImage لإدراجه في ImageShapeCollection +2. إنشاء كائن PPImage من ISvgImage +3. إنشاء كائن PictureFrame باستخدام فئة PPImage + +يعرض لك هذا المثال البرمجي كيفية تنفيذ الخطوات المذكورة أعلاه لإضافة صورة SVG إلى عرض تقديمي: +```javascript +// إنشاء فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحويل SVG إلى مجموعة من الأشكال** + +تحويل Aspose.Slides لـ SVG إلى مجموعة من الأشكال مشابه لوظيفة PowerPoint المستخدمة للعمل مع صور SVG: + +![PowerPoint Popup Menu](img_01_01.png) + +توفر هذه الوظيفة أحد التجاوزات لطريقة [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) من فئة [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) التي تأخذ كائن [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage) كمعامل أول. + +يعرض لك هذا المثال البرمجي كيفية استخدام الطريقة المذكورة لتحويل ملف SVG إلى مجموعة من الأشكال: +```javascript +// إنشاء عرض تقديمي جديد +var presentation = new aspose.slides.Presentation(); +try { + // قراءة محتوى ملف SVG + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // إنشاء كائن SvgImage + var svgImage = new aspose.slides.SvgImage(svgContent); + // الحصول على حجم الشريحة + var slideSize = presentation.getSlideSize().getSize(); + // تحويل صورة SVG إلى مجموعة من الأشكال وتعديل حجمها لتناسب حجم الشريحة + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // حفظ العرض التقديمي بصيغة PPTX + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **إضافة صور كـ EMF في الشرائح** + +يتيح Aspose.Slides لـ Node.js عبر Java إمكانية إنشاء صور EMF من أوراق Excel وإضافة الصور كـ EMF في الشرائح باستخدام Aspose.Cells. + +يعرض لك هذا المثال البرمجي كيفية تنفيذ المهمة الموصوفة: +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); + // حفظ المصنف إلى تدفق +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **استبدال الصور في مجموعة الصور** + +يتيح لك Aspose.Slides استبدال الصور المخزنة في مجموعة صور العرض التقديمي (بما في ذلك تلك المستخدمة في أشكال الشرائح). يوضح هذا القسم عدة أساليب لتحديث الصور في المجموعة. توفر الواجهة البرمجية طرقًا بسيطة لاستبدال صورة باستخدام بيانات بايت خام، أو كائن [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/)، أو صورة أخرى موجودة بالفعل في المجموعة. + +اتبع الخطوات التالية: + +1. تحميل ملف العرض التقديمي الذي يحتوي على الصور باستخدام فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. تحميل صورة جديدة من ملف إلى مصفوفة بايت. +3. استبدال الصورة المستهدفة بالصورة الجديدة باستخدام مصفوفة البايت. +4. في النهج الثاني، قم بتحميل الصورة إلى كائن [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) واستبدل الصورة المستهدفة بهذا الكائن. +5. في النهج الثالث، استبدل الصورة المستهدفة بصورة موجودة بالفعل في مجموعة صور العرض التقديمي. +6. احفظ العرض التقديمي المعدل كملف PPTX. +```js +// إنشاء فئة Presentation التي تمثل ملف عرض تقديمي. +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // الطريقة الأولى. + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // الطريقة الثانية. + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // الطريقة الثالثة. + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // حفظ العرض التقديمي إلى ملف. + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +باستخدام محول Aspose FREE [Text to GIF](https://products.aspose.app/slides/text-to-gif) يمكنك بسهولة تحريك النصوص، وإنشاء ملفات GIF من النصوص، وغيرها. +{{% /alert %}} + +## **الأسئلة المتكررة** + +**هل تبقى دقة الصورة الأصلية سليمة بعد الإدراج؟** + +نعم. يتم الحفاظ على بكسلات المصدر، ولكن المظهر النهائي يعتمد على كيفية تحجيم الـ [picture](/slides/ar/nodejs-java/picture-frame/) في الشريحة وأي ضغط يتم تطبيقه عند الحفظ. + +**ما هي أفضل طريقة لاستبدال الشعار نفسه عبر العشرات من الشرائح مرة واحدة؟** + +ضع الشعار على ماستر الشريحة أو التخطيط واستبدله في مجموعة صور العرض التقديمي—ستنتقل التحديثات إلى جميع العناصر التي تستخدم هذا المورد. + +**هل يمكن تحويل SVG المُدرج إلى أشكال قابلة للتحرير؟** + +نعم. يمكنك تحويل SVG إلى مجموعة من الأشكال، وبعد ذلك تصبح الأجزاء الفردية قابلة للتحرير باستخدام خصائص الشكل القياسية. + +**كيف يمكنني تعيين صورة كخلفية لعدة شرائح في وقت واحد؟** + +قم [Assign the image as the background](/slides/ar/nodejs-java/presentation-background/) على ماستر الشريحة أو التخطيط المناسب—ستورث أي شريحة تستخدم ذلك الماستر/التخطيط الخلفية. + +**كيف أمنع ازدياد حجم العرض التقديمي بسبب كثرة الصور؟** + +أعد استخدام مصدر صورة واحد بدلاً من النسخ المتعددة، اختر دقات معقولة، طبق الضغط عند الحفظ، واحتفظ بالرسومات المتكررة في الماستر حيثما كان ذلك مناسبًا. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..b7f640b48e --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,439 @@ +--- +title: إطار الصورة +type: docs +weight: 10 +url: /ar/nodejs-java/picture-frame/ +keywords: +- إطار صورة +- إضافة إطار صورة +- إنشاء إطار صورة +- إضافة صورة +- إنشاء صورة +- استخراج صورة +- قص صورة +- خاصية StretchOff +- تنسيق إطار صورة +- خصائص إطار صورة +- تأثير الصورة +- نسبة الأبعاد +- PowerPoint +- عرض تقديمي +- Node.js +- JavaScript +- Aspose.Slides لـ Node.js عبر Java +description: "إضافة إطار صورة إلى عرض تقديمي في PowerPoint باستخدام JavaScript" +--- + +إطار الصورة هو شكل يحتوي على صورة—إنه كالصورة داخل إطار. + +يمكنك إضافة صورة إلى شريحة عبر إطار صورة. بهذه الطريقة، يمكنك تنسيق الصورة عن طريق تنسيق إطار الصورة. + +{{% alert title="Tip" color="primary" %}} +تقدم Aspose محولات مجانية—[JPEG إلى PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) و[PNG إلى PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)—التي تسمح للناس بإنشاء عروض تقديمية بسرعة من الصور. +{{% /alert %}} + +## **إنشاء إطار صورة** + +1. إنشاء نسخة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع الشريحة عبر فهرستها. +3. إنشاء كائن `PPImage` بإضافة صورة إلى [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) المرتبطة بكائن العرض التقديمي والذي سيُستخدم لملء الشكل. +4. تحديد عرض الصورة وارتفاعها. +5. إنشاء [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) بناءً على عرض الصورة وارتفاعها عبر طريقة `addPictureFrame` التي تُعرض بواسطة كائن الشكل المرتبط بالشريحة المشار إليها. +6. إضافة إطار صورة (يحتوي على الصورة) إلى الشريحة. +7. كتابة العرض التقديمي المعدل كملف PPTX. + +يعرض لك هذا الكود JavaScript كيفية إنشاء إطار صورة: +```javascript +// يقوم بإنشاء فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // يحصل على الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // يقوم بإنشاء فئة Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // يضيف إطار صورة بالارتفاع والعرض المقابل للصورة + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // يكتب ملف PPTX إلى القرص + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" %}} +تتيح لك إطارات الصورة إنشاء شرائح عرض تقديمي بسرعة استنادًا إلى الصور. عندما تجمع بين إطار الصورة مع خيارات الحفظ في Aspose.Slides، يمكنك معالجة عمليات الإدخال/الإخراج لتحويل الصور من صيغة إلى أخرى. قد ترغب في زيارة هذه الصفحات: تحويل [image إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); تحويل [JPG إلى image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); تحويل [JPG إلى PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), تحويل [PNG إلى JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); تحويل [PNG إلى SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), تحويل [SVG إلى PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). +{{% /alert %}} + +## **إنشاء إطار صورة مع مقياس نسبي** + +عن طريق تعديل مقياس الصورة النسبي، يمكنك إنشاء إطار صورة أكثر تعقيدًا. + +1. إنشاء نسخة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع الشريحة عبر فهرستها. +3. إضافة صورة إلى مجموعة صور العرض التقديمي. +4. إنشاء كائن `PPImage` بإضافة صورة إلى [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) المرتبطة بكائن العرض التقديمي والذي سيُستخدم لملء الشكل. +5. تحديد العرض والارتفاع النسبيين للصورة في إطار الصورة. +6. كتابة العرض التقديمي المعدل كملف PPTX. + +يعرض لك هذا الكود JavaScript كيفية إنشاء إطار صورة مع مقياس نسبي: +```javascript +// إنشاء فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // إنشاء فئة Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // إضافة إطار صورة بارتفاع وعرض مساويين للصورة + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // ضبط مقياس العرض والارتفاع النسبي + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // كتابة ملف PPTX إلى القرص + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **استخراج صور نقطية من إطارات الصورة** + +يمكنك استخراج صور نقطية من كائنات [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) وحفظها بصيغ PNG وJPG وغيرها. يوضح مثال الشيفرة أدناه كيفية استخراج صورة من المستند "sample.pptx" وحفظها بصيغة PNG. +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **استخراج صور SVG من إطارات الصورة** + +عند احتواء عرض تقديمي على رسومات SVG موضوعة داخل أشكال [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) ، يتيح Aspose.Slides لـ Node.js عبر Java استرداد الصور المتجهة الأصلية بجودة كاملة. من خلال استعراض مجموعة أشكال الشريحة، يمكنك تحديد كل [PictureFrame]، والتحقق مما إذا كان [PPImage] الأساسي يحتوي على محتوى SVG، ثم حفظ تلك الصورة إلى القرص أو إلى تدفق بصيغتها الأصلية SVG. + +يوضح مثال الشيفرة التالي كيفية استخراج صورة SVG من إطار صورة: +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **الحصول على شفافية الصورة** + +يتيح لك Aspose.Slides الحصول على تأثير الشفافية المطبق على صورة. يوضح هذا الكود JavaScript العملية: +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **تنسيق إطار الصورة** + +يقدم Aspose.Slides العديد من خيارات التنسيق التي يمكن تطبيقها على إطار الصورة. باستخدام هذه الخيارات، يمكنك تعديل إطار الصورة لجعله يتناسب مع متطلبات معينة. + +1. إنشاء نسخة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع الشريحة عبر فهرستها. +3. إنشاء كائن `PPImage` بإضافة صورة إلى [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) المرتبطة بكائن العرض التقديمي والذي سيُستخدم لملء الشكل. +4. تحديد عرض الصورة وارتفاعها. +5. إنشاء `PictureFrame` بناءً على عرض الصورة وارتفاعها عبر طريقة [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) التي تُعرض بواسطة كائن [Shapes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) المرتبط بالشريحة المشار إليها. +6. إضافة إطار الصورة (يحتوي على الصورة) إلى الشريحة. +7. تعيين لون خط إطار الصورة. +8. تعيين عرض خط إطار الصورة. +9. تدوير إطار الصورة بإعطائه قيمة موجبة أو سالبة. + * القيمة الموجبة تدور الصورة باتجاه عقارب الساعة. + * القيمة السالبة تدور الصورة عكس اتجاه عقارب الساعة. +10. إضافة إطار الصورة (يحتوي على الصورة) إلى الشريحة. +11. كتابة العرض التقديمي المعدل كملف PPTX. + +يعرض لك هذا الكود JavaScript عملية تنسيق إطار الصورة: +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // إنشاء كائن من فئة Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // إضافة إطار صورة بارتفاع وعرض مساويين للصورة + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // تطبيق بعض التنسيقات على PictureFrameEx + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // كتابة ملف PPTX إلى القرص + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +طورت Aspose مؤخرًا [صانع كولاج مجاني](https://products.aspose.app/slides/collage). إذا احتجت يومًا إلى [دمج صور JPG/JPEG](https://products.aspose.app/slides/collage/jpg) أو PNG، أو [إنشاء شبكات من الصور](https://products.aspose.app/slides/collage/photo-grid)، يمكنك استخدام هذه الخدمة. +{{% /alert %}} + +## **إضافة صورة كارتباط** + +لتجنب أحجام العرض التقديمي الكبيرة، يمكنك إضافة صور (أو مقاطع فيديو) عبر روابط بدلاً من تضمين الملفات مباشرةً في العروض. يوضح لك هذا الكود JavaScript كيفية إضافة صورة وفيديو إلى عنصر نائب: +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **قص الصورة** + +يوضح لك هذا الكود JavaScript كيفية قص صورة موجودة على شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +// إنشاء كائن صورة جديد +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // إضافة إطار صورة إلى شريحة + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // اقتصاص الصورة (قيم النسبة المئوية) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // حفظ النتيجة + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **حذف المناطق المقطوعة من الصورة** + +إذا كنت تريد حذف المناطق المقطوعة من صورة موجودة داخل إطار، يمكنك استخدام طريقة [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) . تُعيد هذه الطريقة الصورة المقطوعة أو الصورة الأصلية إذا لم يكن الاقتطاع ضروريًا. + +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // يحصل على إطار الصورة من الشريحة الأولى + var picFrame = slide.getShapes().get_Item(0); + // يحذف المناطق المقتطعة من صورة إطار الصورة ويعيد الصورة المقتطعة + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // يحفظ النتيجة + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +طريقة [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) تُضيف الصورة المقطوعة إلى مجموعة صور العرض التقديمي. إذا كانت الصورة مستخدمة فقط في [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) المعالجة، يمكن لهذا الإعداد تقليل حجم العرض التقديمي. وإلا، سيزداد عدد الصور في العرض الناتج. + +تحول هذه الطريقة ملفات WMF/EMF الميتا إلى صورة PNG نقطية أثناء عملية القص. +{{% /alert %}} + +## **قفل نسبة الأبعاد** + +إذا رغبت في أن يحتفظ شكل يحتوي على صورة بنسبة أبعاده حتى بعد تغيير أبعاد الصورة، يمكنك استخدام طريقة [setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-) لتعيين إعداد *قفل نسبة الأبعاد*. + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // تعيين الشكل للحفاظ على نسبة الأبعاد عند تعديل الحجم + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +هذا الإعداد *قفل نسبة الأبعاد* يحافظ فقط على نسبة أبعاد الشكل وليس الصورة التي يحتويها. +{{% /alert %}} + +## **استخدام خاصية StretchOff** + +باستخدام طرق [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-), [setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--), [setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) و[setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) من فئة [PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat)، يمكنك تحديد مستطيل ملء. + +عند تحديد تمدد لصورة، يتم تعديل مستطيل المصدر ليتناسب مع مستطيل الملء المحدد. كل حافة من حواف مستطيل الملء تُعرّف بنسبة إزاحة من الحافة المقابلة لمربع حد الشكل. النسبة الموجبة تُشير إلى تقليص بينما النسبة السالبة تُشير إلى توسّع. + +1. إنشاء نسخة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio) . +2. الحصول على مرجع الشريحة عبر فهرستها. +3. إضافة مستطيل `AutoShape`. +4. إنشاء صورة. +5. تعيين نوع تعبئة الشكل. +6. تعيين وضع تعبئة صورة الشكل. +7. إضافة صورة معينة لملء الشكل. +8. تحديد إزاحات الصورة من الحافة المقابلة لمربع حد الشكل +9. كتابة العرض التقديمي المعدل كملف PPTX. + +يعرض لك هذا الكود JavaScript عملية استخدام خاصية StretchOff: +```javascript +// ينشئ كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // يحصل على الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // ينشئ كائن من فئة ImageEx + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // يضيف AutoShape من نوع Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // يضبط نوع تعبئة الشكل + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // يضبط وضع تعبئة الصورة للشكل + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // يضبط الصورة لملء الشكل + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // يحدد إزاحات الصورة من الحافة المقابلة لمربع حد الشكل + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // يكتب ملف PPTX إلى القرص + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **أسئلة متكررة** + +**كيف يمكنني معرفة صيغ الصور المدعومة لإطار الصورة؟** + +يدعم Aspose.Slides كلًا من الصور النقطية (PNG، JPEG، BMP، GIF، إلخ) والصور المتجهة (مثل SVG) عبر كائن الصورة المخصص لـ [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) . عادةً ما تتقاطع قائمة الصيغ المدعومة مع إمكانيات محرك تحويل الشرائح والصور. + +**كيف سيؤثر إضافة العشرات من الصور الكبيرة على حجم PPTX وأداءه؟** + +تزيد إضافة الصور الكبيرة داخل العرض من حجم الملف واستهلاك الذاكرة؛ بينما يساعد ربط الصور على تقليل حجم العرض لكنه يتطلب بقاء الملفات الخارجية متاحة. يوفر Aspose.Slides إمكانية إضافة الصور عبر روابط لتقليل حجم الملف. + +**كيف يمكنني قفل كائن الصورة لمنع تحريكه/تغييره غير المقصود؟** + +استخدم [قفل الأشكال](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/) لإطار صورة ([PictureFrame]) (مثلاً، تعطيل التحريك أو إعادة التحجيم). تم شرح آلية القفل للأشكال في مقالة الحماية المنفصلة (/slides/ar/nodejs-java/applying-protection-to-presentation/) ويدعم أنواع الأشكال المختلفة بما فيها [PictureFrame]. + +**هل يتم الحفاظ على جودة المتجهات SVG عند تصدير العرض إلى PDF/صور؟** + +يسمح Aspose.Slides باستخراج SVG من [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) كمتجه أصلي. عند التصدير إلى PDF أو صيغ نقطية، قد يتم تحويله إلى نقطية وفقًا لإعدادات التصدير؛ لكن يُؤكد سلوك الاستخراج أن SVG الأصلي يبقى كمتجه. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..a8f026489a --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,180 @@ +--- +title: إطار الفيديو +type: docs +weight: 10 +url: /ar/nodejs-java/video-frame/ +keywords: "إضافة فيديو, إنشاء إطار فيديو, استخراج فيديو, عرض تقديمي PowerPoint, Java, Aspose.Slides لـ Node.js عبر Java" +description: "إضافة إطار فيديو إلى عرض تقديمي PowerPoint باستخدام JavaScript" +--- + +يمكن للفيديو الموضوع بشكل جيد في عرض تقديمي أن يجعل رسالتك أكثر إقناعًا ويزيد من مستويات التفاعل مع جمهورك. + +PowerPoint يتيح لك إضافة مقاطع فيديو إلى شريحة في عرض تقديمي بطريقتين: + +* إضافة أو تضمين فيديو محلي (مخزن على جهازك) +* إضافة فيديو عبر الإنترنت (من مصدر ويب مثل يوتيوب). + +لتمكينك من إضافة مقاطع فيديو (كائنات فيديو) إلى عرض تقديمي، توفر Aspose.Slides فئة [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)، وفئة [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)، وغيرها من الأنواع ذات الصلة. + +## **إنشاء إطار فيديو مضمّن** + +إذا كان ملف الفيديو الذي ترغب في إضافته إلى شريحتك مخزنًا محليًا، يمكنك إنشاء إطار فيديو لتضمين الفيديو في عرضك التقديمي. + +1. إنشاء كائن من فئة [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)class. +1. الحصول على مرجع الشريحة عبر الفهرس الخاص بها. +1. إضافة كائن [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) وتمرير مسار ملف الفيديو لتضمين الفيديو مع العرض التقديمي. +1. إضافة كائن [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) لإنشاء إطار للفيديو. +1. حفظ العرض التقديمي المعدل. + +يظهر لك هذا الشيفرة JavaScript كيفية إضافة فيديو مخزن محليًا إلى عرض تقديمي: +```javascript +// ينشئ فئة Presentation +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // يحمل الفيديو + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // يحصل على الشريحة الأولى ويضيف إطار فيديو + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // يحفظ العرض التقديمي إلى القرص + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +بدلاً من ذلك، يمكنك إضافة فيديو بتمرير مسار ملفه مباشرةً إلى طريقة [addVideoFrame(float x, float y, float width, float height, IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-) method: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إنشاء إطار فيديو مع فيديو من مصدر ويب** + +تدعم Microsoft [PowerPoint 2013 وما بعده](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us) مقاطع فيديو YouTube في العروض التقديمية. إذا كان الفيديو الذي تريد استخدامه متاحًا عبر الإنترنت (مثلًا على YouTube)، يمكنك إضافته إلى عرضك التقديمي من خلال الرابط الخاص به. + +1. إنشاء كائن من فئة [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)class +1. الحصول على مرجع الشريحة عبر الفهرس الخاص بها. +1. إضافة كائن [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) وتمرير الرابط إلى الفيديو. +1. تعيين صورة مصغرة لإطار الفيديو. +1. حفظ العرض التقديمي. + +يظهر لك هذا الشيفرة JavaScript كيفية إضافة فيديو من الويب إلى شريحة في عرض PowerPoint التقديمي: +```javascript +// ينشئ كائن Presentation يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **استخراج الفيديو من الشريحة** + +إلى جانب إضافة مقاطع الفيديو إلى الشرائح، يسمح لك Aspose.Slides باستخراج مقاطع الفيديو المضمّنة في العروض التقديمية. + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) class لتحميل العرض التقديمي الذي يحتوي على الفيديو. +2. التكرار عبر جميع كائنات [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). +3. التكرار عبر جميع كائنات [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) للعثور على [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). +4. حفظ الفيديو إلى القرص. + +يظهر لك هذا الشيفرة JavaScript كيفية استخراج الفيديو من شريحة في عرض تقديمي: +```javascript +// ينشئ كائن Presentation الذي يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // الحصول على امتداد الملف + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **التعليمات المتكررة** + +**ما هي معايير تشغيل الفيديو التي يمكن تغييرها لإطار الفيديو (VideoFrame)؟** + +يمكنك التحكم في [وضع التشغيل](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/) (تلقائي أو عند النقر) و[التكرار](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/). هذه الخيارات متاحة عبر خصائص كائن [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). + +**هل يؤثر إضافة فيديو على حجم ملف PPTX؟** + +نعم. عندما تقوم بتضمين فيديو محلي، تُدرج البيانات الثنائية داخل المستند، لذا يزداد حجم العرض التقديمي بنسبة حجم الملف. عندما تضيف فيديو عبر الإنترنت، يتم تضمين رابط وصورة مصغرة، لذلك الزيادة في الحجم تكون أصغر. + +**هل يمكنني استبدال الفيديو في إطار فيديو موجود دون تغيير موقعه وحجمه؟** + +نعم. يمكنك استبدال [محتوى الفيديو](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/) داخل الإطار مع الحفاظ على هندسة الشكل؛ هذا سيناريو شائع لتحديث الوسائط في تخطيط موجود. + +**هل يمكن تحديد نوع المحتوى (MIME) للفيديو المضمن؟** + +نعم. يحتوي الفيديو المضمن على [نوع محتوى](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/) يمكنك قراءته واستخدامه، على سبيل المثال عند حفظه إلى القرص. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..c43d94ea6a --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,331 @@ +--- +title: إدارة OLE في العروض التقديمية باستخدام JavaScript +linktitle: إدارة OLE +type: docs +weight: 40 +url: /ar/nodejs-java/manage-ole/ +keywords: +- كائن OLE +- ربط وتضمين الكائنات +- إضافة OLE +- تضمين OLE +- إضافة كائن +- تضمين كائن +- إضافة ملف +- تضمين ملف +- كائن مرتبط +- ملف مرتبط +- تغيير OLE +- أيقونة OLE +- عنوان OLE +- استخراج OLE +- استخراج كائن +- استخراج ملف +- PowerPoint +- عرض تقديمي +- Node.js +- JavaScript +- Aspose.Slides +description: "تحسين إدارة كائنات OLE في ملفات PowerPoint وOpenDocument باستخدام Aspose.Slides ل Node.js. قم بتضمين المحتوى وتحديثه وتصديره بسلاسة." +--- + +{{% alert color="primary" %}} + +OLE (Object Linking & Embedding) هو تقنية من مايكروسوفت تسمح للبيانات والكائنات التي تم إنشاؤها في تطبيق واحد أن تُوضع في تطبيق آخر عبر الربط أو التضمين. + +{{% /alert %}} + +تخيل مخططًا تم إنشاؤه في MS Excel. يتم وضع المخطط داخل شريحة PowerPoint. يُعْتَبَر هذا المخطط في Excel ككائن OLE. + +- قد يظهر كائن OLE كأيقونة. في هذه الحالة، عند النقر المزدوج على الأيقونة، يتم فتح المخطط في التطبيق المرتبط به (Excel)، أو يُطلب منك اختيار تطبيق لفتح أو تحرير الكائن. +- قد يعرض كائن OLE محتواه الفعلي، مثل محتوى مخطط. في هذه الحالة، يتم تنشيط المخطط في PowerPoint، يتم تحميل واجهة المخطط، ويمكنك تعديل بيانات المخطط داخل PowerPoint. + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) يسمح لك بإدراج كائنات OLE في الشرائح كإطارات كائن OLE ([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)). + +## **إضافة إطارات كائن OLE إلى الشرائح** + +بافتراض أنك قد أنشأت مخططًا بالفعل في Microsoft Excel وتريد تضمينه في شريحة كإطار كائن OLE باستخدام Aspose.Slides for Node.js via Java، يمكنك القيام بذلك بهذه الطريقة: + +1. أنشئ كائنًا من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. احصل على مرجع الشريحة عبر فهرستها. +3. اقرأ ملف Excel كمصفوفة بايت. +4. أضف [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) إلى الشريحة مع تضمين مصفوفة البايت ومعلومات أخرى حول كائن OLE. +5. احفظ العرض المُعدَّل كملف PPTX. + +في المثال أدناه، أضفنا مخططًا من ملف Excel إلى شريحة كإطار كائن OLE باستخدام Aspose.Slides for Node.js via Java. +**ملحوظة** أن منشئ [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) يأخذ امتداد كائن قابل للتضمين كمعامل ثانٍ. يسمح هذا الامتداد لـ PowerPoint بتفسير نوع الملف بشكل صحيح واختيار التطبيق المناسب لفتح كائن OLE هذا. +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// إعداد البيانات لكائن OLE. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// إضافة إطار كائن OLE إلى الشريحة. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **إضافة إطارات كائن OLE المرتبطة** + +Aspose.Slides for Node.js via Java يسمح لك بإضافة [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) دون تضمين البيانات ولكن فقط برابط إلى الملف. + +يعرض لك هذا الكود JavaScript كيفية إضافة [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) مع ملف Excel مرتبط إلى شريحة: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// إضافة إطار كائن OLE مع ملف Excel مرتبط. +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **الوصول إلى إطارات كائن OLE** + +إذا كان كائن OLE مُضمَّنًا بالفعل في شريحة، يمكنك بسهولة العثور عليه أو الوصول إليه بهذه الطريقة: + +1. حمِّل عرضًا يحتوي على كائن OLE مُضمَّن بإنشاء نسخة من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. احصل على مرجع الشريحة باستخدام فهرستها. +3. الوصول إلى شكل [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame). في مثالنا، استخدمنا ملف PPTX الذي تم إنشاؤه مسبقًا والذي يحتوي على شكل واحد فقط في الشريحة الأولى. +4. بمجرد الوصول إلى إطار كائن OLE، يمكنك تنفيذ أي عملية عليه. + +في المثال أدناه، يتم الوصول إلى إطار كائن OLE (كائن مخطط Excel مُضمَّن في شريحة) وبيانات الملف الخاصة به. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // احصل على بيانات الملف المضمن. + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + + // احصل على امتداد الملف المضمن. + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + // ... +} +``` + + +### **الوصول إلى خصائص إطار كائن OLE المرتبط** + +يسمح لك Aspose.Slides بالوصول إلى خصائص إطار كائن OLE المرتبط. + +يعرض لك هذا الكود JavaScript كيفية التحقق مما إذا كان كائن OLE مرتبطًا ثم الحصول على مسار الملف المرتبط: +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // تحقق مما إذا كان كائن OLE مرتبطًا. + if (oleFrame.isObjectLink()) { + // اطبع المسار الكامل للملف المرتبط. + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // اطبع المسار النسبي للملف المرتبط إذا كان موجودًا. + // يمكن فقط لملفات PPT أن تحتوي على المسار النسبي. + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **تغيير بيانات كائن OLE** + +{{% alert color="primary" %}} + +في هذا القسم، يستخدم مثال الشيفرة أدناه [Aspose.Cells for Java](/cells/java/). + +{{% /alert %}} + +إذا كان كائن OLE مُضمَّنًا بالفعل في شريحة، يمكنك بسهولة الوصول إلى ذلك الكائن وتعديل بياناته بهذه الطريقة: + +1. حمِّل عرضًا يحتوي على كائن OLE مُضمَّن بإنشاء نسخة من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. احصل على مرجع الشريحة عبر فهرستها. +3. الوصول إلى شكل إطار كائن OLE. في مثالنا، استخدمنا ملف PPTX الذي تم إنشاؤه مسبقًا والذي يحتوي على شكل واحد في الشريحة الأولى. +4. بمجرد الوصول إلى إطار كائن OLE، يمكنك تنفيذ أي عملية عليه. +5. أنشئ كائن `Workbook` وابدأ بالوصول إلى بيانات OLE. +6. الوصول إلى `Worksheet` المطلوبة وتعديل البيانات. +7. احفظ `Workbook` المحدث في تدفق. +8. غيّر بيانات كائن OLE من التدفق. + +في المثال أدناه، يتم الوصول إلى إطار كائن OLE (كائن مخطط Excel مُضمَّن في شريحة) وتعديل بيانات ملفه لتحديث بيانات المخطط. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // قراءة بيانات كائن OLE ككائن Workbook. + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // تعديل بيانات المصنف. + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // تغيير بيانات كائن إطار OLE. + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **تضمين أنواع ملفات أخرى في الشرائح** + +إلى جانب مخططات Excel، يسمح لك Aspose.Slides for Node.js via Java بتضمين أنواع أخرى من الملفات في الشرائح. على سبيل المثال، يمكنك إدراج ملفات HTML وPDF وZIP ككائنات. عندما ينقر المستخدم مزدوجًا على الكائن المدخل، يفتح تلقائيًا في البرنامج المناسب، أو يُطلب من المستخدم اختيار برنامج مناسب لفتحه. + +يعرض لك هذا الكود JavaScript كيفية تضمين HTML وZIP في شريحة: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **ضبط أنواع الملفات للكائنات المُضمَّنة** + +عند العمل مع العروض التقديمية، قد تحتاج إلى استبدال كائنات OLE القديمة بأخرى جديدة أو استبدال كائن OLE غير مدعوم بآخر مدعوم. يسمح لك Aspose.Slides for Node.js via Java بتعيين نوع الملف لكائن مُضمَّن، مما يتيح لك تحديث بيانات إطار OLE أو امتداده. + +يعرض لك هذا الكود JavaScript كيفية تعيين نوع الملف لكائن OLE مُضمَّن إلى `zip`: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// Change the file type to ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **تعيين صور الأيقونات والعناوين للكائنات المُضمَّنة** + +بعد تضمين كائن OLE، يتم إضافة معاينة تتكون من صورة أيقونة تلقائيًا. هذه المعاينة هي ما يراه المستخدمون قبل الوصول إلى كائن OLE أو فتحه. إذا أردت استخدام صورة ونص محددين كعناصر في المعاينة، يمكنك تعيين صورة الأيقونة والعنوان باستخدام Aspose.Slides for Node.js via Java. + +يعرض لك هذا الكود JavaScript كيفية تعيين صورة الأيقونة والعنوان لكائن مُضمَّن: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// إضافة صورة إلى موارد العرض التقديمي. +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// تعيين عنوان وصورة للمعاينة OLE. +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **منع تعديل حجم وإعادة تموضع إطار كائن OLE** + +بعد أن تضيف كائن OLE مرتبط إلى شريحة عرض تقديمي، عند فتح العرض في PowerPoint قد تظهر لك رسالة تطلب تحديث الروابط. قد يؤدي النقر على زر "Update Links" إلى تغيير حجم وموضع إطار كائن OLE لأن PowerPoint يقوم بتحديث البيانات من كائن OLE المرتبط ويعيد تحديث معاينة الكائن. لمنع PowerPoint من مطالبتك بتحديث بيانات الكائن، استخدم طريقة `setUpdateAutomatic` من الفئة [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) مع القيمة `false`: +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **استخراج الملفات المُضمَّنة** + +يسمح لك Aspose.Slides for Node.js via Java باستخراج الملفات المُضمَّنة في الشرائح ككائنات OLE بهذه الطريقة: + +1. أنشئ نسخة من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) التي تحتوي على كائنات OLE التي ترغب في استخراجها. +2. تجول عبر جميع الأشكال في العرض وادخل إلى أشكال [OLEObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe). +3. الوصول إلى بيانات الملفات المُضمَّنة من إطارات OLE وكتابتها إلى القرص. + +يعرض لك هذا الكود JavaScript كيفية استخراج الملفات المُضمَّنة في شريحة ككائنات OLE: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **الأسئلة المتكررة** + +**هل سيتم عرض محتوى OLE عند تصدير الشرائح إلى PDF/صور؟** +ما هو مرئي على الشريحة يتم عرضه — الأيقونة/صورة الاستبدال (المعاينة). لا يتم تنفيذ محتوى OLE "الحي" أثناء العرض. إذا لزم الأمر، عيّن صورة المعاينة الخاصة بك لضمان المظهر المتوقع في ملف PDF المُصدَّر. + +**كيف يمكنني قفل كائن OLE على شريحة بحيث لا يستطيع المستخدمون تحريكه/تحريره في PowerPoint؟** +قفل الشكل: يوفر Aspose.Slides [قفل على مستوى الشكل](/slides/ar/nodejs-java/applying-protection-to-presentation/). هذا ليس تشفيرًا، لكنه يمنع فعليًا التعديلات والتحركات غير المقصودة. + +**هل سيتم الحفاظ على المسارات النسبية لكائنات OLE المرتبطة في تنسيق PPTX؟** +في PPTX، لا تتوفر معلومات "المسار النسبي" — فقط المسار الكامل. تُوجد المسارات النسبية في تنسيق PPT القديم. للقدرة على النقل، يفضَّل استخدام مسارات مطلقة موثوقة/عناوين URI قابلة للوصول أو التضمين. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..5d23ba2ca1 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,65 @@ +--- +title: نص متحرك +type: docs +weight: 60 +url: /ar/nodejs-java/animated-text/ +keywords: "نص متحرك في PowerPoint" +description: "نص متحرك في PowerPoint باستخدام Java" +--- + +## **إضافة تأثيرات الحركة إلى الفقرات** + +قمنا بإضافة طريقة [**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) إلى فئتي [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) و [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence). تسمح لك هذه الطريقة بإضافة تأثيرات الحركة إلى فقرة واحدة. يُظهر لك هذا الكود المثال كيفية إضافة تأثير حركة إلى فقرة واحدة: +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // حدد الفقرة لإضافة التأثير + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // إضافة تأثير تحريك Fly إلى الفقرة المحددة + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **الحصول على تأثيرات الحركة في الفقرات** + +قد تقرّر معرفة تأثيرات الحركة المضافة إلى فقرة — على سبيل المثال، في سيناريو تريد فيه الحصول على تأثيرات الحركة في فقرة لأنك تخطط لتطبيق هذه التأثيرات على فقرة أو شكل آخر. + +يتيح Aspose.Slides for Node.js via Java لك الحصول على جميع تأثيرات الحركة المطبقة على الفقرات الموجودة داخل إطار نص (شكل). يُظهر لك هذا الكود المثال كيفية الحصول على تأثيرات الحركة في فقرة: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **الأسئلة الشائعة** + +**كيف تختلف تحريكات النص عن انتقالات الشرائح، وهل يمكن دمجهما؟** + +تتحكم تحريكات النص في سلوك الكائن بمرور الوقت على الشريحة، بينما [الانتقالات](/slides/ar/nodejs-java/slide-transition/) تتحكم في كيفية تغيير الشرائح. هما مستقلان ويمكن استخدامهما معًا؛ يتم تنظيم ترتيب التشغيل بواسطة جدول زمني التحريك وإعدادات الانتقال. + +**هل تُحفظ تحريكات النص عند التصدير إلى PDF أو الصور؟** + +لا. ملفات PDF والصور النقطية ثابتة، لذا سترى حالة واحدة من الشريحة بدون حركة. للحفاظ على الحركة، استخدم تصدير [فيديو](/slides/ar/nodejs-java/convert-powerpoint-to-video/) أو [HTML](/slides/ar/nodejs-java/export-to-html5/). + +**هل تعمل تحريكات النص في التخطيطات والماستر؟** + +التأثيرات المطبقة على كائنات التخطيط/الماستر تُورّث إلى الشرائح، لكن توقيتها وتفاعلها مع تحريكات مستوى الشريحة يعتمد على التسلسل النهائي على الشريحة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..081708e826 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,138 @@ +--- +title: استخراج النص من العرض التقديمي +type: docs +weight: 90 +url: /ar/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +ليس من غير المألوف أن يحتاج المطورون إلى استخراج النص من عرض تقديمي. للقيام بذلك، تحتاج إلى استخراج النص من جميع الأشكال في جميع الشرائح في العرض التقديمي. يشرح هذا المقال كيفية استخراج النص من عروض PowerPoint PPTX باستخدام Aspose.Slides. + +{{% /alert %}} + +## **استخراج نص من الشريحة** + +Aspose.Slides for Node.js via Java يوفّر الفئة [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). تعرض هذه الفئة عددًا من الطرق الساكنة المتعددة الأحمال لاستخراج النص الكامل من عرض تقديمي أو شريحة. لاستخراج النص من شريحة في عرض PPTX، +استخدم الطريقة الساكنة المتعددة الأحمال [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) التي تعرضها الفئة [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). تقبل هذه الطريقة كائن Slide كمعامل. +عند التنفيذ، تقوم طريقة Slide بمسح النص بالكامل من الشريحة الممرَّرة كمعامل وتعيد مصفوفة من كائنات [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). هذا يعني أن أي تنسيق نص مرتبط بالنص متاح. يُظهر المقطع التالي الكود الذي يستخرج كل النص في الشريحة الأولى من العرض: +```javascript +// إنشاء كائن من فئة Presentation التي تمثّل ملف PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // الحصول على مصفوفة من كائنات ITextFrame من جميع الشرائح في ملف PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // التكرار عبر مصفوفة TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // التكرار عبر الفقرات في ITextFrame الحالي + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // التكرار عبر المقاطع في IParagraph الحالي + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // عرض النص في الجزء الحالي + console.log(port.getText()); + // عرض ارتفاع الخط للنص + console.log(port.getPortionFormat().getFontHeight()); + // عرض اسم الخط للنص + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); +} finally { + pres.dispose(); +} +``` + + +## **استخراج نص من العرض التقديمي** + +لمسح النص من كامل العرض التقديمي، استخدم الطريقة الساكنة [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) التي تعرضها الفئة SlideUtil. تأخذ هذه الطريقة معاملين: + +1. أولاً، كائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) يمثل العرض التقديمي الذي يتم استخراج النص منه. +2. ثانياً، قيمة منطقية تحدد ما إذا كان يجب تضمين الشريحة الرئيسية عند مسح النص من العرض التقديمي. + تُعيد الطريقة مصفوفة من كائنات [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) مع معلومات تنسيق النص. الكود أدناه يمسح النص ومعلومات التنسيق من عرض تقديمي، بما في ذلك الشرائح الرئيسية. +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // الحصول على مصفوفة من كائنات ITextFrame من جميع الشرائح في ملف PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // التكرار عبر مصفوفة TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // التكرار عبر الفقرات في ITextFrame الحالي + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // التكرار عبر المقاطع في IParagraph الحالي + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // عرض النص في الجزء الحالي + console.log(port.getText()); + // عرض ارتفاع الخط للنص + console.log(port.getPortionFormat().getFontHeight()); + // عرض اسم الخط للنص + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **استخراج نص مصنف وسريع** + +تم إضافة الطريقة الساكنة الجديدة getPresentationText إلى فئة Presentation. هناك ثلاثة أحمال لهذه الطريقة: +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + +The [TextExtractionArrangingMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode) enum argument indicates the mode to organize the output of text result and can be set to the following values: +- [Unarranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) - The raw text with no respect to position on the slide +- [Arranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Arranged) - The text is positioned in the same order as on the slide + +**Unarranged** mode can be used when speed is critical, it's faster than Arranged mode. + +[PresentationText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText) represents the raw text extracted from the presentation. It contains a [getSlidesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText#getSlidesText--) method which returns an array of [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) objects. Every object represent the text on the corresponding slide. [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) object have the following methods: + +- [SlideText.getText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getText--) - The text on the slide's shapes +- [SlideText.getMasterText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getMasterText--) - The text on the master page's shapes for this slide +- [SlideText.getLayoutText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getLayoutText--) - The text on the layout page's shapes for this slide +- [SlideText.getNotesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getNotesText--) - The text on the notes page's shapes for this slide + +There is also a [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class which implements the [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class. + +The new API can be used like this: + +```javascript +var text1 = aspose.slides.PresentationFactory.getInstance().getPresentationText("presentation.pptx", aspose.slides.TextExtractionArrangingMode.Unarranged); +console.log(text1.getSlidesText()[0].getText()); +console.log(text1.getSlidesText()[0].getLayoutText()); +console.log(text1.getSlidesText()[0].getMasterText()); +console.log(text1.getSlidesText()[0].getNotesText()); +``` + + +## **FAQ** + +**ما مدى سرعة معالجة Aspose.Slides للعروض الكبيرة أثناء استخراج النص؟** + +تم تحسين Aspose.Slides للأداء العالي ويعالج حتى العروض الكبيرة بكفاءة، مما يجعله مناسبًا للسيناريوهات الفورية أو المعالجة الضخمة. + +**هل يمكن لـ Aspose.Slides استخراج النص من الجداول والرسوم البيانية داخل العروض التقديمية؟** + +نعم، يدعم Aspose.Slides استخراج النص من الجداول والرسوم البيانية وغيرها من عناصر الشرائح المعقَّدة، مما يتيح لك الوصول إلى جميع المحتويات النصية وتحليلها بسهولة. + +**هل أحتاج إلى ترخيص خاص من Aspose.Slides لاستخراج النص من العروض؟** + +يمكنك استخراج النص باستخدام نسخة التجربة المجانية من Aspose.Slides، على الرغم من وجود قيود معينة، مثل معالجة عدد محدود من الشرائح. للحصول على استخدام غير مقيد وللتعامل مع عروض أكبر، يُنصح بشراء ترخيص كامل. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..bacab49b28 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,158 @@ +--- +title: إدارة إعدادات Autofit +type: docs +weight: 30 +url: /ar/nodejs-java/manage-autofit-settings/ +keywords: "صندوق نص, الملاءمة التلقائية, عرض PowerPoint, Java, Aspose.Slides لـ Node.js عبر Java" +description: "ضبط إعدادات الملاءمة التلقائية لصندوق النص في PowerPoint باستخدام JavaScript" +--- + +بشكل افتراضي، عند إضافة صندوق نص، يستخدم Microsoft PowerPoint إعداد **Resize shape to fix text** لصندوق النص—فهو يغير حجم صندوق النص تلقائيًا لضمان أن النص يتناسب دائمًا معه. + +![textbox-in-powerpoint](textbox-in-powerpoint.png) + +* عندما يصبح النص في صندوق النص أطول أو أكبر، يقوم PowerPoint تلقائيًا بتوسيع صندوق النص—يزيد ارتفاعه—لسماح بتخزين المزيد من النص. +* عندما يصبح النص في صندوق النص أقصر أو أصغر، يقوم PowerPoint تلقائيًا بتقليل حجم صندوق النص—يقلل ارتفاعه—لإزالة المساحة الزائدة. + +في PowerPoint، هناك 4 معلمات أو خيارات مهمة تتحكم في سلوك Autofit لصناديق النص: + +* **Do not Autofit** +* **Shrink text on overflow** +* **Resize shape to fit text** +* **Wrap text in shape.** + +![autofit-options-powerpoint](autofit-options-powerpoint.png) + +توفر Aspose.Slides for Node.js via Java خيارات مماثلة—بعض الخصائص تحت فئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)—تسمح لك بالتحكم في سلوك Autofit لصناديق النص في العروض التقديمية. + +## **تغيير حجم الشكل لتناسب النص** + +إذا كنت تريد أن يتناسب النص داخل الصندوق دائمًا بعد إجراء أي تغييرات على النص، عليك استخدام خيار **Resize shape to fix text**. لتحديد هذا الإعداد، استدعِ الطريقة [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) من الفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) بالقيمة `Shape`. + +![alwaysfit-setting-powerpoint](alwaysfit-setting-powerpoint.png) + +يظهر هذا الكود JavaScript كيفية تحديد أن النص يجب أن يتناسب دائمًا مع الصندوق في عرض PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +إذا أصبح النص أطول أو أكبر، سيتم تعديل حجم صندوق النص تلقائيًا (زيادة في الارتفاع) لضمان توافق جميع النص معه. إذا أصبح النص أقصر، يحدث العكس. + +## **عدم استخدام Autofit** + +إذا كنت تريد أن يحتفظ صندوق النص أو الشكل بأبعادها بغض النظر عن التغييرات التي تطرأ على النص داخلها، عليك استخدام خيار **Do not Autofit**. لتحديد هذا الإعداد، استدعِ الطريقة [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) من الفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) بالقيمة `None`. + +![donotautofit-setting-powerpoint](donotautofit-setting-powerpoint.png) + +يظهر هذا الكود JavaScript كيفية تحديد أن صندوق النص يجب أن يحتفظ بأبعاده دائمًا في عرض PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +عندما يصبح النص أطول من الصندوق، يفيض خارج الصندوق. + +## **تقليص النص عند الفائض** + +إذا أصبح النص أطول من الصندوق، يمكنك باستخدام خيار **Shrink text on overflow** تحديد أن حجم النص وتباعده يجب أن يُخفض لتناسب الصندوق. لتحديد هذا الإعداد، استدعِ الطريقة [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) من الفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) بالقيمة `Normal`. + +![shrinktextonoverflow-setting-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +يظهر هذا الكود JavaScript كيفية تحديد أن النص يُقَلَّص عند الفائض في عرض PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +عند استخدام خيار **Shrink text on overflow**، يتم تطبيق الإعداد فقط عندما يصبح النص أطول من الصندوق. +{{% /alert %}} + +## **التفاف النص** + +إذا كنت تريد أن يلتف النص داخل الشكل عندما يتجاوز النص حدود الشكل (العرض فقط)، عليك استخدام معلمة **Wrap text in shape**. لتحديد هذا الإعداد، استدعِ الطريقة [setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setWrapText) من الفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) بالقيمة `true`. + +يظهر هذا الكود JavaScript كيفية استخدام إعداد Wrap Text في عرض PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +إذا استدعيت طريقة `setWrapText` بالقيمة `False` لشكل ما، عندما يصبح النص داخل الشكل أطول من عرض الشكل، سيمتد النص خارج حدود الشكل على سطر واحد. +{{% /alert %}} + +## **الأسئلة الشائعة** + +**هل تؤثر الهوامش الداخلية لإطار النص على AutoFit؟** + +نعم. الهوامش الداخلية (Padding) تقلل المساحة المتاحة للنص، لذا سيتدخل AutoFit في وقت أبكر—مقلّصًا الخط أو معدلًا حجم الشكل أسرع. تحقق من الهوامش واضبطها قبل تعديل AutoFit. + +**كيف يتفاعل AutoFit مع الفواصل اليدوية واللفائف الناعمة؟** + +تبقى الفواصل القسرية في مكانها، ويتكيف AutoFit مع حجم الخط والمسافات حولها. إزالة الفواصل غير الضرورية غالبًا ما يقلل من شدة تقليل النص عبر AutoFit. + +**هل يؤثر تغيير خط السمة أو استبدال الخط على نتائج AutoFit؟** + +نعم. استبدال الخط بآخر له مقاييس مختلفة يغيّر عرض/ارتفاع النص، مما قد يغيّر الحجم النهائي للخط وتوزيع الأسطر. بعد أي تغيير أو استبدال للخط، أعد فحص الشرائح. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..fc0b567656 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,321 @@ +--- +title: إدارة النقاط +type: docs +weight: 60 +url: /ar/nodejs-java/manage-bullet/ +keywords: "النقاط, قوائم نقطية, الأرقام, قوائم مرقمة, نقاط صورة, نقاط متعددة المستويات, PowerPoint Presentation, Java, Aspose.Slides for Node.js via Java" +description: "إنشاء قوائم نقطية ومرقمة في عرض PowerPoint باستخدام JavaScript" +--- + +في **Microsoft PowerPoint**، يمكنك إنشاء قوائم نقطية ومرقمة بنفس الطريقة التي تفعلها في Word وغيرها من محررات النص. **Aspose.Slides for Node.js via Java** يتيح لك أيضًا استخدام النقاط والأرقام في الشرائح داخل عروضك التقديمية. + +## **لماذا نستخدم القوائم النقطية؟** + +تساعد القوائم النقطية على تنظيم وعرض المعلومات بسرعة وكفاءة. + +**مثال على قائمة نقطية** + +في معظم الحالات، تخدم القائمة النقطية هذه الوظائف الثلاث الرئيسية: + +- تجذب انتباه القراء أو المشاهدين إلى المعلومات المهمة +- تسمح للقراء أو المشاهدين بمسح النقاط الرئيسية بسهولة +- تنقل وتوفر التفاصيل المهمة بكفاءة. + +## **لماذا نستخدم القوائم المرقمة؟** + +تساعد القوائم المرقمة أيضًا في تنظيم وعرض المعلومات. من المثالي استخدام الأرقام (بدلاً من النقاط) عندما يكون ترتيب العناصر (مثلاً، *الخطوة 1، الخطوة 2*، إلخ) مهمًا أو عندما يجب الإشارة إلى عنصر ما (مثلاً، *انظر الخطوة 3*). + +**مثال على قائمة مرقمة** + +هذا ملخص للخطوات (من الخطوة 1 إلى الخطوة 15) في إجراء **إنشاء النقاط** أدناه: + +1. إنشاء كائن من فئة العرض التقديمي. +2. تنفيذ عدة مهام (من الخطوة 3 إلى الخطوة 14). +3. حفظ العرض التقديمي. + +## **إنشاء النقاط** + +هذا الموضوع هو أيضًا جزء من سلسلة الموضوعات الخاصة بإدارة فقرات النص. ستوضح هذه الصفحة كيفية إدارة نقط الفقرات. تكون النقاط أكثر فائدة عندما يُراد وصف شيء على خطوات. علاوة على ذلك، يبدو النص منظمًا جيدًا باستخدام النقاط. الفقرات النقطية دائمًا أسهل في القراءة والفهم. سنرى كيف يمكن للمطورين استخدام هذه الميزة الصغيرة ولكن القوية في Aspose.Slides for Node.js via Java. يرجى اتباع الخطوات أدناه لإدارة نقاط الفقرة باستخدام Aspose.Slides for Node.js via Java: + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. الوصول إلى الشريحة المطلوبة في مجموعة الشرائح باستخدام كائن [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. إضافة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) في الشريحة المحددة. +1. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) للشكل الذي تمت إضافته. +1. إزالة الفقرة الافتراضية في الـ TextFrame. +1. إنشاء أول كائن من فئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph). +1. تعيين نوع النقطة للفقرة. +1. تعيين نوع النقطة إلى [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) وتحديد حرف النقطة. +1. تعيين نص الفقرة. +1. تعيين مسافة الفقرة لضبط النقطة. +1. تعيين لون النقطة. +1. تعيين ارتفاع النقاط. +1. إضافة الفقرة التي تم إنشاؤها إلى مجموعة فقرات الـ TextFrame. +1. إضافة الفقرة الثانية وتكرار العملية المذكورة في الخطوات **7 إلى 13**. +1. حفظ العرض التقديمي. + +هذا المثال البرمجي بلغة Java—تنفيذ للخطوات أعلاه—يظهر لك كيفية إنشاء قائمة نقطية في شريحة: +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة والوصول إلى AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // الوصول إلى إطار النص للـ AutoShape المُنشأ + var txtFrm = aShp.getTextFrame(); + // إزالة الفقرة الافتراضية الموجودة + txtFrm.getParagraphs().removeAt(0); + // إنشاء فقرة + var para = new aspose.slides.Paragraph(); + // تحديد نمط الفقرة النقطية والرمز + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // تحديد نص الفقرة + para.setText("Welcome to Aspose.Slides"); + // تحديد مسافة الفقرة النقطية + para.getParagraphFormat().setIndent(25); + // تحديد لون النقطة + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // تعيين IsBulletHardColor إلى true لاستخدام لون نقطة مخصص + para.getParagraphFormat().getBullet().isBulletHardColor(); + // تحديد ارتفاع النقطة + para.getParagraphFormat().getBullet().setHeight(100); + // إضافة الفقرة إلى إطار النص + txtFrm.getParagraphs().add(para); + // حفظ العرض التقديمي كملف PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +## **إنشاء نقاط صورة** + +Aspose.Slides for Node.js via Java يتيح لك تغيير النقاط في القوائم النقطية. يمكنك استبدال النقاط برموز أو صور مخصصة. إذا أردت إضافة عنصر بصري إلى قائمة أو جذب انتباه أكبر إلى عناصر القائمة، يمكنك استخدام صورتك الخاصة كنقطة. + +{{% alert color="primary" %}} + +من المثالي، إذا كنت تنوي استبدال رمز النقطة العادي بصورة، أن تختار صورة رسومية بسيطة بخلفية شفافة. تعمل مثل هذه الصور بأفضل شكل كرموز نقط مخصصة. + +في أي حال، سيتم تقليل حجم الصورة التي تختارها إلى حجم صغير جدًا، لذلك نوصي بشدة باختيار صورة تبدو جيدة (كبديل لرمز النقطة) في القائمة. + +{{% /alert %}} + +لإنشاء نقطة بصورة، اتبع هذه الخطوات: + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) +1. الوصول إلى الشريحة المطلوبة في مجموعة الشرائح باستخدام كائن [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) +1. إضافة شكل تلقائي في الشريحة المحددة +1. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) للشكل المضاف +1. إزالة الفقرة الافتراضية في الـ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +1. إنشاء أول كائن من فئة Paragraph +1. تحميل صورة من القرص في [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage) +1. تعيين نوع النقطة إلى Picture وتحديد الصورة +1. تعيين نص الفقرة +1. تعيين مسافة الفقرة لضبط النقطة +1. تعيين لون النقطة +1. تعيين ارتفاع النقاط +1. إضافة الفقرة التي تم إنشاؤها إلى مجموعة فقرات [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +1. إضافة الفقرة الثانية وتكرار العملية المذكورة في الخطوات السابقة +1. حفظ العرض التقديمي + +هذا الكود بلغة JavaScript يوضح لك كيفية إنشاء نقطة صورة في شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إنشاء صورة للنقاط + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // إضافة والوصول إلى Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // الوصول إلى إطار النص للـ autoshape المنشأ + var txtFrm = aShp.getTextFrame(); + // إزالة الفقرة الافتراضية الموجودة + txtFrm.getParagraphs().removeAt(0); + // إنشاء فقرة جديدة + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // ضبط نمط النقطة للفقرة والصورة + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // ضبط ارتفاع النقطة + para.getParagraphFormat().getBullet().setHeight(100); + // إضافة الفقرة إلى إطار النص + txtFrm.getParagraphs().add(para); + // كتابة العرض التقديمي كملف PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إنشاء نقاط متعددة المستويات** + +لإنشاء قائمة نقطية تحتوي على عناصر في مستويات مختلفة—قوائم إضافية تحت القائمة الرئيسية—اتبع هذه الخطوات: + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. الوصول إلى الشريحة المطلوبة في مجموعة الشرائح باستخدام كائن [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. إضافة شكل تلقائي في الشريحة المحددة. +1. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) للشكل المضاف. +1. إزالة الفقرة الافتراضية في الـ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. إنشاء أول كائن من فئة Paragraph وتعيين العمق إلى 0. +1. إنشاء ثاني كائن من فئة Paragraph وتعيين العمق إلى 1. +1. إنشاء ثالث كائن من فئة Paragraph وتعيين العمق إلى 2. +1. إنشاء رابع كائن من فئة Paragraph وتعيين العمق إلى 3. +1. إضافة الفقرات التي تم إنشاؤها إلى مجموعة فقرات [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. حفظ العرض التقديمي. + +هذا الكود، الذي يُنفّذ الخطوات أعلاه، يوضح لك كيفية إنشاء قائمة نقطية متعددة المستويات بلغة JavaScript: +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة والوصول إلى AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // الوصول إلى إطار النص للـ AutoShape المُنشأ + var txtFrm = aShp.addTextFrame(""); + // إزالة الفقرة الافتراضية الموجودة + txtFrm.getParagraphs().clear(); + // إنشاء الفقرة الأولى + var para1 = new aspose.slides.Paragraph(); + // تحديد نمط الفقرة النقطية والرمز + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // تحديد مستوى النقطة + para1.getParagraphFormat().setDepth(0); + // إنشاء الفقرة الثانية + var para2 = new aspose.slides.Paragraph(); + // تحديد نمط الفقرة النقطية والرمز + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // تحديد مستوى النقطة + para2.getParagraphFormat().setDepth(1); + // إنشاء الفقرة الثالثة + var para3 = new aspose.slides.Paragraph(); + // تحديد نمط الفقرة النقطية والرمز + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // تحديد مستوى النقطة + para3.getParagraphFormat().setDepth(2); + // إنشاء الفقرة الرابعة + var para4 = new aspose.slides.Paragraph(); + // تحديد نمط الفقرة النقطية والرمز + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // تحديد مستوى النقطة + para4.getParagraphFormat().setDepth(3); + // إضافة الفقرة إلى إطار النص + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // حفظ العرض التقديمي كملف PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إنشاء قائمة مرقمة مخصصة** + +Aspose.Slides for Node.js via Java يوفر واجهة برمجة تطبيقات بسيطة لإدارة الفقرات بتنسيق أرقام مخصص. لإضافة قائمة أرقام مخصصة في فقرة، يرجى اتباع الخطوات أدناه: + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. الوصول إلى الشريحة المطلوبة في مجموعة الشرائح باستخدام كائن [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. إضافة شكل تلقائي في الشريحة المحددة. +1. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) للشكل المضاف. +1. إزالة الفقرة الافتراضية في الـ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. إنشاء أول كائن من فئة Paragraph وتعيين **NumberedBulletStartWith** إلى 2 +1. إنشاء ثاني كائن من فئة Paragraph وتعيين **NumberedBulletStartWith** إلى 3 +1. إنشاء ثالث كائن من فئة Paragraph وتعيين **NumberedBulletStartWith** إلى 7 +1. إضافة الفقرات التي تم إنشاؤها إلى مجموعة فقرات [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. حفظ العرض التقديمي. + +هذا الكود بلغة JavaScript يوضح لك كيفية إنشاء قائمة مرقمة في شريحة: +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة والوصول إلى AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // الوصول إلى إطار النص للـ AutoShape المنشأ + var txtFrm = aShp.addTextFrame(""); + // إزالة الفقرة الافتراضية الموجودة + txtFrm.getParagraphs().clear(); + // القائمة الأولى + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // القائمة الثانية + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**هل يمكن تصدير القوائم النقطية والمرقمة التي تم إنشاؤها باستخدام Aspose.Slides إلى صيغ أخرى مثل PDF أو الصور؟** + +نعم، Aspose.Slides يحافظ تمامًا على تنسيق وبنية القوائم النقطية والمرقمة عند تصدير العروض إلى صيغ مثل PDF والصور وغيرها، مما يضمن نتائج متسقة. + +**هل يمكن استيراد القوائم النقطية أو المرقمة من عروض تقديمية موجودة؟** + +نعم، Aspose.Slides يتيح لك استيراد وتعديل القوائم النقطية أو المرقمة من عروض تقديمية موجودة مع الحفاظ على تنسيقها ومظهرها الأصلي. + +**هل يدعم Aspose.Slides القوائم النقطية والمرقمة في العروض التي تم إنشاؤها بمجموعة متعددة من اللغات؟** + +نعم، Aspose.Slides يدعم بالكامل العروض متعددة اللغات، ويسمح لك بإنشاء قوائم نقطية ومرقمة بأي لغة، بما في ذلك استخدام الأحرف الخاصة أو غير اللاتينية. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..19ac99efde --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,710 @@ +--- +title: إدارة فقرات PowerPoint في JavaScript +type: docs +weight: 40 +url: /ar/nodejs-java/manage-paragraph/ +keywords: +- إضافة نص +- إضافة فقرات +- إدارة النص +- إدارة الفقرات +- إزاحة الفقرة +- نقطة الفقرة +- قائمة مرقمة +- خصائص الفقرة +- استيراد HTML +- النص إلى HTML +- الفقرة إلى HTML +- الفقرات إلى صور +- تصدير الفقرات +- عرض PowerPoint +- جافا سكريبت +- Aspose.Slides لـ Node.js عبر Java +description: إنشاء فقرات وإدارة خصائص الفقرة في عروض PowerPoint باستخدام جافا سكريبت +--- + +Aspose.Slides يوفر جميع الفئات والصفوف التي تحتاجها للعمل مع نصوص PowerPoint والفقرات والأجزاء في Java. + +* يوفر Aspose.Slides الفئة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) للسماح لك بإضافة كائنات تمثل فقرة. يمكن لكائن `ITextFame` أن يحتوي على فقرة واحدة أو متعددة (كل فقرة تُنشأ عبر إرجاع سطر). +* يوفر Aspose.Slides الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) للسماح لك بإضافة كائنات تمثل أجزاء. يمكن لكائن `IParagraph` أن يحتوي على جزء واحد أو متعدد (مجموعة كائنات iPortions). +* يوفر Aspose.Slides الفئة [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) للسماح لك بإضافة كائنات تمثل نصوصًا وخصائص تنسيقها. + +كائن `IParagraph` قادر على معالجة النصوص ذات خصائص تنسيق مختلفة عبر كائناته الأساسية `IPortion`. + +## **إضافة فقرات متعددة تحتوي على أجزاء متعددة** + +توضح هذه الخطوات كيفية إضافة إطار نص يحتوي على 3 فقرات، وكل فقرة تحتوي على 3 أجزاء: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +3. إضافة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) على شكل مستطيل إلى الشريحة. +4. الحصول على `ITextFrame` المرتبط بـ [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/). +5. إنشاء كائنين من الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) وإضافتهما إلى مجموعة `IParagraphs` الخاصة بـ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +6. إنشاء ثلاثة كائنات من الفئة [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) لكل `IParagraph` جديد (اثنان من كائنات Portion للفقرة الافتراضية) وإضافة كل كائن `IPortion` إلى مجموعة IPortion الخاصة بكل `IParagraph`. +7. ضبط نص لكل جزء. +8. تطبيق خصائص التنسيق المفضلة على كل جزء باستخدام خصائص التنسيق المتاحة في كائن `IPortion`. +9. حفظ العرض المعدل. + +يُظهر هذا الكود Javascript تنفيذ الخطوات لإضافة فقرات تحتوي على أجزاء: +```javascript +// إنشاء كائن من فئة Presentation يمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape من نوع Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // الوصول إلى TextFrame الخاص بالـ AutoShape + var tf = ashp.getTextFrame(); + // إنشاء فقرات وأقسام بتنسيقات نص مختلفة + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // حفظ PPTX إلى القرص + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إدارة نقط القوائم للفقرة** + +تساعد قوائم النقط على تنظيم المعلومات وتقديمها بسرعة وكفاءة. الفقرات المرقمة تكون دائمًا أسهل للقراءة والفهم. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +3. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) إلى الشريحة المختارة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) الخاص بالشكل. +5. إزالة الفقرة الافتراضية في `TextFrame`. +6. إنشاء أول فقرة باستخدام الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. تعيين `Type` للنقطة إلى `Symbol` وضبط حرف النقطة. +8. تعيين نص الفقرة. +9. تعيين `Indent` للفقرة بالنسبة للنقطة. +10. تعيين لون للنقطة. +11. تعيين ارتفاع للنقطة. +12. إضافة الفقرة الجديدة إلى مجموعة فقرات `TextFrame`. +13. إضافة الفقرة الثانية وتكرار العملية من الخطوة 7 إلى 13. +14. حفظ العرض. + +يُظهر هذا الكود Javascript كيفية إضافة نقطة للفقرة: +```javascript +// ينشئ كائن من فئة Presentation يمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة والوصول إلى AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // الوصول إلى إطار النص للـ AutoShape + var txtFrm = aShp.getTextFrame(); + // إزالة الفقرة الافتراضية + txtFrm.getParagraphs().removeAt(0); + // إنشاء فقرة + var para = new aspose.slides.Paragraph(); + // تعيين نمط نقطة الفقرة والرمز + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // تعيين نص الفقرة + para.setText("Welcome to Aspose.Slides"); + // تعيين إزاحة النقطة + para.getParagraphFormat().setIndent(25); + // تعيين لون النقطة + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// ضع IsBulletHardColor إلى true لاستخدام لون نقطة مخصص + // تعيين ارتفاع النقطة + para.getParagraphFormat().getBullet().setHeight(100); + // إضافة الفقرة إلى إطار النص + txtFrm.getParagraphs().add(para); + // إنشاء الفقرة الثانية + var para2 = new aspose.slides.Paragraph(); + // تعيين نوع ونمط نقطة الفقرة + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // إضافة نص الفقرة + para2.setText("This is numbered bullet"); + // تعيين إزاحة النقطة + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// ضع IsBulletHardColor إلى true لاستخدام لون نقطة مخصص + // تعيين ارتفاع النقطة + para2.getParagraphFormat().getBullet().setHeight(100); + // إضافة الفقرة إلى إطار النص + txtFrm.getParagraphs().add(para2); + // حفظ العرض المعدل + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إدارة نقط الصور للفقرة** + +تساعد قوائم النقط على تنظيم المعلومات وتقديمها بسرعة وكفاءة. فقرات الصور تكون سهلة القراءة والفهم. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +3. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) إلى الشريحة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) الخاص بالشكل. +5. إزالة الفقرة الافتراضية في `TextFrame`. +6. إنشاء أول فقرة باستخدام الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. تحميل الصورة في [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/). +8. تعيين نوع النقطة إلى [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) وضبط الصورة. +9. تعيين نص الفقرة. +10. تعيين `Indent` للفقرة بالنسبة للنقطة. +11. تعيين لون للنقطة. +12. تعيين ارتفاع للنقطة. +13. إضافة الفقرة الجديدة إلى مجموعة فقرات `TextFrame`. +14. إضافة الفقرة الثانية وتكرار العملية بناءً على الخطوات السابقة. +15. حفظ العرض المعدل. + +يُظهر هذا الكود Javascript كيفية إضافة وإدارة نقط الصور: +```javascript +// ينشئ فئة Presentation تمثل ملف PPTX +var presentation = new aspose.slides.Presentation(); +try { + // يصل إلى الشريحة الأولى + var slide = presentation.getSlides().get_Item(0); + // ينشئ الصورة للنقاط + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // يضيف ويصل إلى Autoshape + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // يصل إلى إطار نص الشكل التلقائي + var textFrame = autoShape.getTextFrame(); + // يزيل الفقرة الافتراضية + textFrame.getParagraphs().removeAt(0); + // ينشئ فقرة جديدة + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // يضبط نمط نقطة الفقرة والصورة + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // يضبط ارتفاع النقطة + paragraph.getParagraphFormat().getBullet().setHeight(100); + // يضيف الفقرة إلى إطار النص + textFrame.getParagraphs().add(paragraph); + // يكتب العرض كملف PPTX + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // يكتب العرض كملف PPT + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **إدارة نقط متعددة المستويات** + +تساعد قوائم النقط على تنظيم المعلومات وتقديمها بسرعة وكفاءة. النقاط متعددة المستويات تكون سهلة القراءة والفهم. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +3. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) إلى الشريحة الجديدة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) الخاص بالشكل. +5. إزالة الفقرة الافتراضية في `TextFrame`. +6. إنشاء أول فقرة عبر الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) وتعيين العمق إلى 0. +7. إنشاء الفقرة الثانية عبر الفئة `Paragraph` وتعيين العمق إلى 1. +8. إنشاء الفقرة الثالثة عبر الفئة `Paragraph` وتعيين العمق إلى 2. +9. إنشاء الفقرة الرابعة عبر الفئة `Paragraph` وتعيين العمق إلى 3. +10. إضافة الفقرات الجديدة إلى مجموعة فقرات `TextFrame`. +11. حفظ العرض المعدل. + +يُظهر هذا الكود Javascript كيفية إضافة وإدارة نقاط متعددة المستويات: +```javascript + // ينشئ فئة Presentation تمثل ملف PPTX + var pres = new aspose.slides.Presentation(); + try { + // يصل إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // يضيف ويصل إلى AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // يصل إلى إطار النص للشكل التلقائي المُنشأ + var text = aShp.addTextFrame(""); + // يمسح الفقرة الافتراضية + text.getParagraphs().clear(); + // يضيف الفقرة الأولى + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // يحدد مستوى النقطة + para1.getParagraphFormat().setDepth(0); + // يضيف الفقرة الثانية + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // يحدد مستوى النقطة + para2.getParagraphFormat().setDepth(1); + // يضيف الفقرة الثالثة + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // يحدد مستوى النقطة + para3.getParagraphFormat().setDepth(2); + // يضيف الفقرة الرابعة + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // يحدد مستوى النقطة + para4.getParagraphFormat().setDepth(3); + // يضيف الفقرات إلى المجموعة + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // يكتب العرض كملف PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **إدارة الفقرات بقائمة مرقمة مخصصة** + +توفر الفئة [BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) الخاصية [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) وغيرها التي تسمح لك بإدارة الفقرات ذات الترقيم أو التنسيق المخصص. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. الوصول إلى الشريحة التي تحتوي على الفقرة. +3. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) إلى الشريحة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) الخاص بالشكل. +5. إزالة الفقرة الافتراضية في `TextFrame`. +6. إنشاء أول فقرة عبر الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) وتعيين [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) إلى 2. +7. إنشاء الفقرة الثانية عبر الفئة `Paragraph` وتعيين `NumberedBulletStartWith` إلى 3. +8. إنشاء الفقرة الثالثة عبر الفئة `Paragraph` وتعيين `NumberedBulletStartWith` إلى 7. +9. إضافة الفقرات الجديدة إلى مجموعة فقرات `TextFrame`. +10. حفظ العرض المعدل. + +يُظهر هذا الكود Javascript كيفية إضافة وإدارة الفقرات ذات الترقيم أو التنسيق المخصص: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // يصل إلى إطار النص للشكل التلقائي المُنشأ + var textFrame = shape.getTextFrame(); + // يزيل الفقرة الافتراضية الموجودة + textFrame.getParagraphs().removeAt(0); + // القائمة الأولى + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **تعيين إزاحة الفقرة** + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +1. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) على شكل مستطيل إلى الشريحة. +1. إضافة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) يحتوي على ثلاث فقرات إلى الشكل المستطيل. +1. إخفاء خطوط المستطيل. +1. تعيين الإزاحة لكل [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) عبر خاصية `BulletOffset`. +1. كتابة العرض المعدل كملف PPT. + +يُظهر هذا الكود Javascript كيفية تعيين إزاحة للفقرة: +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // إضافة شكل مستطيل + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // إضافة TextFrame إلى المستطيل + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // ضبط النص ليتناسب مع الشكل + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // إخفاء خطوط المستطيل + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // الحصول على الفقرة الأولى في TextFrame وتعيين إزاحة الفقرة + var para1 = tf.getParagraphs().get_Item(0); + // تحديد نمط نقطة الفقرة والرمز + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // الحصول على الفقرة الثانية في TextFrame وتعيين إزاحة الفقرة + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // الحصول على الفقرة الثالثة في TextFrame وتعيين إزاحة الفقرة + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // حفظ العرض على القرص + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين إزاحة معلقة للفقرة** + +يُظهر هذا الكود Javascript كيفية تعيين إزاحة معلقة للفقرة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إدارة خصائص تشغيل النهاية للفقرة** + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. الحصول على مرجع الشريحة التي تحتوي على الفقرة عبر موقعها. +1. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) على شكل مستطيل إلى الشريحة. +1. إضافة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) يحتوي على فقرتين إلى المستطيل. +1. تعيين `FontHeight` ونوع الخط للفقرات. +1. تعيين خصائص النهاية للفقرات. +1. كتابة العرض المعدل كملف PPTX. + +يُظهر هذا الكود Javascript كيفية تعيين خصائص النهاية للفقرات في PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **استيراد نص HTML إلى الفقرات** + +يوفر Aspose.Slides دعمًا محسّنًا لاستيراد نصوص HTML إلى الفقرات. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +3. إضافة [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) إلى الشريحة. +4. إضافة والوصول إلى `autoshape` [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +5. إزالة الفقرة الافتراضية في `ITextFrame`. +6. قراءة ملف HTML المصدر في `TextReader`. +7. إنشاء أول فقرة عبر الفئة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +8. إضافة محتوى ملف HTML المقروء إلى مجموعة [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/) الخاصة بـ TextFrame. +9. حفظ العرض المعدل. + +يُظهر هذا الكود Javascript تنفيذ الخطوات لاستيراد نصوص HTML إلى الفقرات: +```javascript +// إنشاء مثال عرض فارغ +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى الافتراضية في العرض + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape لاستيعاب محتوى HTML + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // إضافة إطار نص إلى الشكل + ashape.addTextFrame(""); + // مسح جميع الفقرات في إطار النص المضاف + ashape.getTextFrame().getParagraphs().clear(); + // تحميل ملف HTML باستخدام قارئ تدفق + var tr = java.newInstanceSync("StreamReader", "file.html"); + // إضافة النص من قارئ تدفق HTML إلى إطار النص + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // حفظ العرض + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تصدير نص الفقرات إلى HTML** + +يوفر Aspose.Slides دعمًا محسّنًا لتصدير النصوص (الموجودة في الفقرات) إلى HTML. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) وتحميل العرض المطلوب. +2. الوصول إلى مرجع الشريحة ذات الصلة عبر الفهرس الخاص بها. +3. الوصول إلى الشكل الذي يحتوي على النص المراد تصديره إلى HTML. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) الخاص بالشكل. +5. إنشاء مثال من `StreamWriter` وإضافة ملف HTML جديد. +6. توفير فهرس بدء إلى `StreamWriter` وتصدير الفقرات المفضلة لديك. + +يُظهر هذا الكود Javascript كيفية تصدير نصوص فقرات PowerPoint إلى HTML: +```javascript +// تحميل ملف العرض +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // الوصول إلى الشريحة الأولى الافتراضية في العرض + var slide = pres.getSlides().get_Item(0); + // الفهرس المطلوب + var index = 0; + // الوصول إلى الشكل المضاف + var ashape = slide.getShapes().get_Item(index); + // إنشاء ملف HTML الناتج + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // استخراج الفقرة الأولى كـ HTML + // كتابة بيانات الفقرات إلى HTML بتحديد فهرس بداية الفقرة وإجمالي الفقرات التي سيتم نسخها + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **حفظ الفقرة كصورة** + +في هذا القسم، نستعرض مثالين يوضحان كيفية حفظ فقرة نصية، ممثلة بواجهة [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/)، كصورة. يتضمن كل مثال الحصول على صورة الشكل الذي يحتوي الفقرة باستخدام طرق `getImage` من واجهة [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/)، حساب حدود الفقرة داخل الشكل، وتصديرها كصورة بتنسيق bitmap. تتيح هذه الأساليب استخراج أجزاء محددة من النص من عروض PowerPoint وت保存ها كصور منفصلة، مما قد يكون مفيدًا للاستخدامات المختلفة. + +لنفترض أن لدينا ملف عرض يسمى **sample.pptx** يحتوي على شريحة واحدة، حيث أول شكل هو مربع نص يحتوي على ثلاث فقرات. + +![The text box with three paragraphs](paragraph_to_image_input.png) + +**مثال 1** + +في هذا المثال نحصل على الفقرة الثانية كصورة. للقيام بذلك، نستخرج صورة الشكل من الشريحة الأولى للعرض ثم نحسب حدود الفقرة الثانية داخل إطار النص الخاص بالشكل. ثم يُعاد رسم الفقرة على صورة bitmap جديدة تُحفظ بصيغة PNG. هذه الطريقة مفيدة عندما تحتاج إلى حفظ فقرة محددة كصورة منفصلة مع الحفاظ على الأبعاد والتنسيق الدقيق للنص. +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // احفظ الشكل في الذاكرة كصورة نقطية. + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // إنشاء صورة نقطية للشكل من الذاكرة. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // احسب حدود الفقرة الثانية. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // احسب إحداثيات وحجم صورة الإخراج (الحد الأدنى - 1×1 بكسل). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // قصّ صورة الشكل النقطية للحصول على صورة الفقرة فقط. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +النتيجة: + +![The paragraph image](paragraph_to_image_output.png) + +**مثال 2** + +في هذا المثال نوسع النهج السابق بإضافة عوامل مقياس إلى صورة الفقرة. يُستخرج الشكل من العرض ويحفظ كصورة بعامل مقياس `2`. يتيح ذلك مخرجات ذات دقة أعلى عند تصدير الفقرة. ثم تُحسب حدود الفقرة مع أخذ المقياس في الاعتبار. يمكن أن يكون المقياس مفيدًا عندما تكون الصورة المفصلة مطلوبة، مثلًا للاستخدام في مواد مطبوعة عالية الجودة. +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // احفظ الشكل في الذاكرة كصورة نقطية مع التحجيم. + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // أنشئ صورة نقطية للشكل من الذاكرة. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // احسب حدود الفقرة الثانية. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // احسب إحداثيات وحجم صورة الإخراج (الحد الأدنى - 1×1 بكسل). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // قصّ صورة الشكل النقطية للحصول على صورة الفقرة فقط. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**هل يمكنني تعطيل التفاف الأسطر داخل إطار النص تمامًا؟** + +نعم. استخدم إعداد التفاف إطار النص ([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/)) لإيقاف التفاف الأسطر بحيث لا تنكسر عند حدود الإطار. + +**كيف يمكنني الحصول على حدود الفقرة المحددة بدقة داخل الشريحة؟** + +يمكنك استرجاع المستطيل المحيط بالفقرة (وحتى بالجزء الواحد) لمعرفة موقعها وحجمها الدقيق على الشريحة. + +**أين يتم التحكم في محاذاة الفقرة (يسار/يمين/وسط/ضبط)؟** + +`[setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/)` هو طريقة لضبط محاذاة على مستوى الفقرة في `[ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/)`؛ وتطبق على الفقرة بالكامل بغض النظر عن تنسيق الأجزاء الفردية. + +**هل يمكنني تعيين لغة تدقيق إملائي لجزء فقط من الفقرة (مثلاً كلمة واحدة)؟** + +نعم. اللغة تُحدد على مستوى الجزء (`[PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)`)، لذا يمكن أن تت coexist عدة لغات داخل فقرة واحدة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..8c5c5b7533 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,116 @@ +--- +title: إدارة العنصر النائب +type: docs +weight: 10 +url: /ar/nodejs-java/manage-placeholder/ +description: تغيير النص في عنصر نائب في شرائح PowerPoint باستخدام JavaScript. تعيين نص التلميح في عنصر نائب في شرائح PowerPoint باستخدام JavaScript. +--- + +## **تغيير النص في العنصر النائب** + +باستخدام [Aspose.Slides for Node.js via Java](/slides/ar/nodejs-java/)، يمكنك العثور على العناصر النائبة وتعديلها على الشرائح في العروض التقديمية. يتيح لك Aspose.Slides إجراء تغييرات على النص داخل العنصر النائب. + +**المتطلب المسبق**: تحتاج إلى عرض تقديمي يحتوي على عنصر نائب. يمكنك إنشاء مثل هذا العرض التقديمي في تطبيق Microsoft PowerPoint القياسي. + +هذا هو الطريقة التي تستخدم بها Aspose.Slides لاستبدال النص في العنصر النائب في ذلك العرض التقديمي: + +1. إنشاء كائن من الفئة [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) وتمرير العرض التقديمي كمعامل. +2. احصل على مرجع الشريحة عبر فهرستها. +3. التكرار عبر الأشكال للعثور على العنصر النائب. +4. تحويل نوع شكل العنصر النائب إلى [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) وتغيير النص باستخدام [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) المرتبط بـ[`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. احفظ العرض التقديمي المعدل. + +يظهر هذا الشيفرة JavaScript كيفية تغيير النص في عنصر نائب: +```javascript +// ينشئ فئة Presentation +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // يصل إلى الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // يتكرر عبر الأشكال للعثور على العنصر النائب + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // يغيّر النص في كل عنصر نائب + shp.getTextFrame().setText("This is Placeholder"); + } + } + // يحفظ العرض التقديمي إلى القرص + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين نص التلميح في العنصر النائب** + +تحتوي التخطيطات القياسية والمبنية مسبقًا على نصوص تلميح للعنصر النائب مثل ***Click to add a title*** أو ***Click to add a subtitle***. باستخدام Aspose.Slides، يمكنك إدراج نصوص التلميح المفضلة لديك في تخطيطات العناصر النائبة. + +يظهر لك هذا الشيفرة JavaScript كيفية تعيين نص التلميح في عنصر نائب: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // يتكرر عبر الشريحة + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // يعرض PowerPoint "Click to add title" + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // يضيف العنوان الفرعي + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين شفافية صورة العنصر النائب** + +يتيح لك Aspose.Slides تعيين شفافية الصورة الخلفية في عنصر نائب نصي. من خلال تعديل شفافية الصورة داخل هذا الإطار، يمكنك إبراز النص أو الصورة (اعتمادًا على ألوان النص والصورة). + +يوضح لك هذا الشيفرة JavaScript كيفية تعيين شفافية خلفية الصورة (داخل شكل): +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **FAQ** + +**ما هو العنصر النائب الأساسي، وكيف يختلف عن الشكل المحلي على الشريحة؟** + +العنصر النائب الأساسي هو الشكل الأصلي على تخطيط أو ماستر التي يرث منها شكل الشريحة—النوع، الموقع، وبعض التنسيقات تأتي منه. الشكل المحلي مستقل؛ إذا لم يكن هناك عنصر نائب أساسي، لا يتم تطبيق الوراثة. + +**كيف يمكنني تحديث جميع العناوين أو الشروح عبر عرض تقديمي دون التكرار على كل شريحة؟** + +قم بتحرير العنصر النائب المقابل على التخطيط أو الماستר. ستورث الشرائح التي تعتمد على تلك التخطيطات/الماستر التغيير تلقائيًا. + +**كيف أتحكم في عناصر النائب القياسية للرأس/التذييل—التاريخ والوقت، رقم الشريحة، ونص التذييل؟** + +استخدم مديري HeaderFooter في النطاق المناسب (الشرائح العادية، التخطيطات، الماستر، الملاحظات/المطبوعات) لتفعيل أو إلغاء تفعيل تلك العناصر النائبة وتحديد محتواها. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..a824062a5a --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,298 @@ +--- +title: إدارة صندوق النص +type: docs +weight: 20 +url: /ar/nodejs-java/manage-textbox/ +keywords: +- صندوق نص +- إطار نص +- إضافة نص +- تحديث نص +- صندوق نص مع ارتباط تشعبي +- PowerPoint +- عرض تقديمي +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "إدارة صندوق نص أو إطار نص في عروض PowerPoint التقديمية باستخدام JavaScript" +--- + +عادةً ما تكون النصوص على الشرائح موجودة في مربعات نص أو أشكال. لذلك، لإضافة نص إلى شريحة، عليك إضافة مربع نص ثم وضع بعض النص داخل مربع النص. توفر Aspose.Slides for Node.js via Java الفئة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) التي تسمح لك بإضافة شكل يحتوي على نص. + +{{% alert title="Info" color="info" %}} + +توفر Aspose.Slides أيضًا الفئة [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape) التي تسمح لك بإضافة أشكال إلى الشرائح. ومع ذلك، ليست كل الأشكال المضافة عبر الفئة `Shape` يمكنها احتواء نص. لكن الأشكال المضافة عبر الفئة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) قد تحتوي على نص. + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +لذلك، عند التعامل مع شكل تريد إضافة نص إليه، قد ترغب في التحقق والتأكد من أنه تم تحويله عبر الفئة `AutoShape`. فقط عندئذٍ ستكون قادرًا على العمل مع [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame)، وهو خاصية ضمن `AutoShape`. راجع قسم [Update Text](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text) في هذه الصفحة. + +{{% /alert %}} + +## **إنشاء مربع نص على الشريحة** + +لإنشاء مربع نص على شريحة، اتبع هذه الخطوات: + +1. أنشئ نسخة من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. احصل على مرجع للشرائح الأولى في العرض التقديمي الذي تم إنشاؤه حديثًا. +3. أضف كائن [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) مع [ShapeType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GeometryShape#setShapeType-int-) محدد كـ `Rectangle` في موضع محدد على الشريحة واحصل على مرجع لكائن `AutoShape` المضاف حديثًا. +4. أضف الخاصية `TextFrame` إلى كائن `AutoShape` الذي سيحتوي على نص. في المثال أدناه، أضفنا هذا النص: *Aspose TextBox* +5. أخيرًا، احفظ ملف PPTX عبر كائن `Presentation`. + +يظهر هذا الكود JavaScript—تنفيذ للخطوات أعلاه—كيفية إضافة نص إلى شريحة: +```javascript +// ينشئ كائن Presentation +var pres = new aspose.slides.Presentation(); +try { + // يحصل على الشريحة الأولى في العرض التقديمي + var sld = pres.getSlides().get_Item(0); + // يضيف AutoShape مع تعيين النوع كـ Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // يضيف TextFrame إلى المستطيل + ashp.addTextFrame(" "); + // الوصول إلى إطار النص + var txtFrame = ashp.getTextFrame(); + // ينشئ كائن Paragraph لإطار النص + var para = txtFrame.getParagraphs().get_Item(0); + // ينشئ كائن Portion للفقرة + var portion = para.getPortions().get_Item(0); + // يضبط النص + portion.setText("Aspose TextBox"); + // يحفظ العرض التقديمي إلى القرص + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **التحقق من شكل مربع النص** + +توفر Aspose.Slides الطريقة [isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox) من الفئة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) التي تسمح لك بفحص الأشكال وتحديد مربعات النص. + +![Text box and shape](istextbox.png) + +يظهر هذا الكود JavaScript كيفية التحقق مما إذا كان الشكل قد تم إنشاؤه كمربع نص: +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +لاحظ أنه إذا قمت فقط بإضافة AutoShape باستخدام الطريقة `addAutoShape` من الفئة [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/)، فإن طريقة `isTextBox` للـ AutoShape ستُعيد `false`. ومع ذلك، بعد إضافة نص إلى الـ AutoShape باستخدام الطريقة `addTextFrame` أو الطريقة `setText`، ستُعيد الخاصية `isTextBox` القيمة `true`. +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() يرجع false +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() يرجع true + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() يرجع false +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() يرجع true + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() يرجع false +shape3.addTextFrame(""); +// shape3.isTextBox() يرجع false + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() يرجع false +shape4.getTextFrame().setText(""); +// shape4.isTextBox() يرجع false +``` + + +## **إضافة عمود في مربع النص** + +توفر Aspose.Slides الطريقتين [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) و [setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-) من الفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) التي تسمح لك بإضافة أعمدة إلى مربعات النص. يمكنك تحديد عدد الأعمدة في مربع النص وتعيين المسافة بين الأعمدة بنقاط. + +يظهر هذا الكود JavaScript العملية الموضحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يحصل على الشريحة الأولى في العرض التقديمي + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape مع تعيين النوع كـ Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // إضافة TextFrame إلى المستطيل + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // يحصل على تنسيق النص لإطار النص + var format = aShape.getTextFrame().getTextFrameFormat(); + // يحدد عدد الأعمدة في إطار النص + format.setColumnCount(3); + // يحدد المسافة بين الأعمدة + format.setColumnSpacing(10); + // يحفظ العرض التقديمي + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة عمود في إطار النص** + +توفر Aspose.Slides for Node.js via Java الطريقة [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) من الفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) التي تسمح لك بإضافة أعمدة في إطارات النص. من خلال هذه الخاصية، يمكنك تحديد عدد الأعمدة المفضلة في إطار النص. + +يظهر هذا الكود JavaScript كيفية إضافة عمود داخل إطار نص: +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحديث النص** + +تمكنك Aspose.Slides من تغيير أو تحديث النص الموجود في مربع نص أو جميع النصوص الموجودة في عرض تقديمي. + +يظهر هذا الكود JavaScript عملية تحديث أو تغيير جميع النصوص في عرض تقديمي: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // يتحقق مما إذا كان الشكل يدعم إطار النص (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // يتنقل عبر الفقرات في إطار النص + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // يتنقل عبر كل جزء في الفقرة + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// يغيّر النص + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// يغيّر التنسيق + } + } + } + } + } + // يحفظ العرض التقديمي المعدل + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة مربع نص مع ارتباط تشعبي** + +يمكنك إدراج ارتباط داخل مربع نص. عند النقر على مربع النص، يتم توجيه المستخدمين لفتح الارتباط. + + لإضافة مربع نص يحتوي على ارتباط، اتبع هذه الخطوات: + +1. أنشئ نسخة من الفئة `Presentation`. +2. احصل على مرجع للشرائح الأولى في العرض التقديمي الذي تم إنشاؤه حديثًا. +3. أضف كائن `AutoShape` مع `ShapeType` محدد كـ `Rectangle` في موضع محدد على الشريحة واحصل على مرجع لكائن AutoShape المضاف حديثًا. +4. أضف `TextFrame` إلى كائن `AutoShape` يحتوي على *Aspose TextBox* كنص افتراضي. +5. أنشئ نسخة من الفئة `HyperlinkManager`. +6. عيّن كائن `HyperlinkManager` إلى الخاصية [HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--) المرتبطة بالجزء المفضَل داخل `TextFrame`. +7. أخيرًا، احفظ ملف PPTX عبر كائن `Presentation`. + +يظهر هذا الكود JavaScript—تنفيذ للخطوات أعلاه—كيفية إضافة مربع نص مع ارتباط تشعبي إلى شريحة: +```javascript +// ينشئ كائن Presentation يمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // يحصل على الشريحة الأولى في العرض التقديمي + var slide = pres.getSlides().get_Item(0); + // يضيف كائن AutoShape مع تعيين النوع كـ Rectangle + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // يحول الشكل إلى AutoShape + var pptxAutoShape = shape; + // يصل إلى الخاصية ITextFrame المرتبطة بـ AutoShape + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // يضيف بعض النص إلى الإطار + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // يحدد الارتباط التشعبي لنص الجزء + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // يحفظ عرض PPTX + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**ما الفرق بين مربع النص وعنصر النائب النصي عند العمل مع الشرائح الرئيسية؟** + +يُورث [placeholder](/slides/ar/nodejs-java/manage-placeholder/) النمط/الموقع من الـ [master](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/) ويمكن تجاوزه في [layouts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/)، بينما يُعد مربع النص العادي كائنًا مستقلاً على شريحة محددة ولا يتغير عند تغيير التخطيطات. + +**كيف يمكنني إجراء استبدال جماعي للنص عبر العرض التقديمي دون المساس بالنص داخل المخططات والجداول وSmartArt؟** + +قم بتقييد التكرار على الأشكال ذات إطارات النص واستبعد الكائنات المدمجة ([charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/)، [tables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/)، [SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/)) عبر استعراض مجموعاتها بشكل منفصل أو تخطي تلك الأنواع من الكائنات. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..abd85c3270 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: توطين العرض التقديمي +type: docs +weight: 100 +url: /ar/nodejs-java/presentation-localization/ +--- + +## **تغيير اللغة لعرض الشرائح ونص الشكل** + +- إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- الحصول على مرجع الشريحة باستخدام فهرسها. +- إضافة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) من نوع [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) إلى الشريحة. +- إضافة بعض النص إلى TextFrame. +- [تعيين معرف اللغة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setLanguageId-java.lang.String-) إلى النص. +- حفظ العرض التقديمي كملف PPTX. + +تم توضيح تنفيذ الخطوات السابقة في مثال أدناه. +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل يؤدي معرف اللغة إلى ترجمة النص تلقائيًا؟** + +No. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) في Aspose.Slides يخزن اللغة للتدقيق الإملائي وإثبات القواعد، لكنه لا يترجم أو يغيّر محتوى النص. إنه بيانات وصفية يفهمها PowerPoint للإثبات. + +**هل يؤثر معرف اللغة على التجزئة وفواصل الأسطر أثناء العرض؟** + +في Aspose.Slides، يُستخدم [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) لإثبات القواعد. تعتمد جودة التجزئة ولف الأسطر أساسًا على توفر [الخطوط المناسبة](/slides/ar/nodejs-java/powerpoint-fonts/) وإعدادات التخطيط/فواصل الأسطر لنظام الكتابة. لضمان العرض الصحيح، احرص على إتاحة الخطوط المطلوبة، وتكوين [قواعد استبدال الخطوط](/slides/ar/nodejs-java/font-substitution/)، و/أو [تضمين الخطوط](/slides/ar/nodejs-java/embedded-font/) في العرض. + +**هل يمكنني تعيين لغات مختلفة داخل فقرة واحدة؟** + +نعم. يُطبق [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) على مستوى جزء النص، لذا يمكن لفقرة واحدة خلط عدة لغات بإعدادات إثبات مختلفة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..21ed5e93bd --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,86 @@ +--- +title: النص العلوي والنص السفلي +type: docs +weight: 80 +url: /ar/nodejs-java/superscript-and-subscript/ +--- + +## **إدارة النص العلوي والنص السفلي** + +يمكنك إضافة نص علوي أو نص سفلي داخل أي جزء من الفقرة. لإضافة نص علوي أو سفلي في إطار نص Aspose.Slides يجب استخدام طريقة [**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) من فئة [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat). + +هذه الخاصية تُعيد أو تُحدد نصًا علويًا أو سفليًا (القيمة من -100% (سفلي) إلى 100% (علوي)). على سبيل المثال: + +- إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- الحصول على مرجع الشريحة باستخدام فهرسها. +- إضافة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) من النوع [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) إلى الشريحة. +- الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) المرتبط بـ [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +- مسح الفقرات الموجودة. +- إنشاء كائن فقرة جديد لحمل نص علوي وإضافته إلى مجموعة [Paragraphs collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) الخاصة بـ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). +- إنشاء كائن جزء جديد. +- تعيين خاصية Escapement للجزء بين 0 إلى 100 لإضافة نص علوي. (0 يعني عدم وجود نص علوي) +- ضبط بعض النص لـ [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) ثم إضافته إلى مجموعة الأجزاء في الفقرة. +- إنشاء كائن فقرة جديد لحمل نص سفلي وإضافته إلى مجموعة IParagraphs الخاصة بـ ITextFrame. +- إنشاء كائن جزء جديد. +- تعيين خاصية Escapement للجزء بين 0 إلى -100 لإضافة نص سفلي. (0 يعني عدم وجود نص سفلي) +- ضبط بعض النص لـ [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) ثم إضافته إلى مجموعة الأجزاء في الفقرة. +- حفظ العرض التقديمي كملف PPTX. + +التنفيذ التفصيلي للخطوات المذكورة أعلاه موضح أدناه. +```javascript +// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة + var slide = pres.getSlides().get_Item(0); + // إنشاء صندوق نص + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // إنشاء فقرة لنص العلوي + var superPar = new aspose.slides.Paragraph(); + // إنشاء جزء بنص عادي + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // إنشاء جزء بنص علوي + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // إنشاء فقرة لنص سفلي + var paragraph2 = new aspose.slides.Paragraph(); + // إنشاء جزء بنص عادي + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // إنشاء جزء بنص سفلي + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // إضافة الفقرات إلى صندوق النص + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل يتم الحفاظ على النص العلوي والنص السفلي عند التصدير إلى PDF أو صيغ أخرى؟** + +نعم، تقوم Aspose.Slides بالحفاظ على تنسيق النص العلوي والسفلي بشكل صحيح عند تصدير العروض إلى PDF أو PPT/PPTX أو الصور أو الصيغ المدعومة الأخرى. يظل التنسيق المتخصص سليمًا في جميع ملفات الإخراج. + +**هل يمكن دمج النص العلوي والنص السفلي مع أنماط تنسيق أخرى مثل الغامق أو المائل؟** + +نعم، تسمح Aspose.Slides بخلط أنماط نصية مختلفة داخل جزء نص واحد. يمكنك تمكين الغامق أو المائل أو التسطير وتطبيق النص العلوي أو السفلي في الوقت نفسه عن طريق ضبط الخصائص المقابلة في [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). + +**هل يعمل تنسيق النص العلوي والنص السفلي للنص داخل الجداول أو المخططات أو SmartArt؟** + +نعم، تدعم Aspose.Slides التنسيق داخل معظم الكائنات، بما في ذلك الجداول وعناصر المخططات. عند العمل مع SmartArt، تحتاج إلى الوصول إلى العناصر المناسبة (مثل [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/)) وحاويات النص الخاصة بها، ثم ضبط خصائص [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) بطريقة مماثلة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..4229416b45 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,681 @@ +--- +title: تنسيق نص PowerPoint في JavaScript +linktitle: تنسيق النص +type: docs +weight: 50 +url: /ar/nodejs-java/text-formatting/ +keywords: +- تمييز النص +- تعبير نمطي +- محاذاة الفقرة +- نمط النص +- خلفية النص +- شفافية النص +- تباعد الأحرف +- خصائص الخط +- عائلة الخط +- تدوير النص +- زاوية الدوران +- إطار النص +- تباعد الأسطر +- خاصية الملاءمة التلقائية +- مرساة إطار النص +- تبويب النص +- اللغة الافتراضية +- PowerPoint +- OpenDocument +- العرض التقديمي +- Node.js +- JavaScript +- Aspose.Slides +description: "تعرف على كيفية تنسيق وتنسيق النص في عروض PowerPoint وOpenDocument باستخدام Aspose.Slides لـ Node.js عبر Java. خصّص الخطوط والألوان والمحاذاة وغير ذلك باستخدام أمثلة كود JavaScript القوية." +--- + +## **تمييز النص** + +تم إضافة طريقة [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-) إلى الفئة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) و الفئة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +تتيح لك تمييز جزء من النص بلون خلفية باستخدام عينة نصية، مشابه لأداة تمييز النص بالألوان في PowerPoint 2019. + +المقتطف البرمجي أدناه يوضح كيفية استخدام هذه الميزة: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// تمييز جميع الكلمات 'important' + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// تمييز جميع حدوث كلمة 'the' المنفصلة + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +توفر Aspose خدمة تحرير PowerPoint مجانية عبر الإنترنت بسيطة، [خدمة تحرير PowerPoint المجانية عبر الإنترنت](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **تمييز النص باستخدام التعبير النمطي** + +تم إضافة طريقة [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-) إلى الفئة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) و الفئة [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +تتيح لك تمييز جزء من النص بلون خلفية باستخدام تعبير نمطي، مشابه لأداة تمييز النص بالألوان في PowerPoint 2019. + +المقتطف البرمجي أدناه يوضح كيفية استخدام هذه الميزة: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// تمييز جميع الكلمات التي تحتوي على 10 رموز أو أكثر + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين لون خلفية النص** + +تتيح لك Aspose.Slides تحديد اللون المفضل لخلفية النص. + +يُظهر لك هذا الكود JavaScript كيفية تعيين لون الخلفية لكامل النص: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +يُظهر لك هذا الكود JavaScript كيفية تعيين لون الخلفية لجزء فقط من النص: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **محاذاة فقرات النص** + +تنسيق النص هو أحد العناصر الأساسية عند إنشاء أي نوع من المستندات أو العروض التقديمية. نعلم أن Aspose.Slides لـ Node.js عبر Java يدعم إضافة النص إلى الشرائح، ولكن في هذا الموضوع، سنرى كيف يمكننا التحكم في محاذاة فقرات النص في الشريحة. الرجاء اتباع الخطوات التالية لمحاذاة فقرات النص باستخدام Aspose.Slides لـ Node.js عبر Java: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع الشريحة باستخدام فهرستها. +3. الوصول إلى أشكال Placeholder الموجودة في الشريحة وتحويلها إلى [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +4. الحصول على الفقرة (التي تحتاج إلى محاذاة) من [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) المعروض بواسطة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +5. محاذاة الفقرة. يمكن محاذاة الفقرة إلى اليمين أو اليسار أو الوسط أو الضبط. +6. حفظ العرض التقديمي المعدل كملف PPTX. + +التنفيذ للخطوات أعلاه موضح أدناه. +```javascript +// إنشاء كائن Presentation يمثل ملف PPTX +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // الوصول إلى العنصر النائب الأول والثاني في الشريحة وتحويله إلى AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // تغيير النص في كلا العنصرين النائبين + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // الحصول على الفقرة الأولى من العنصرين النائبين + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // محاذاة فقرة النص إلى الوسط + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // كتابة العرض التقديمي كملف PPTX + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين الشفافية للنص** + +توضح هذه المقالة كيفية تعيين خاصية الشفافية لأي شكل نص باستخدام Aspose.Slides لـ Node.js عبر Java. لتعيين الشفافية للنص، يرجى اتباع الخطوات التالية: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع شريحة. +3. تعيين لون الظل +4. حفظ العرض التقديمي كملف PPTX. + +التنفيذ للخطوات أعلاه موضح أدناه. +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // ضبط الشفافية إلى صفر بالمائة + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين تباعد الأحرف للنص** + +تتيح لك Aspose.Slides تعيين المسافة بين الحروف داخل مربع النص. بهذه الطريقة يمكنك تعديل الكثافة البصرية لسطر أو كتلة نصية عن طريق توسيع أو تقليل التباعد بين الأحرف. + +يُظهر لك هذا الكود JavaScript كيفية توسيع التباعد لسطر نص واحد وتقليل التباعد لسطر آخر: +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// توسيع +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// تقليل +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **إدارة خصائص الخط للفقرة** + +عادةً ما تحتوي العروض التقديمية على نصوص وصور. يمكن تنسيق النص بطرق متعددة، إما لتسليط الضوء على أقسام معينة أو لتوافق الأنماط المؤسسية. يساعد تنسيق النص المستخدمين على تنويع مظهر محتوى العرض. توضح هذه المقالة كيفية استخدام Aspose.Slides لـ Node.js عبر Java لتكوين خصائص الخط للفقرات النصية على الشرائح. لإدارة خصائص الخط لفقرة باستخدام Aspose.Slides لـ Node.js عبر Java: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع شريحة باستخدام فهرستها. +3. الوصول إلى أشكال Placeholder في الشريحة وتحويلها إلى [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +4. الحصول على [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) من [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) المعروض بواسطة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +5. ضبط الفقرة. +6. الوصول إلى الجزء النصي للفقرة. +7. تعريف الخط باستخدام FontData وتعيين الخط للجزء النصي وفقًا لذلك. + 1. تعيين الخط إلى غامق. + 2. تعيين الخط إلى مائل. +8. تعيين لون الخط باستخدام [getFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#getFillFormat--) المعروض بواسطة كائن [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) . +9. حفظ العرض التقديمي المعدل كملف [PPTX](https://docs.fileformat.com/presentation/pptx/) . + +التنفيذ للخطوات أعلاه موضح أدناه. يأخذ عرضًا تقديميًا بسيطًا ويُنسق الخطوط في إحدى الشرائح. +```javascript +// إنشاء كائن Presentation يمثل ملف PPTX +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // الوصول إلى شريحة باستخدام موضعها + var slide = pres.getSlides().get_Item(0); + // الوصول إلى العنصر النائب الأول والثاني في الشريحة وتحويلهما إلى AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // الوصول إلى الفقرة الأولى + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // الوصول إلى الجزء الأول + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // تعريف خطوط جديدة + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // تعيين الخطوط الجديدة إلى الجزء + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // تعيين الخط إلى غامق + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // تعيين الخط إلى مائل + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // تعيين لون الخط + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // كتابة ملف PPTX إلى القرص + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إدارة عائلة الخط للنص** + +يُستخدم الجزء (Portion) لاحتضان نص بتنسيق موحد داخل فقرة. توضح هذه المقالة كيفية استخدام Aspose.Slides لـ Node.js عبر Java لإنشاء مربع نص يحتوي على بعض النص ثم تعريف خط معين، بالإضافة إلى خصائص أخرى لعائلة الخط. لإنشاء مربع نص وتعيين خصائص الخط للنص فيه: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الحصول على مرجع شريحة باستخدام فهرستها. +3. إضافة [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) من النوع [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) إلى الشريحة. +4. إزالة نمط التعبئة المرتبط بـ [AutoShape] . +5. الوصول إلى TextFrame الخاص بـ AutoShape. +6. إضافة بعض النص إلى TextFrame. +7. الوصول إلى كائن Portion المرتبط بـ [TextFrame] . +8. تحديد الخط المستخدم للـ [Portion] . +9. تعيين خصائص الخط الأخرى مثل الغامق، المائل، تحت الخط، اللون والارتفاع باستخدام الخصائص ذات الصلة المعروضة بواسطة كائن Portion. +10. حفظ العرض التقديمي المعدل كملف PPTX. + +التنفيذ للخطوات أعلاه موضح أدناه. +```javascript +// إنشاء كائن Presentation +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + var sld = pres.getSlides().get_Item(0); + // إضافة AutoShape من نوع مستطيل + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // إزالة أي نمط تعبئة مرتبط بـ AutoShape + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // الوصول إلى TextFrame المرتبط بـ AutoShape + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // الوصول إلى Portion المرتبط بـ TextFrame + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // تعيين الخط للـ Portion + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // تعيين خاصية الغامق للخط + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // تعيين خاصية المائل للخط + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // تعيين خاصية الخط السفلي للخط + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // تعيين ارتفاع الخط + port.getPortionFormat().setFontHeight(25); + // تعيين لون الخط + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // كتابة ملف PPTX إلى القرص + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين حجم الخط للنص** + +تتيح لك Aspose.Slides اختيار حجم الخط المفضل للنص الموجود بالفعل في فقرة والنصوص التي قد تُضاف إلى الفقرة لاحقًا. + +يُظهر لك هذا الكود JavaScript كيفية تعيين حجم الخط للنصوص الموجودة داخل فقرة: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // يحصل على الشكل الأول، على سبيل المثال. + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // يحصل على الفقرة الأولى، على سبيل المثال. + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // يضبط حجم الخط الافتراضي إلى 20 نقطة لجميع أجزاء النص في الفقرة. + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // يضبط حجم الخط إلى 20 نقطة لأجزاء النص الحالية في الفقرة. + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **تعيين دوران النص** + +تسمح Aspose.Slides لـ Node.js عبر Java للمطورين بتدوير النص. يمكن ضبط النص ليظهر كـ [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal)، [Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical)، [Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270)، [WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical)، [EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical)، [MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) أو [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft). لتدوير نص أي TextFrame، يرجى اتباع الخطوات التالية: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الوصول إلى الشريحة الأولى. +3. إضافة أي Shape إلى الشريحة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +5. [دوّر النص](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-) . +6. حفظ الملف إلى القرص. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape من نوع مستطيل + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // إضافة TextFrame إلى المستطيل + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // الوصول إلى إطار النص + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // إنشاء كائن Paragraph لإطار النص + var para = txtFrame.getParagraphs().get_Item(0); + // إنشاء كائن Portion للفقرة + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // حفظ العرض التقديمي + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين زاوية دوران مخصصة لإطار النص** + +يدعم الآن Aspose.Slides لـ Node.js عبر Java تعيين زاوية دوران مخصصة لإطار النص. في هذا الموضوع، سنوضح بالمثال كيفية تعيين خاصية RotationAngle في Aspose.Slides. تمت إضافة الطريقتين [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) و [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--) إلى الفئة [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) وفئة [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) ، وتسمح بتعيين زاوية دوران مخصصة لإطار النص. لتعيين RotationAngle، يرجى اتباع الخطوات التالية: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. إضافة مخطط إلى الشريحة. +3. [تعيين خاصية RotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) . +4. حفظ العرض التقديمي كملف PPTX. + +في المثال أدناه، نقوم بتعيين خاصية RotationAngle. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // الحصول على الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape من نوع مستطيل + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // إضافة TextFrame إلى المستطيل + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // الوصول إلى إطار النص + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // إنشاء كائن Paragraph لإطار النص + var para = txtFrame.getParagraphs().get_Item(0); + // إنشاء كائن Portion للفقرة + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // حفظ العرض التقديمي + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تباعد الأسطر للفقرة** + +تقدم Aspose.Slides خصائص ضمن [`ParagraphFormat`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat) —`SpaceAfter`، `SpaceBefore` و `SpaceWithin`— التي تتيح لك إدارة تباعد الأسطر لفقرة. تُستخدم الخصائص الثلاثة كالتالي: + +* لتحديد تباعد الأسطر للفقرة كنسبة مئوية، استخدم قيمة موجبة. +* لتحديد تباعد الأسطر للفقرة بوحدات النقاط، استخدم قيمة سالبة. + +على سبيل المثال، يمكنك تطبيق تباعد أسطر 16pt لفقرة عن طريق ضبط خاصية `SpaceBefore` إلى -16. + +هكذا تحدد تباعد الأسطر لفقرة محددة: + +1. تحميل عرض تقديمي يحتوي على AutoShape به بعض النص. +2. الحصول على مرجع شريحة من خلال فهرستها. +3. الوصول إلى TextFrame. +4. الوصول إلى Paragraph. +5. ضبط خصائص الفقرة. +6. حفظ العرض التقديمي. + +يُظهر لك هذا الكود JavaScript كيفية تحديد تباعد الأسطر لفقرة: +```javascript + // إنشاء كائن من فئة Presentation + var pres = new aspose.slides.Presentation("Fonts.pptx"); + try { + // الحصول على مرجع الشريحة باستخدام الفهرس + var sld = pres.getSlides().get_Item(0); + // الوصول إلى TextFrame + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // الوصول إلى الفقرة + var para = tf1.getParagraphs().get_Item(0); + // ضبط خصائص الفقرة + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // حفظ العرض التقديمي + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **تعيين خاصية AutofitType لإطار النص** + +في هذا الموضوع، نستكشف مختلف خصائص تنسيق إطار النص. تغطي المقالة كيفية تعيين خاصية AutofitType لإطار النص، وتثبيت النص وتدويره في العرض. يسمح Aspose.Slides لـ Node.js عبر Java للمطورين بتعيين خاصية AutofitType لأي إطار نص. يمكن ضبط AutofitType إلى [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) أو [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape). إذا تم ضبطه إلى [Normal]، يبقى الشكل كما هو بينما يُعدل النص دون تغيير الشكل؛ وإذا تم ضبطه إلى [Shape]، يتم تعديل الشكل لاحتواء النص المطلوب فقط. لتعيين خاصية AutofitType لإطار نص، يرجى اتباع الخطوات التالية: + +1. إنشاء مثال من الفئة [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الوصول إلى الشريحة الأولى. +3. إضافة أي شكل إلى الشريحة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +5. [تعيين AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-) لإطار النص. +6. حفظ الملف إلى القرص. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape من نوع مستطيل + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // إضافة TextFrame إلى المستطيل + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // الوصول إلى إطار النص + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // إنشاء كائن Paragraph لإطار النص + var para = txtFrame.getParagraphs().get_Item(0); + // إنشاء كائن Portion للفقرة + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // حفظ العرض التقديمي + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين مرساة لإطار النص** + +يسمح Aspose.Slides لـ Node.js عبر Java للمطورين بتعيين مرساة لأي TextFrame. يحدد TextAnchorType موضع النص داخل الشكل. يمكن ضبط AnchorType إلى [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top)، [Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center)، [Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom)، [Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) أو [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed). لتعيين مرساة لأي TextFrame، يرجى اتباع الخطوات التالية: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الوصول إلى الشريحة الأولى. +3. إضافة أي شكل إلى الشريحة. +4. الوصول إلى [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) . +5. [تعيين TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-) لإطار النص. +6. حفظ الملف إلى القرص. +```javascript +// Create an instance of Presentation class +var pres = new aspose.slides.Presentation(); +try { + // Get the first slide + var slide = pres.getSlides().get_Item(0); + // Add an AutoShape of Rectangle type + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Add TextFrame to the Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accessing the text frame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // Create the Paragraph object for text frame + var para = txtFrame.getParagraphs().get_Item(0); + // Create Portion object for paragraph + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Save Presentation + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **علامات التبويب وEffectiveTabs في العرض التقديمي** + +جميع التبويبات النصية مُعطاة بوحدة البكسل. + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**Figure: 2 Explicit Tabs and 2 Default Tabs**| +- الخاصية EffectiveTabs.ExplicitTabCount (2 في مثالنا) تساوي عدد Tabs. +- مجموعة EffectiveTabs تشمل جميع التبويبات (من مجموعة Tabs والتبويبات الافتراضية). +- الخاصية EffectiveTabs.ExplicitTabCount (2 في مثالنا) تساوي عدد Tabs. +- الخاصية EffectiveTabs.DefaultTabSize (294) تُظهر المسافة بين التبويبات الافتراضية (3 و 4 في مثالنا). +- الدالة EffectiveTabs.GetTabByIndex(index) مع index = 0 تُعيد أول تبويب صريح (Position = 731)، index = 1‑‑التبويب الثاني (Position = 1241). إذا حاولت الحصول على تبويب التالي بالـ index = 2 ستُعيد أول تبويب افتراضي (Position = 1470) وهكذا. +- الدالة EffectiveTabs.GetTabAfterPosition(pos) تُستخدم للحصول على التبويب التالي بعد نص معين. على سبيل المثال لديك النص: "Hello World!". لتصيير هذا النص تحتاج إلى معرفة أين تبدأ رسم "world!". أولاً، احسب طول "Hello" بالبكسل ثم استدعِ GetTabAfterPosition بهذه القيمة. ستحصل على موضع التبويب التالي لرسم "world!". + +## **تعيين نمط النص الافتراضي** + +إذا كنت بحاجة لتطبيق نفس تنسيق النص الافتراضي على جميع عناصر النص في عرض تقديمي مرة واحدة، يمكنك استخدام طريقة `getDefaultTextStyle` من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) وتعيين التنسيق المفضل. يوضح المثال البرمجي أدناه كيفية تعيين الخط العريض الافتراضي (14 pt) للنص على جميع الشرائح في عرض تقديمي جديد. +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // احصل على تنسيق الفقرة من المستوى الأعلى. + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **استخراج النص مع تأثير الأحرف الكبيرة** + +في PowerPoint، يجعل تطبيق تأثير الخط **All Caps** النص يظهر بالحروف الكبيرة على الشريحة حتى لو تم كتابته أصلاً بأحرف صغيرة. عند استخراج هذا الجزء النصي باستخدام Aspose.Slides، تُعيد المكتبة النص كما تم إدخاله. لمعالجة ذلك، تحقق من [TextCapType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textcaptype/)—إذا أظهر `All`، قم بتحويل السلسلة المسترجعة إلى أحرف كبيرة حتى يتطابق الإخراج مع ما يراه المستخدم على الشريحة. + +لنفترض أن لدينا مربع النص التالي على الشريحة الأولى من ملف sample2.pptx. + +![The All Caps effect](all_caps_effect.png) + + يوضح المثال البرمجي أدناه كيفية استخراج النص مع تطبيق تأثير **All Caps**: +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +الإخراج: +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **الأسئلة الشائعة** + +**كيف يمكن تعديل النص في جدول على شريحة؟** + +لتعديل النص في جدول على شريحة، تحتاج إلى استخدام كائن [Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/). يمكنك iterating عبر جميع الخلايا في الجدول وتغيير النص في كل خلية عبر الوصول إلى خصائص `TextFrame` و `ParagraphFormat` الخاصة بها. + +**كيف يمكن تطبيق تدرج اللون على النص في شريحة PowerPoint؟** + +لتطبيق تدرج اللون على النص، استخدم خاصية Fill Format في [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). اضبط Fill Format إلى `Gradient` حيث يمكنك تحديد ألوان البداية والنهاية للتدرج، بالإضافة إلى خصائص أخرى مثل الاتجاه والشفافية لإنشاء تأثير التدرج على النص. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..9926e91a1f --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,374 @@ +--- +title: ووردآرت +type: docs +weight: 110 +url: /ar/nodejs-java/wordart/ +--- + +## **حول WordArt؟** + +WordArt أو Word Art هي ميزة تسمح لك بتطبيق تأثيرات على النصوص لجعلها بارزة. باستخدام WordArt، على سبيل المثال، يمكنك تلوين حدود النص أو ملئه بلون (أو تدرج)، إضافة تأثيرات ثلاثية الأبعاد إليه، إلخ. كما يمكنك إمالة، انحناء، وتمديد شكل النص. + +{{% alert color="primary" %}} + +WordArt يسمح لك بمعالجة النص كما لو كان كائنًا رسوميًا. بشكل عام، يتكون WordArt من تأثيرات أو تعديلات خاصة تُطبق على النصوص لجعلها أكثر جذبًا أو وضوحًا. + +{{% /alert %}} + +**WordArt في Microsoft PowerPoint** + +لاستخدام WordArt في Microsoft PowerPoint، عليك اختيار أحد قوالب WordArt المحددة مسبقًا. قالب WordArt هو مجموعة من التأثيرات تُطبق على النص أو شكله. + +**WordArt في Aspose.Slides** + +في Aspose.Slides for Node.js via Java 20.10، قمنا بتنفيذ دعم WordArt وأجرينا تحسينات على الميزة في إصدارات Aspose.Slides for Node.js via Java اللاحقة. + +مع Aspose.Slides for Node.js via Java، يمكنك بسهولة إنشاء قالب WordArt الخاص بك (تأثير واحد أو مجموعة من التأثيرات) بجافا سكريبت وتطبيقه على النصوص. + +## **إنشاء قالب WordArt بسيط وتطبيقه على نص** + +**استخدام Aspose.Slides** + +أولاً، ننشئ نصًا بسيطًا باستخدام شيفرة جافا سكريبت التالية: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +الآن، نضبط ارتفاع خط النص إلى قيمة أكبر لجعل التأثير أكثر وضوحًا عبر الشيفرة التالية: +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**استخدام Microsoft PowerPoint** + +انتقل إلى قائمة تأثيرات WordArt في Microsoft PowerPoint: + +![todo:image_alt_text](image-20200930113926-1.png) + +من القائمة على اليمين، يمكنك اختيار تأثير WordArt محدد مسبقًا. من القائمة على اليسار، يمكنك تحديد إعدادات WordArt جديد. + +هذه بعض المعلمات أو الخيارات المتوفرة: + +![todo:image_alt_text](image-20200930114015-3.png) + +**استخدام Aspose.Slides** + +هنا، نطبق نمط اللون [SmallGrid](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) على النص ونضيف حدًا أسودًا بعرض 1 باستخدام الشيفرة التالية: +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +النص الناتج: + +![todo:image_alt_text](image-20200930114108-4.png) + +## **تطبيق تأثيرات WordArt أخرى** + +**استخدام Microsoft PowerPoint** + +من فئة البرنامج، يمكنك تطبيق هذه التأثيرات على نص أو كتلة نص أو شكل أو عنصر مشابه: + +![todo:image_alt_text](image-20200930114129-5.png) + +على سبيل المثال، يمكن تطبيق تأثيرات الظل، الانعكاس، والتوهج على النص؛ وتأثيرات تنسيق ثلاثي الأبعاد وتدوير ثلاثي الأبعاد على كتلة النص؛ وتطبيق خاصية الحواف الناعمة على كائن الشكل (تظل لها تأثير حتى إذا لم يتم تعيين خاصية تنسيق ثلاثي الأبعاد). + +### **تطبيق تأثيرات الظل** + +هنا نعتزم ضبط الخصائص المتعلقة بنص فقط. نطبق تأثير الظل على النص باستخدام الشيفرة التالية بجافا سكريبت: +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +يدعم Aspose.Slides API ثلاثة أنواع من الظلال: OuterShadow و InnerShadow و PresetShadow. + +مع PresetShadow، يمكنك تطبيق ظل على نص (باستخدام قيم مسبقة). + +**استخدام Microsoft PowerPoint** + +في PowerPoint، يمكنك استخدام نوع واحد من الظلال. إليك مثالًا: + +![todo:image_alt_text](image-20200930114225-6.png) + +**استخدام Aspose.Slides** + +يسمح Aspose.Slides فعليًا بتطبيق نوعين من الظلال في آنٍ واحد: InnerShadow و PresetShadow. + +**ملاحظات:** + +- عند استخدام OuterShadow و PresetShadow معًا، يُطبق تأثير OuterShadow فقط. +- إذا تم استخدام OuterShadow و InnerShadow معًا، يعتمد التأثير الناتج على نسخة PowerPoint. على سبيل المثال، في PowerPoint 2013 يتضاعف التأثير، بينما في PowerPoint 2007 يُطبق تأثير OuterShadow. + +### **تطبيق العرض على النصوص** + +نضيف العرض إلى النص عبر عينة الشيفرة التالية بجافا سكريبت: +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **تطبيق تأثير التوهج على النصوص** + +نطبق تأثير التوهج على النص لجعله يلمع أو يبرز باستخدام الشيفرة التالية: +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +نتيجة العملية: + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} + +يمكنك تغيير معلمات الظل، العرض، والتوهج. يتم ضبط خصائص التأثيرات على كل جزء من النص بشكل منفصل. + +{{% /alert %}} + +### **استخدام التحويلات في WordArt** + +نستخدم خاصية Transform (الموجودة في كتلة النص بالكامل) عبر الشيفرة التالية: +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +النتيجة: + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} + +يقدم كل من Microsoft PowerPoint و Aspose.Slides for Node.js via Java عددًا معينًا من أنواع التحويلات المحددة مسبقًا. + +{{% /alert %}} + +**استخدام PowerPoint** + +للوصول إلى أنواع التحويلات المحددة مسبقًا، انتقل إلى: **Format** → **TextEffect** → **Transform** + +**استخدام Aspose.Slides** + +لاختيار نوع التحويل، استخدم تعداد TextShapeType. + +### **تطبيق تأثيرات ثلاثية الأبعاد على النصوص والأشكال** + +نضبط تأثير ثلاثي الأبعاد على شكل نص باستخدام عينة الشيفرة التالية: +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +النص والشكل الناتج: + +![todo:image_alt_text](image-20200930114816-9.png) + +نطبق تأثيرًا ثلاثيًا الأبعاد على النص باستخدام الشيفرة التالية بجافا سكريبت: +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +نتيجة العملية: + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} + +تطبيق تأثيرات ثلاثية الأبعاد على النصوص أو أشكالها والتفاعلات بين التأثيرات تستند إلى قواعد معينة. + +اعتبر مشهدًا للنص والشكل الذي يحتوي على النص. يحتوي تأثير ثلاثي الأبعاد على تمثيل كائن ثلاثي الأبعاد والمشهد الذي يُوضع فيه الكائن. + +- عندما يُحدد المشهد لكل من الشكل والنص، يحصل مشهد الشكل على أولوية أعلى—يُتجاهل مشهد النص. +- عندما يفتقر الشكل إلى مشهد خاص به لكنه يحتوي على تمثيل ثلاثي الأبعاد، يُستخدم مشهد النص. +- وإلا—عندما لا يحتوي الشكل أصلاً على تأثير ثلاثي الأبعاد—يكون الشكل مسطحًا ويُطبق التأثير ثلاثي الأبعاد فقط على النص. + +هذه الأوصاف مرتبطة بالطرق ThreeDFormat.getLightRig() و ThreeDFormat.getCamera(). + +{{% /alert %}} + +## **تطبيق تأثيرات الظل الخارجي على النصوص** + +توفر Aspose.Slides for Node.js via Java الفئات [**OuterShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) و [**InnerShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow) التي تسمح لك بتطبيق تأثيرات الظل على نص داخل [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame). اتبع الخطوات التالية: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. الحصول على مرجع شريحة باستخدام فهارسها. +3. إضافة AutoShape من النوع Rectangle إلى الشريحة. +4. الوصول إلى TextFrame المرتبط بـ AutoShape. +5. ضبط FillType الخاص بـ AutoShape إلى NoFill. +6. إنشاء مثيل من فئة OuterShadow. +7. ضبط BlurRadius للظل. +8. ضبط Direction للظل. +9. ضبط Distance للظل. +10. ضبط RectanglelAlign إلى TopLeft. +11. ضبط PresetColor للظل إلى Black. +12. حفظ العرض كملف [PPTX](https://docs.fileformat.com/presentation/pptx/). + +تظهر شيفرة Java التالية—تنفيذ للخطوات أعلاه—كيفية تطبيق تأثير الظل الخارجي على نص: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // الحصول على مرجع الشريحة + var sld = pres.getSlides().get_Item(0); + // إضافة AutoShape من النوع Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // إضافة TextFrame إلى المستطيل + ashp.addTextFrame("Aspose TextBox"); + // إلغاء ملء الشكل في حالة رغبتنا بالحصول على ظل النص + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // إضافة ظل خارجي وتعيين جميع المعلمات اللازمة + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // كتابة العرض إلى القرص + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تطبيق تأثير الظل الداخلي على الأشكال** + +اتبع الخطوات التالية: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. الحصول على مرجع الشريحة. +3. إضافة AutoShape من النوع Rectangle. +4. تمكين InnerShadowEffect. +5. ضبط جميع المعلمات الضرورية. +6. ضبط ColorType إلى Scheme. +7. ضبط Scheme Color. +8. حفظ العرض كملف [PPTX](https://docs.fileformat.com/presentation/pptx/). + +تظهر شيفرة العينة (المبنية على الخطوات أعلاه) كيفية إضافة موصل بين شكلين في جافا سكريبت: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // الحصول على مرجع الشريحة + var slide = pres.getSlides().get_Item(0); + // إضافة AutoShape من نوع Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // إضافة TextFrame إلى المستطيل + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // تمكين InnerShadowEffect + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // تعيين جميع المعلمات اللازمة + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // تعيين ColorType كـ Scheme + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // تعيين Scheme Color + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // حفظ العرض + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**هل يمكنني استخدام تأثيرات WordArt مع خطوط أو نصوص مختلفة (مثل العربية أو الصينية)؟** + +نعم، يدعم Aspose.Slides Unicode ويعمل مع جميع الخطوط والنصوص الرئيسية. يمكن تطبيق تأثيرات WordArt مثل الظل، التعبئة، والحد على أي لغة، رغم أن توفر الخطوط وعرضها قد يعتمد على خطوط النظام. + +**هل يمكنني تطبيق تأثيرات WordArt على عناصر ماستر الشريحة؟** + +نعم، يمكنك تطبيق تأثيرات WordArt على الأشكال في ماستر الشرائح، بما في ذلك نوافذ العناوين، التذييلات، أو النص الخلفي. سيُنعكس أي تغيير يُجرى على تخطيط الماستر على جميع الشرائح المرتبطة. + +**هل تؤثر تأثيرات WordArt على حجم ملف العرض؟** + +قليلًا. قد تزيد تأثيرات WordArt مثل الظلال، التوهج، وتعبئة التدرجات من حجم الملف قليلاً بسبب إضافة بيانات تنسيق، لكن الفرق عادةً ما يكون ضئيلًا. + +**هل يمكنني معاينة نتيجة تأثيرات WordArt دون حفظ العرض؟** + +نعم، يمكنك تصيير الشرائح التي تحتوي على WordArt إلى صور (مثل PNG أو JPEG) باستخدام الطريقة `getImage` من فئة [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) أو فئة [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). يتيح لك ذلك معاينة النتيجة في الذاكرة أو على الشاشة قبل حفظ أو تصدير العرض بالكامل. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/ar/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..9d725a4abb --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,537 @@ +--- +title: إدارة التكبير +type: docs +weight: 60 +url: /ar/nodejs-java/manage-zoom/ +keywords: "التكبير, إطار التكبير, إضافة تكبير, تنسيق إطار التكبير, تكبير ملخص, عرض PowerPoint, Java, Aspose.Slides لـ Node.js عبر Java" +description: "إضافة تكبير أو إطارات تكبير إلى عروض PowerPoint في JavaScript" +--- + +## **نظرة عامة** + +تسمح خاصية التكبير في PowerPoint بالانتقال إلى شرائح أو أقسام أو أجزاء محددة من العرض ثم العودة منها. عند تقديم العرض قد يكون القدرة على التنقل السريع بين المحتوى مفيدة جداً. + +![صورة النظرة العامة](overview.png) + +* لتلخيص عرض كامل على شريحة واحدة، استخدم [ملخص التكبير](#Summary-Zoom). +* لعرض شرائح مختارة فقط، استخدم [تكبير الشريحة](#Slide-Zoom). +* لعرض قسم واحد فقط، استخدم [تكبير القسم](#Section-Zoom). + +## **تكبير الشريحة** + +يمكن لتكبير الشريحة أن يجعل عرضك أكثر ح dinamية، حيث يتيح لك التنقل بحرية بين الشرائح بأي ترتيب تختاره دون إيقاف تدفق العرض. تكبيرات الشرائح مفيدة للعروض القصيرة التي لا تحتوي على عدة أقسام، لكن يمكنك استخدامها أيضاً في سيناريوهات عرض مختلفة. + +تساعدك تكبيرات الشرائح على الغوص في معلومات متعددة بينما تشعر أنك تعمل على لوحة واحدة. + +![صورة النظرة العامة](slidezoomsel.png) + +بالنسبة لكائنات تكبير الشريحة، توفر Aspose.Slides تعداد [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType) وفئة [ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) وبعض الأساليب تحت فئة [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **إنشاء إطارات التكبير** + +يمكنك إضافة إطار تكبير إلى شريحة بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شرائح جديدة تريد ربط إطارات التكبير بها. +3. إضافة نص تعريف وخلفية إلى الشرائح التي تم إنشاؤها. +4. إضافة إطارات تكبير (تحتوي على مراجع للشرائح التي تم إنشاؤها) إلى الشريحة الأولى. +5. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية إنشاء إطار تكبير على شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شرائح جديدة إلى العرض + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // ينشئ خلفية للشرحة الثانية + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // ينشئ مربع نص للشرحة الثانية + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // ينشئ خلفية للشرحة الثالثة + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // ينشئ مربع نص للشرحة الثالثة + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // يضيف كائنات ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **إنشاء إطارات التكبير بصور مخصصة** + +مع Aspose.Slides لـ Node.js عبر Java، يمكنك إنشاء إطار تكبير بصورة معاينة شريحة مختلفة بهذه الطريقة: +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شريحة جديدة تريد ربط إطار التكبير بها. +3. إضافة نص تعريف وخلفية إلى الشريحة. +4. إنشاء كائن [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) بإضافة صورة إلى مجموعة Images المرتبطة بكائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) الذي سيُملأ الإطار به. +5. إضافة إطارات تكبير (تحتوي على مرجع إلى الشريحة التي تم إنشاؤها) إلى الشريحة الأولى. +6. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية إنشاء إطار تكبير بصورة مختلفة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // ينشئ خلفية للشرحة الثانية + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // ينشئ مربع نص للشرحة الثالثة + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // ينشئ صورة جديدة لكائن التكبير + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // يضيف كائن ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تنسيق إطارات التكبير** + +في الأقسام السابقة، أظهرنا لك كيفية إنشاء إطارات تكبير بسيطة. لإنشاء إطارات تكبير أكثر تعقيداً، عليك تعديل تنسيق إطار بسيط. هناك عدة خيارات تنسيق يمكنك تطبيقها على إطار التكبير. + +يمكنك التحكم في تنسيق إطار التكبير على شريحة بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شرائح جديدة تريد ربط إطار التكبير بها. +3. إضافة نص تعريف وخلفية إلى الشرائح التي تم إنشاؤها. +4. إضافة إطارات تكبير (تحتوي على مراجع للشرائح التي تم إنشاؤها) إلى الشريحة الأولى. +5. إنشاء كائن [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) بإضافة صورة إلى مجموعة Images المرتبطة بكائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) الذي سيُملأ الإطار به. +6. تعيين صورة مخصصة للإطار التكبير الأول. +7. تغيير تنسيق الخط للإطار التكبير الثاني. +8. إزالة الخلفية من صورة الإطار التكبير الثاني. +9. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية تغيير تنسيق إطار التكبير على شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شرائح جديدة إلى العرض + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // ينشئ خلفية للشريحة الثانية + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // ينشئ مربع نص للشريحة الثانية + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // ينشئ خلفية للشريحة الثالثة + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // ينشئ مربع نص للشريحة الثالثة + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // يضيف كائنات ZoomFrame + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // ينشئ صورة جديدة لكائن التكبير + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // يحدد صورة مخصصة لكائن zoomFrame1 + zoomFrame1.setImage(picture); + // يحدد تنسيق إطار التكبير لكائن zoomFrame2 + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // إعداد لعدم إظهار الخلفية لكائن zoomFrame2 + zoomFrame2.setShowBackground(false); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تكبير القسم** + +تكبير القسم هو رابط إلى قسم في عرضك. يمكنك استخدام تكبيرات الأقسام للعودة إلى أقسام تريد التأكيد عليها بشدة، أو لتسليط الضوء على كيفية ارتباط أجزاء معينة من العرض. + +![صورة النظرة العامة](seczoomsel.png) + +بالنسبة لكائنات تكبير القسم، توفر Aspose.Slides فئة [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) وبعض الأساليب تحت فئة [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **إنشاء إطارات تكبير القسم** + +يمكنك إضافة إطار تكبير قسم إلى شريحة بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شريحة جديدة. +3. إضافة خلفية تعريف إلى الشريحة التي تم إنشاؤها. +4. إنشاء قسم جديد تريد ربط إطار التكبير به. +5. إضافة إطار تكبير قسم (يحتوي على مراجع إلى القسم الذي تم إنشاؤه) إلى الشريحة الأولى. +6. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية إنشاء إطار تكبير على شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 1", slide); + // يضيف كائن SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **إنشاء إطارات تكبير القسم بصور مخصصة** + +باستخدام Aspose.Slides لـ Node.js عبر Java، يمكنك إنشاء إطار تكبير قسم بصورة معاينة شريحة مختلفة بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شريحة جديدة. +3. إضافة خلفية تعريف إلى الشريحة التي تم إنشاؤها. +4. إنشاء قسم جديد تريد ربط إطار التكبير به. +5. إنشاء كائن [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) بإضافة صورة إلى مجموعة Images المرتبطة بكائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) الذي سيُملأ الإطار به. +6. إضافة إطار تكبير قسم (يحتوي على مرجع إلى القسم الذي تم إنشاؤه) إلى الشريحة الأولى. +7. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية إنشاء إطار تكبير بصورة مختلفة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 1", slide); + // ينشئ صورة جديدة لكائن التكبير + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // يضيف كائن SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تنسيق إطارات تكبير القسم** + +لإنشاء إطارات تكبير قسم أكثر تعقيداً، عليك تعديل تنسيق إطار بسيط. هناك عدة خيارات تنسيق يمكنك تطبيقها على إطار تكبير القسم. + +يمكنك التحكم في تنسيق إطار تكبير القسم على شريحة بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شريحة جديدة. +3. إضافة خلفية تعريف إلى الشريحة التي تم إنشاؤها. +4. إنشاء قسم جديد تريد ربط إطار التكبير به. +5. إضافة إطار تكبير قسم (يحتوي على مراجع إلى القسم الذي تم إنشاؤه) إلى الشريحة الأولى. +6. تغيير الحجم والموضع للكائن تكبير القسم الذي تم إنشاؤه. +7. إنشاء كائن [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) بإضافة صورة إلى مجموعة Images المرتبطة بكائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) الذي سيُملأ الإطار به. +8. تعيين صورة مخصصة لكائن إطار تكبير القسم الذي تم إنشاؤه. +9. تمكين *العودة إلى الشريحة الأصلية من القسم المرتبط*. +10. إزالة الخلفية من صورة إطار تكبير القسم. +11. تغيير تنسيق الخط لكائن تكبير القسم الثاني. +12. تغيير مدة الانتقال. +13. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية تغيير تنسيق إطار تكبير القسم: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 1", slide); + // يضيف كائن SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // تنسيق لكائن SectionZoomFrame + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ملخص التكبير** + +ملخص التكبير يشبه صفحة هبوط تُظهر جميع أجزاء العرض مرة واحدة. عند تقديمك، يمكنك استخدام التكبير للانتقال من مكان إلى آخر في العرض بأي ترتيب تفضله. يمكنك الإبداع، تخطي أجزاء، أو العودة إلى شرائح سابقة دون إيقاف تدفق العرض. + +![صورة النظرة العامة](sumzoomsel.png) + +بالنسبة لكائنات ملخص التكبير، توفر Aspose.Slides الفئات [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame)، [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) و[SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) وبعض الأساليب تحت فئة [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **إنشاء ملخص التكبير** + +يمكنك إضافة إطار ملخص تكبير إلى شريحة بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شرائح جديدة مع خلفية تعريف وأقسام جديدة للشرائح التي تم إنشاؤها. +3. إضافة إطار ملخص التكبير إلى الشريحة الأولى. +4. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية إنشاء إطار ملخص تكبير على شريحة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 1", slide); + // يضيف شريحة جديدة إلى العرض + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 2", slide); + // يضيف شريحة جديدة إلى العرض + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 3", slide); + // يضيف شريحة جديدة إلى العرض + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 4", slide); + // يضيف كائن SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **إضافة وإزالة قسم ملخص التكبير** + +جميع الأقسام في إطار ملخص التكبير ممثلة بكائنات [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection)، المخزنة في كائن [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection). يمكنك إضافة أو إزالة كائن قسم ملخص التكبير عبر فئة [SummaryZoomSectionCollection] بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شرائح جديدة مع خلفية تعريف وأقسام جديدة للشرائح التي تم إنشاؤها. +3. إضافة إطار ملخص التكبير إلى الشريحة الأولى. +4. إضافة شريحة جديدة وقسم إلى العرض. +5. إضافة القسم الذي تم إنشاؤه إلى إطار ملخص التكبير. +6. إزالة القسم الأول من إطار ملخص التكبير. +7. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية إضافة وإزالة أقسام في إطار ملخص التكبير: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 1", slide); + // يضيف شريحة جديدة إلى العرض + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 2", slide); + // يضيف كائن SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // يضيف شريحة جديدة إلى العرض + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + var section3 = pres.getSections().addSection("Section 3", slide); + // يضيف قسمًا إلى ملخص التكبير + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // يزيل قسمًا من ملخص التكبير + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **تنسيق أقسام ملخص التكبير** + +لإنشاء كائنات أقسام ملخص التكبير أكثر تعقيداً، عليك تعديل تنسيق إطار بسيط. هناك عدة خيارات تنسيق يمكنك تطبيقها على كائن قسم ملخص التكبير. + +يمكنك التحكم في تنسيق كائن قسم ملخص التكبير داخل إطار ملخص التكبير بهذه الطريقة: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إنشاء شرائح جديدة مع خلفية تعريف وأقسام جديدة للشرائح التي تم إنشاؤها. +3. إضافة إطار ملخص التكبير إلى الشريحة الأولى. +4. الحصول على كائن قسم ملخص التكبير لأول كائن من `ISummaryZoomSectionCollection`. +5. إنشاء كائن [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) بإضافة صورة إلى مجموعة images المرتبطة بكائن [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) الذي سيُملأ الإطار به. +6. تعيين صورة مخصصة لكائن إطار تكبير القسم الذي تم إنشاؤه. +7. تمكين *العودة إلى الشريحة الأصلية من القسم المرتبط*. +8. تغيير تنسيق الخط لكائن تكبير القسم الثاني. +9. تغيير مدة الانتقال. +10. كتابة العرض المعدل كملف PPTX. + +هذا الكود JavaScript يوضح كيفية تغيير تنسيق كائن قسم ملخص التكبير: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // يضيف شريحة جديدة إلى العرض + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 1", slide); + // يضيف شريحة جديدة إلى العرض + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // يضيف قسمًا جديدًا إلى العرض + pres.getSections().addSection("Section 2", slide); + // يضيف كائن SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // يحصل على أول كائن SummaryZoomSection + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // تنسيق كائن SummaryZoomSection + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // يحفظ العرض + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**هل يمكنني التحكم في العودة إلى الشريحة "الأصلية" بعد عرض الهدف؟** + +نعم. يحتوي [Zoom frame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/) أو [section](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/) على طريقة `setReturnToParent` التي عند تفعيلها تُعيد المشاهد إلى الشريحة الأصلية بعد زيارة المحتوى المستهدف. + +**هل يمكنني تعديل "سرعة" أو مدة انتقال التكبير؟** + +نعم. يوفّر التكبير طريقة `setTransitionDuration` لتتمكن من التحكم في مدة حركة القفزة. + +**هل هناك حدود لعدد كائنات التكبير التي يمكن أن يحتويها العرض؟** + +لا توجد حدود صريحة موثقة في API. تعتمد الحدود العملية على تعقيد العرض الكلي وأداء المشاهد. يمكنك إضافة عدد كبير من إطارات التكبير، لكن يجب مراعاة حجم الملف ووقت التقديم. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/ar/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..df1813668b --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,100 @@ +--- +title: إدارة العلامات والبيانات المخصصة +type: docs +weight: 300 +url: /ar/nodejs-java/managing-tags-and-custom-data +--- + +## **تخزين البيانات في ملفات العروض التقديمية** + +ملفات PPTX—العناصر ذات الامتداد .pptx—يتم تخزينها بتنسيق PresentationML، وهو جزء من مواصفة Office Open XML. يحدد تنسيق Office Open XML البنية للبيانات المحتواة في العروض التقديمية. + +مع كون *الشريحة* واحدة من عناصر العروض التقديمية، يحتوي *جزء الشريحة* على محتوى شريحة واحدة. يجوز لجزء الشريحة أن يكون له علاقات صريحة مع العديد من الأجزاء—مثل العلامات المعرفة من قبل المستخدم—المعرفة وفقًا لـ ISO/IEC 29500. + +يمكن أن توجد البيانات المخصصة (الخاصة بعرض تقديمي) أو المستخدم كعلامات ([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection)) وCustomXmlParts ([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection)). + +{{% alert color="primary" %}} +العلامات هي في الأساس قيم أزواج مفتاح-سلسلة. +{{% /alert %}} + +## **الحصول على قيم العلامات** + +في الشرائح، تتطابق العلامة مع طريقتي [DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) و[DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-) . يُظهر هذا الكود العيني كيفية الحصول على قيمة علامة باستخدام Aspose.Slides for Node.js عبر Java لـ [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة علامات إلى العروض التقديمية** + +Aspose.Slides يسمح لك بإضافة علامات إلى العروض التقديمية. تتكون العلامة عادةً من عنصرين: + +- اسم الخاصية المخصصة - `MyTag` +- قيمة الخاصية المخصصة - `My Tag Value` + +إذا كنت بحاجة إلى تصنيف بعض العروض التقديمية بناءً على قاعدة أو خاصية معينة، فقد تستفيد من إضافة علامات إلى تلك العروض. على سبيل المثال، إذا أردت تصنيف جميع العروض من دول أمريكا الشمالية معًا، يمكنك إنشاء علامة “North American” ثم تعيين الدول ذات الصلة (الولايات المتحدة، المكسيك، وكندا) كقيم. + +هذا الكود العيني يوضح كيفية إضافة علامة إلى [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) باستخدام Aspose.Slides for Node.js عبر Java: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +يمكن أيضًا تعيين العلامات لـ [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +أو أي [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) فردي: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**هل يمكنني إزالة جميع العلامات من عرض تقديمي أو شريحة أو شكل في عملية واحدة؟** + +نعم. مجموعة العلامات ([tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/)) تدعم عملية [clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/) التي تحذف جميع أزواج المفتاح‑القيمة مرةً واحدة. + +**كيف أحذف علامة واحدة باسمها دون التكرار عبر المجموعة بأكملها؟** + +استخدم عملية [remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/) على [TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) لحذف العلامة بمفتاحها. + +**كيف يمكنني استرجاع القائمة الكاملة لأسماء العلامات للتحليل أو التصفية؟** + +استخدم [getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/) على مجموعة العلامات ([tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/))؛ تُرجع مصفوفة بجميع أسماء العلامات. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..0e9ab99673 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,179 @@ +--- +title: المخططات المتحركة +type: docs +weight: 80 +url: /ar/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} + +Aspose.Slides for Node.js via Java يدعم تحريك عناصر المخطط. يمكن تحريك **السلاسل**، **الفئات**، **عناصر السلسلة**، **عناصر الفئات** باستخدام طريقة [**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-) واثنين من القيم enum [**EffectChartMajorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMajorGroupingType) و[**EffectChartMinorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMinorGroupingType). + +{{% /alert %}} + +## **تحريك سلاسل المخطط** +إذا أردت تحريك سلسلة مخطط، اكتب الكود وفق الخطوات التالية: + +1. تحميل عرض تقديمي. +1. الحصول على مرجع كائن المخطط. +1. تحريك السلسلة. +1. كتابة ملف العرض التقديمي إلى القرص. + +في المثال أدناه، قمنا بتحريك سلاسل المخطط. +```javascript +// إنشاء كائن Presentation الذي يمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // الحصول على مرجع كائن المخطط + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // تحريك السلسلة + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // كتابة العرض التقديمي المعدل إلى القرص + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحريك فئة المخطط** +إذا أردت تحريك فئة مخطط، اكتب الكود وفق الخطوات التالية: + +1. تحميل عرض تقديمي. +1. الحصول على مرجع كائن المخطط. +1. تحريك الفئة. +1. كتابة ملف العرض التقديمي إلى القرص. + +في المثال أدناه، قمنا بتحريك فئة المخطط. +```javascript +// إنشاء فئة Presentation التي تمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحريك عنصر السلسلة** +إذا أردت تحريك عناصر السلسلة، اكتب الكود وفق الخطوات التالية: + +1. تحميل عرض تقديمي. +1. الحصول على مرجع كائن المخطط. +1. تحريك عناصر السلسلة. +1. كتابة ملف العرض التقديمي إلى القرص. + +في المثال أدناه، قمنا بتحريك عناصر السلسلة. +```javascript +// إنشاء فئة Presentation التي تمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // الحصول على مرجع كائن المخطط + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // تحريك عناصر السلسلة + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // كتابة ملف العرض التقديمي إلى القرص + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحريك عنصر الفئة** +إذا أردت تحريك عناصر الفئات، اكتب الكود وفق الخطوات التالية: + +1. تحميل عرض تقديمي. +1. الحصول على مرجع كائن المخطط. +1. تحريك عناصر الفئات. +1. كتابة ملف العرض التقديمي إلى القرص. + +في المثال أدناه، قمنا بتحريك عناصر الفئات. +```javascript +// إنشاء فئة Presentation التي تمثل ملف عرض تقديمي +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // الحصول على مرجع كائن المخطط + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // تحريك عناصر الفئات + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // كتابة ملف العرض التقديمي إلى القرص + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل يتم دعم أنواع التأثير المختلفة (مثل الدخول، التأكيد، الخروج) للمخططات كما هو الحال مع الأشكال العادية؟** + +نعم. يُعامل المخطط كشكل، لذا يدعم أنواع تأثيرات الرسوم المتحركة القياسية، بما في ذلك الدخول، التأكيد، والخروج، مع تحكم كامل عبر خط زمني للشريحة وتسلسلات الرسوم المتحركة. + +**هل يمكن الجمع بين تحريك المخطط وانتقالات الشرائح؟** + +نعم. [Transitions](/slides/ar/nodejs-java/slide-transition/) تُطبق على الشريحة، بينما تُطبق تأثيرات الرسوم المتحركة على الكائنات داخل الشريحة. يمكنك استخدام كليهما معًا في نفس العرض التقديمي والتحكم فيهما بشكل مستقل. + +**هل يتم الحفاظ على تحريكات المخطط عند حفظه كملف PPTX؟** + +نعم. عندما تقوم [save to PPTX](/slides/ar/nodejs-java/save-presentation/)، تُحافظ جميع تأثيرات الرسوم المتحركة وترتيبها لأنها جزء من نموذج الرسوم المتحركة الأصلي للعرض التقديمي. + +**هل يمكنني قراءة تحريكات المخطط الموجودة في عرض تقديمي وتعديلها؟** + +نعم. تُوفر الواجهة البرمجية الوصول إلى خط زمني الشريحة، التسلسلات، والتأثيرات، مما يتيح لك فحص تحريكات المخطط الحالية وتعديلها دون الحاجة لإعادة إنشائها من الصفر. + +**هل يمكنني إنتاج فيديو يتضمن تحريكات المخطط باستخدام Aspose.Slides؟** + +نعم. يمكنك [export a presentation to video](/slides/ar/nodejs-java/convert-powerpoint-to-video/) مع الحفاظ على التحريكات، وضبط التوقيتات وإعدادات التصدير الأخرى بحيث يعكس المقطع النهائي تشغيل الرسوم المتحركة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..65716a3c6d --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: حسابات المخطط +type: docs +weight: 50 +url: /ar/nodejs-java/chart-calculations/ +--- + +## **حساب القيم الفعلية لعناصر المخطط** + +توفر Aspose.Slides for Node.js عبر Java واجهة برمجة تطبيقات بسيطة للحصول على هذه الخصائص. توفر خصائص صف [Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) معلومات حول الموضع الفعلي لعنصر المخطط المحوري ([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--), [Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--), [Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--), [Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--), [Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--), [Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--)). من الضروري استدعاء الطريقة [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) مسبقًا لملء الخصائص بالقيم الفعلية. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **حساب الموضع الفعلي لعناصر المخطط الأصلية** + +توفر Aspose.Slides for Node.js عبر Java واجهة برمجة تطبيقات بسيطة للحصول على هذه الخصائص. توفر خصائص صف [ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) معلومات حول الموضع الفعلي لعنصر المخطط الأصلية ([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--), [ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--), [ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--), [ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--)). من الضروري استدعاء الطريقة [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) مسبقًا لملء الخصائص بالقيم الفعلية. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إخفاء المعلومات من المخطط** + +هذه المقالة تساعدك على فهم كيفية إخفاء المعلومات من المخطط. باستخدام Aspose.Slides for Node.js عبر Java يمكنك إخفاء **العنوان، المحور الرأسي، المحور الأفقي** و **خطوط الشبكة** من المخطط. يعرض مثال الشيفرة أدناه كيفية استخدام هذه الخصائص. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // إخفاء عنوان المخطط + chart.setTitle(false); + // /إخفاء محور القيم + chart.getAxes().getVerticalAxis().setVisible(false); + // إظهار محور الفئات + chart.getAxes().getHorizontalAxis().setVisible(false); + // إخفاء وسيلة الإيضاح + chart.setLegend(false); + // إخفاء خطوط الشبكة الرئيسية + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // تعيين لون خط السلسلة + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل تعمل دفاتر Excel الخارجية كمصدر للبيانات، وكيف يؤثر ذلك على إعادة الحساب؟** + +نعم. يمكن للمخطط الإشارة إلى دفتر عمل خارجي: عند الاتصال بالمصدر الخارجي أو تحديثه، تُؤخذ المعادلات والقيم من ذلك الدفتر، ويعكس المخطّط التحديثات أثناء عمليات الفتح/التعديل. تُتيح لك الواجهة برمجة التطبيقات [تحديد دفتر العمل الخارجي](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) المسار وإدارة البيانات المرتبطة. + +**هل يمكنني حساب وعرض خطوط الاتجاه دون تنفيذ الانحدار بنفسي؟** + +نعم. يتم إضافة [خطوط الاتجاه](/slides/ar/nodejs-java/trend-line/) (خطية، أسية، وغيرها) وتحديثها بواسطة Aspose.Slides؛ يتم إعادة حساب معلماتها تلقائيًا من بيانات السلسلة، لذا لا تحتاج إلى تنفيذ حساباتك الخاصة. + +**إذا كان العرض التقديمي يحتوي على مخططات متعددة بروابط خارجية، هل يمكنني التحكم في دفتر العمل الذي يستخدمه كل مخطط للقيم المحسوبة؟** + +نعم. يمكن لكل مخطط الإشارة إلى [دفتر عمل خارجي](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) خاص به، أو يمكنك إنشاء/استبدال دفتر عمل خارجي لكل مخطط بشكل مستقل عن الآخرين. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..f4b7e4bc81 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: التعليق التوضيحي +type: docs +url: /ar/nodejs-java/callout/ +--- + +## **استخدام التعليقات التوضيحية** + +تمت إضافة طرق جديدة [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) و [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-) إلى فئة [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) و فئة [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat). تحدد هذه الطرق ما إذا كان سيتم عرض تسمية البيانات في المخطط كتعليق توضيحي أو كتسمية بيانات. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين تعليق توضيحي لمخطط الدونت** + +توفر مكتبة Aspose.Slides for Node.js via Java دعمًا لتحديد شكل تعليق توضيحي لتسمية بيانات السلسلة في مخطط الدونت. فيما يلي مثال توضيحي. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**هل يتم الحفاظ على التعليقات التوضيحية عند تحويل العرض التقديمي إلى PDF أو HTML5 أو SVG أو صور؟** + +نعم. التعليقات التوضيحية هي جزء من عملية رسم المخطط، لذلك عند التصدير إلى [PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/)، [HTML5](/slides/ar/nodejs-java/export-to-html5/)، [SVG](/slides/ar/nodejs-java/render-a-slide-as-an-svg-image/)، أو [raster images](/slides/ar/nodejs-java/convert-powerpoint-to-png/)، يتم الاحتفاظ بها مع تنسيق الشريحة. + +**هل تعمل الخطوط المخصصة في التعليقات التوضيحية، وهل يمكن الحفاظ على مظهرها عند التصدير؟** + +نعم. تدعم Aspose.Slides [embedding fonts](/slides/ar/nodejs-java/embedded-font/) داخل العرض التقديمي وتتحكم في تضمين الخطوط أثناء عمليات التصدير مثل [PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/)، مما يضمن بقاء التعليقات التوضيحية ذات الشكل نفسه عبر الأنظمة المختلفة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..119c3a477a --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: محور المخطط +type: docs +url: /ar/nodejs-java/chart-axis/ +keywords: "محور مخطط PowerPoint, مخططات العرض التقديمي, Java, تعديل محور المخطط, بيانات المخطط" +description: "كيفية تعديل محور مخطط PowerPoint في JavaScript" +--- + +## **الحصول على القيم القصوى على المحور العمودي في المخططات** + +تتيح لك Aspose.Slides لـ Node.js عبر Java الحصول على القيم الدنيا والعظمى على المحور العمودي. اتبع هذه الخطوات: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. الوصول إلى الشريحة الأولى. +3. إضافة مخطط ببيانات افتراضية. +4. الحصول على القيمة العظمى الفعلية للمحور. +5. الحصول على القيمة الدنيا الفعلية للمحور. +6. الحصول على الوحدة الرئيسية الفعلية للمحور. +7. الحصول على الوحدة الثانوية الفعلية للمحور. +8. الحصول على مقياس الوحدة الرئيسية الفعلي للمحور. +9. الحصول على مقياس الوحدة الثانوية الفعلي للمحور. + +يعرض لك رمز العينة هذا—تنفيذ الخطوات أعلاه—كيفية الحصول على القيم المطلوبة في JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // يحفظ العرض التقديمي + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تبديل البيانات بين المحاور** + +تتيح لك Aspose.Slides تبديل البيانات بين المحاور بسرعة—البيانات الموجودة على المحور العمودي (المحور y) تنتقل إلى المحور الأفقي (المحور x) والعكس. + +يعرض لك رمز JavaScript هذا كيفية تنفيذ مهمة تبديل البيانات بين المحاور في مخطط: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // يبدل الصفوف والأعمدة + chart.getChartData().switchRowColumn(); + // يحفظ العرض التقديمي + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إلغاء تفعيل المحور العمودي لمخططات الخط** + +يعرض لك رمز JavaScript هذا كيفية إخفاء المحور العمودي لمخطط خط: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إلغاء تفعيل المحور الأفقي لمخططات الخط** + +يعرض لك هذا الرمز كيفية إخفاء المحور الأفقي لمخطط خط: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تغيير محور الفئة** + +باستخدام الخاصية **CategoryAxisType**، يمكنك تحديد نوع محور الفئة المفضل لديك (**date** أو **text**). يوضح لك هذا الرمز في JavaScript العملية: +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **تعيين تنسيق التاريخ لقيمة محور الفئة** + +تتيح لك Aspose.Slides لـ Node.js عبر Java تعيين تنسيق التاريخ لقيمة محور الفئة. يتم عرض العملية في هذا الرمز في JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **تعيين زاوية الدوران لعنوان محور المخطط** + +تتيح لك Aspose.Slides لـ Node.js عبر Java تعيين زاوية الدوران لعنوان محور المخطط. يوضح لك هذا الرمز في JavaScript العملية: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين موقع المحور في محور الفئة أو القيمة** + +تتيح لك Aspose.Slides لـ Node.js عبر Java تعيين موقع المحور في محور الفئة أو القيمة. يوضح لك هذا الرمز في JavaScript كيفية تنفيذ المهمة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تمكين عرض وحدة التسمية على محور قيمة المخطط** + +تتيح لك Aspose.Slides لـ Node.js عبر Java تكوين المخطط لعرض علامة وحدة على محور قيم المخطط. يوضح لك هذا الرمز في JavaScript العملية: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**كيف يمكنني تعيين القيمة التي يتقاطع عندها محور مع الآخر (تقاطع المحاور)؟** + +توفر المحاور إعدادًا لتقاطع المحاور [crossing setting](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/): يمكنك اختيار التقاطع عند الصفر، أو عند الفئة/القيمة القصوى، أو عند قيمة رقمية محددة. يكون ذلك مفيدًا لتحريك محور X أعلاه أو أسفله أو لتسليط الضوء على خط الأساس. + +**كيف يمكنني وضع تسميات الفواصل بالنسبة إلى المحور (بجانب، خارج، داخل)؟** + +قم بتعيين [label position](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/) إلى "cross" أو "outside" أو "inside". يؤثر ذلك على قابلية القراءة ويساعد في توفير المساحة، خصوصًا في المخططات الصغيرة. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..b0c087ecd2 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: تسمية بيانات المخطط +type: docs +url: /ar/nodejs-java/chart-data-label/ +keywords: "تسمية بيانات المخطط، مسافة التسمية، Java، Aspose.Slides for Node.js عبر Java" +description: "تعيين تسمية بيانات مخطط PowerPoint والمسافة باستخدام JavaScript" +--- + +تُظهر تسميات البيانات في المخطط تفاصيل حول سلسلة بيانات المخطط أو نقاط البيانات الفردية. إنها تسمح للقراء بالتعرف بسرعة على سلاسل البيانات كما تجعل المخططات أسهل للفهم. + +## **تحديد دقة البيانات في تسميات بيانات المخطط** + +يظهر لك هذا الكود JavaScript كيفية تحديد دقة البيانات في تسمية بيانات المخطط: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **عرض النسبة المئوية كتسميات** + +تتيح لك Aspose.Slides لـ Node.js عبر Java تعيين تسميات النسبة المئوية على المخططات المعروضة. يوضح لك هذا الكود JavaScript العملية: +```javascript +// ينشئ مثالًا من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // يحصل على الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // يحفظ العرض التقديمي الذي يحتوي على المخطط + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين رمز النسبة المئوية في تسميات بيانات المخطط** + +يظهر لك هذا الكود JavaScript كيفية تعيين رمز النسبة المئوية لتسمية بيانات المخطط: +```javascript +// ينشئ مثيلاً من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // يحصل على مرجع الشريحة عبر فهرستها + var slide = pres.getSlides().get_Item(0); + // ينشئ مخطط PercentsStackedColumn على شريحة + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // يضبط الخاصية NumberFormatLinkedToSource إلى false + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // يحصل على ورقة عمل بيانات المخطط + var workbook = chart.getChartData().getChartDataWorkbook(); + // يضيف سلسلة جديدة + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // يضبط لون تعبئة السلسلة + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // يضبط خصائص تنسيق التسمية (LabelFormat) + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // يضيف سلسلة جديدة + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // يضبط نوع التعبئة واللون + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // يكتب العرض التقديمي إلى القرص + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحديد مسافة التسميات من المحور** + +يظهر لك هذا الكود JavaScript كيفية تعيين مسافة التسمية من محور الفئة عندما تتعامل مع مخطط مرسوم من المحاور: +```javascript +// ينشئ مثيلاً من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // يحصل على مرجع الشريحة + var sld = pres.getSlides().get_Item(0); + // ينشئ مخططًا على الشريحة + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // يضبط مسافة التسمية من المحور + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // يكتب العرض التقديمي إلى القرص + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ضبط موقع التسمية** + +عند إنشاء مخطط لا يعتمد على أي محور مثل مخطط الدائرة، قد تكون تسميات بيانات المخطط قريبة جدًا من حافته. في هذه الحالة، عليك ضبط موقع تسمية البيانات بحيث تُعرض خطوط الربط بوضوح. + +يظهر لك هذا الكود JavaScript كيفية ضبط موقع التسمية في مخطط الدائرة: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **الأسئلة الشائعة** + +**كيف يمكنني منع تداخل تسميات البيانات في المخططات الكثيفة؟** + +اجمع بين وضعية التسمية التلقائية، وخطوط الربط، وتقليل حجم الخط؛ وإذا لزم الأمر، أخفِ بعض الحقول (مثل الفئة) أو اعرض التسميات فقط للنقاط المتطرفة/الرئيسية. + +**كيف يمكنني إيقاف تشغيل التسميات للقيم الصفرية أو السلبية أو الفارغة فقط؟** + +قم بتصفية نقاط البيانات قبل تمكين التسميات وأوقف العرض للقيم الصفرية أو السلبية أو القيم المفقودة وفقًا لقاعدة محددة. + +**كيف يمكنني ضمان تناسق نمط التسمية عند التصدير إلى PDF/صور؟** + +حدد الخطوط (العائلة، الحجم) صراحةً وتأكد من أن الخط متاح على جانب العرض لتفادي الاعتماد على الخط الاحتياطي. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..95a8dd743e --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: علامة بيانات المخطط +type: docs +url: /ar/nodejs-java/chart-data-marker/ +--- + +## **تعيين خيارات علامات المخطط** + +يمكن تعيين العلامات على نقاط بيانات المخطط داخل السلاسل المعينة. لإعداد خيارات علامات المخطط، يرجى اتباع الخطوات التالية: + +- إنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- إنشاء المخطط الافتراضي. +- تعيين الصورة. +- أخذ السلسلة الأولى من المخطط. +- إضافة نقطة بيانات جديدة. +- كتابة العرض التقديمي إلى القرص. + +في المثال أدناه، قمنا بتعيين خيارات علامات المخطط على مستوى نقاط البيانات. +```javascript +// إنشاء عرض تقديمي فارغ +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إنشاء المخطط الافتراضي + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // الحصول على فهرس ورقة عمل بيانات المخطط الافتراضية + var defaultWorksheetIndex = 0; + // الحصول على ورقة عمل بيانات المخطط + var fact = chart.getChartData().getChartDataWorkbook(); + // حذف السلسلة التجريبية + chart.getChartData().getSeries().clear(); + // إضافة سلسلة جديدة + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // تحميل الصورة 1 + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // تحميل الصورة 2 + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // أخذ السلسلة الأولى للمخطط + var series = chart.getChartData().getSeries().get_Item(0); + // إضافة نقطة جديدة (1:3) هناك. + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // تغيير علامة سلسلة المخطط + series.getMarker().setSize(15); + // حفظ العرض التقديمي مع المخطط + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**ما هي أشكال العلامات المتاحة مباشرةً؟** + +الأشكال القياسية متاحة (دائرة، مربع، ماسة، مثلث، إلخ)؛ يتم تعريف القائمة بواسطة تعداد [MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/). إذا كنت بحاجة إلى شكل غير قياسي، استخدم علامة بملء صورة لمحاكاة رسومات مخصصة. + +**هل تُحفظ العلامات عند تصدير المخطط إلى صورة أو SVG؟** + +نعم. عند تصيير المخططات إلى [raster formats](/slides/ar/nodejs-java/convert-powerpoint-to-png/) أو حفظ [shapes as SVG](/slides/ar/nodejs-java/render-a-slide-as-an-svg-image/)، تحتفظ العلامات بمظهرها وإعداداتها، بما في ذلك الحجم والملء والحد الخارجي. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..f9b58c3802 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: جدول بيانات المخطط +type: docs +url: /ar/nodejs-java/chart-data-table/ +--- + +## **تعيين خصائص الخط لجدول بيانات المخطط** + +Aspose.Slides for Node.js via Java يوفر دعمًا لتغيير لون الفئات في لون السلسلة. + +1. إنشاء كائن فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. إضافة مخطط إلى الشريحة. +1. تعيين جدول المخطط. +1. تعيين ارتفاع الخط. +1. حفظ العرض التقديمي المعدل. + + مثال العينة أدناه موضح. +```javascript +// إنشاء عرض تقديمي فارغ +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**هل يمكنني إظهار مفاتيح الأسطورة الصغيرة بجوار القيم في جدول بيانات المخطط؟** + +نعم. يدعم جدول البيانات [مفاتيح الأسطورة](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/)، ويمكنك تشغيلها أو إيقافها. + +**هل سيُحافظ على جدول البيانات عند تصدير العرض التقديمي إلى PDF أو HTML أو صور؟** + +نعم. يقوم Aspose.Slides برسم المخطط كجزء من الشريحة، لذا فإن الـ[PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/ar/nodejs-java/convert-powerpoint-to-html/)/[image](/slides/ar/nodejs-java/convert-powerpoint-to-png/) المصدر يضمن المخطط مع جدول البيانات الخاص به. + +**هل يتم دعم جداول البيانات للمخططات التي تأتي من ملف قالب؟** + +نعم. لأي مخطط يتم تحميله من عرض تقديمي موجود أو قالب، يمكنك التحقق وتغيير ما إذا كان جدول البيانات [معروضًا](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) باستخدام خصائص المخطط. + +**كيف يمكنني بسرعة العثور على المخططات في ملف ما التي لديها جدول البيانات مفعّل؟** + +تحقق من خاصية كل مخطط تشير إلى ما إذا كان جدول البيانات [معروضًا](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) وتصفح الشرائح لتحديد المخططات التي يكون فيها مفعّل. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..dc235dc0ad --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,118 @@ +--- +title: وسيلة إيضاح المخطط +type: docs +url: /ar/nodejs-java/chart-legend/ +--- + +## **تحديد موضع وسيلة الإيضاح** + +لتعيين خصائص وسيلة الإيضاح، يرجى اتباع الخطوات التالية: + +- إنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- الحصول على مرجع الشريحة. +- إضافة مخطط إلى الشريحة. +- ضبط خصائص وسيلة الإيضاح. +- حفظ العرض التقديمي كملف PPTX. + +في المثال أدناه، قمنا بتعيين الموضع والحجم لوسيلة إيضاح المخطط. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // الحصول على مرجع الشريحة + var slide = pres.getSlides().get_Item(0); + // إضافة مخطط عمودي مُجَمّع إلى الشريحة + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // ضبط خصائص وسيلة الإيضاح + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // حفظ العرض التقديمي إلى القرص + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحديد حجم الخط لوسيلة الإيضاح** + +تتيح Aspose.Slides for Node.js via Java للمطورين ضبط حجم خط وسيلة الإيضاح. يرجى اتباع الخطوات التالية: + +- إنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- إنشاء المخطط الافتراضي. +- ضبط حجم الخط. +- تعيين القيمة الدنيا للمحور. +- تعيين القيمة القصوى للمحور. +- حفظ العرض التقديمي على القرص. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تحديد حجم خط كل مدخل في وسيلة الإيضاح** + +تتيح Aspose.Slides for Node.js via Java للمطورين ضبط حجم خط كل مدخل في وسيلة الإيضاح. يرجى اتباع الخطوات التالية: + +- إنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- إنشاء المخطط الافتراضي. +- الوصول إلى مدخل وسيلة الإيضاح. +- ضبط حجم الخط. +- تعيين القيمة الدنيا للمحور. +- تعيين القيمة القصوى للمحور. +- حفظ العرض التقديمي على القرص. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**هل يمكنني تمكين وسيلة الإيضاح بحيث يخصص المخطط مساحة لها تلقائيًا بدلاً من تغطيتها؟** + +نعم. استخدم وضع عدم التغطية ([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/)); في هذه الحالة، سيُصغر منطقة الرسم لتستوعب وسيلة الإيضاح. + +**هل يمكنني إنشاء تسميات وسيلة إيضاح متعددة الأسطر؟** + +نعم. تُلف التسميات الطويلة تلقائيًا عندما تكون المساحة غير كافية؛ وتدعم فواصل الأسطر القسرية عبر أحرف السطر الجديد داخل اسم السلسلة. + +**كيف أجعل وسيلة الإيضاح تتبع مخطط ألوان سمة العرض التقديمي؟** + +لا تقم بتعيين ألوان/تعبئات/خطوط صريحة لوسيلة الإيضاح أو نصها. سيتوارثون القيم من السمة وسيتم تحديثهم بشكل صحيح عند تغيير التصميم. +--- +title: وسيلة إيضاح المخطط +type: docs +url: /ar/nodejs-java/chart-legend/ +--- diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..f9204bb2bf --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: مساحة رسم المخطط +type: docs +url: /ar/nodejs-java/chart-plot-area/ +--- + +## **الحصول على عرض وارتفاع مساحة رسم المخطط** + +توفر Aspose.Slides لـ Node.js عبر Java واجهة برمجة تطبيقات بسيطة. + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +1. الوصول إلى الشريحة الأولى. +1. إضافة مخطط ببيانات افتراضية. +1. استدعاء الطريقة [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) قبل الحصول على القيم الفعلية. +1. الحصول على موقع X الفعلي (اليسار) لعنصر المخطط بالنسبة إلى الزاوية العلوية اليسرى للمخطط. +1. الحصول على الموضع العلوي الفعلي لعنصر المخطط بالنسبة إلى الزاوية العلوية اليسرى للمخطط. +1. الحصول على العرض الفعلي لعنصر المخطط. +1. الحصول على الارتفاع الفعلي لعنصر المخطط. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ضبط وضع تخطيط مساحة رسم المخطط** + +توفر Aspose.Slides لـ Node.js عبر Java واجهة برمجة تطبيقات بسيطة لضبط وضع تخطيط مساحة رسم المخطط. تمت إضافة الطريقتين **setLayoutTargetType** و **getLayoutTargetType** إلى فئة **ChartPlotArea**. إذا تم تعريف تخطيط مساحة الرسم يدويًا، تحدد هذه الخاصية ما إذا كان يجب تخطيط مساحة الرسم من داخلها (دون تضمين المحور وعناوين المحاور) أو من خارجها (مع تضمين المحور وعناوين المحاور). هناك قيمتان محتملتان معرّفتان في تعداد **LayoutTargetType**. + +- **LayoutTargetType.Inner** - يحدد أن حجم مساحة الرسم يحدد حجم مساحة الرسم، دون تضمين علامات الفواصل وعناوين المحاور. +- **LayoutTargetType.Outer** - يحدد أن حجم مساحة الرسم يحدد حجم مساحة الرسم، وعلامات الفواصل، وعناوين المحاور. + +الشفرة النموذجية موضحة أدناه. +```javascript +// إنشاء كائن من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**بأي وحدات يتم إرجاع X الفعلي وY الفعلي والعرض الفعلي والارتفاع الفعلي؟** + +بالنقاط؛ 1 بوصة = 72 نقطة. هذه هي وحدات إحداثيات Aspose.Slides. + +**كيف تختلف مساحة الرسم عن مساحة المخطط من حيث المحتوى؟** + +مساحة الرسم هي منطقة رسم البيانات (السلاسل، خطوط الشبكة، خطوط الاتجاه، إلخ)؛ بينما تشمل مساحة المخطط العناصر المحيطة (العنوان، المفتاح، إلخ). في المخططات ثلاثية الأبعاد، تشمل مساحة الرسم أيضًا الجدران/القاع والمحاور. + +**كيف يتم تفسير X وY والعرض والارتفاع لمساحة الرسم عندما يكون التخطيط يدويًا؟** + +إنها كسور (من 0 إلى 1) من الحجم الكلي للمخطط؛ في هذا الوضع يتم تعطيل التموضع التلقائي وتُستخدم الكسور التي تحددها. + +**لماذا تغير موقع مساحة الرسم بعد إضافة/نقل المفتاح؟** + +المفتاح يقع في مساحة المخطط خارج مساحة الرسم لكنه يؤثر على التخطيط والمساحة المتاحة، لذا قد تتحرك مساحة الرسم عندما يكون التموضع التلقائي مفعلاً. (هذا سلوك قياسي لمخططات PowerPoint.) \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..55f5713825 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,328 @@ +--- +title: سلسلة المخطط +type: docs +url: /ar/nodejs-java/chart-series/ +keywords: "سلسلة المخطط, لون السلسلة, عرض تقديمي PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "سلسلة المخطط في عروض PowerPoint التقديمية في JavaScript" +--- + +السلسلة هي صف أو عمود من الأرقام يتم رسمه في مخطط. + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **تعيين تداخل سلسلة المخطط** + +باستخدام طريقة [ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap) يمكنك تحديد مقدار تداخل الأعمدة والشرائح في مخطط ثنائي الأبعاد (النطاق: -100 إلى 100). تُطبق هذه الخاصية على جميع سلاسل مجموعة السلسلة الأصلية: فهي تمثيل للخاصية المناسبة للمجموعة. وبالتالي، هذه الخاصية للقراءة فقط. + +استخدم الخاصية القابلة للقراءة/الكتابة `ParentSeriesGroup.getOverlap` لتعيين القيمة المفضلة لك لـ `Overlap`. + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. إضافة مخطط أعمدة مترابطة إلى شريحة. +1. الوصول إلى أول سلسلة في المخطط. +1. الوصول إلى `ParentSeriesGroup` لسلسلة المخطط وتعيين قيمة التداخل المفضلة للسلسلة. +1. حفظ العرض التقديمي المعدل إلى ملف PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // إضافة مخطط + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // تعيين تداخل السلسلة + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // حفظ ملف العرض التقديمي إلى القرص + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تغيير لون السلسلة** + +يتيح لك Aspose.Slides for Node.js عبر Java تغيير لون السلسلة بهذه الطريقة: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. إضافة مخطط إلى الشريحة. +1. الوصول إلى السلسلة التي تريد تغيير لونها. +1. تعيين نوع التعبئة ولون التعبئة المفضلين. +1. حفظ العرض التقديمي المعدل. + +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تغيير لون فئة السلسلة** + +يتيح لك Aspose.Slides for Node.js عبر Java تغيير لون فئة السلسلة بهذه الطريقة: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. إضافة مخطط إلى الشريحة. +1. الوصول إلى فئة السلسلة التي تريد تغيير لونها. +1. تعيين نوع التعبئة ولون التعبئة المفضلين. +1. حفظ العرض التقديمي المعدل. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تغيير اسم السلسلة** + +بشكل افتراضي، تكون أسماء وسيلة الإيضاح للمخطط هي محتويات الخلايا فوق كل عمود أو صف من البيانات. + +في مثالنا (الصورة النموذجية)، + +* الأعمدة هي *Series 1, Series 2,* و *Series 3*; +* الصفوف هي *Category 1, Category 2, Category 3,* و *Category 4.* + +يتيح لك Aspose.Slides for Node.js عبر Java تحديث أو تغيير اسم السلسلة في بيانات المخطط ووسيلة الإيضاح. + +يعرض لك هذا الكود JavaScript كيفية تغيير اسم السلسلة في بيانات المخطط `ChartDataWorkbook`: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +يعرض لك هذا الكود JavaScript كيفية تغيير اسم السلسلة في وسيلة الإيضاح عبر `Series`: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين لون تعبئة سلسلة المخطط** + +يتيح لك Aspose.Slides for Node.js عبر Java تعيين لون التعبئة التلقائي لسلاسل المخطط داخل منطقة الرسم بهذه الطريقة: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. الحصول على مرجع شريحة عبر رقمها. +1. إضافة مخطط ببيانات افتراضية بناءً على النوع المفضل لديك (في المثال أدناه استخدمنا `ChartType.ClusteredColumn`). +1. الوصول إلى سلسلة المخطط وتعيين لون التعبئة إلى Automatic. +1. حفظ العرض التقديمي إلى ملف PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // إنشاء مخطط عمود متجميع + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // تعيين تنسيق تعبئة السلسلة إلى تلقائي + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // حفظ ملف العرض التقديمي إلى القرص + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين ألوان تعبئة مقلوبة لسلسلة المخطط** + +يتيح لك Aspose.Slides تعيين لون التعبئة المقلوب لسلاسل المخطط داخل منطقة الرسم بهذه الطريقة: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. الحصول على مرجع شريحة عبر رقمها. +1. إضافة مخطط ببيانات افتراضية بناءً على النوع المفضل لديك (في المثال أدناه استخدمنا `ChartType.ClusteredColumn`). +1. الوصول إلى سلسلة المخطط وتعيين لون التعبئة إلى invert. +1. حفظ العرض التقديمي إلى ملف PPTX. + +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // يضيف سلاسل وفئات جديدة + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // يأخذ أول سلسلة مخطط ويملأ بيانات السلسلة الخاصة بها. + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين السلسلة لتقلب اللون عندما تكون القيمة سلبية** + +يتيح لك Aspose.Slides ضبط التقلبات عبر طريقة `ChartDataPoint.setInvertIfNegative`. عندما يتم ضبط التقلب باستخدام الخصائص، يقوم نقطة البيانات بعكس ألوانها عند حصولها على قيمة سلبية. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **مسح بيانات نقاط البيانات المحددة** + +يتيح لك Aspose.Slides for Node.js عبر Java مسح بيانات `DataPoints` لسلسلة مخطط محددة بهذه الطريقة: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. الحصول على مرجع الشريحة عبر رقمها. +3. الحصول على مرجع المخطط عبر رقمه. +4. التكرار عبر جميع `DataPoints` في المخطط وتعيين `XValue` و `YValue` إلى null. +5. مسح جميع `DataPoints` لسلسلة المخطط المحددة. +6. حفظ العرض التقديمي المعدل إلى ملف PPTX. + +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين عرض الفجوة للسلسلة** + +يتيح لك Aspose.Slides for Node.js عبر Java تعيين عرض الفجوة لسلسلة عبر الخاصية **`GapWidth`** بهذه الطريقة: + +1. إنشاء مثال من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. الوصول إلى الشريحة الأولى. +1. إضافة مخطط ببيانات افتراضية. +1. الوصول إلى أي سلسلة في المخطط. +1. تعيين الخاصية `GapWidth`. +1. حفظ العرض التقديمي المعدل إلى ملف PPTX. + +```javascript +// إنشاء عرض تقديمي فارغ +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى في العرض التقديمي + var slide = pres.getSlides().get_Item(0); + // إضافة مخطط ببيانات افتراضية + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // تعيين فهرس ورقة بيانات المخطط + var defaultWorksheetIndex = 0; + // الحصول على ورقة عمل بيانات المخطط + var fact = chart.getChartData().getChartDataWorkbook(); + // إضافة السلاسل + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // إضافة الفئات + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // أخذ السلسلة الثانية في المخطط + var series = chart.getChartData().getSeries().get_Item(1); + // ملء بيانات السلسلة + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // تعيين قيمة GapWidth + series.getParentSeriesGroup().setGapWidth(50); + // حفظ العرض التقديمي إلى القرص + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**هل هناك حد لعدد السلاسل التي يمكن أن يحتويها مخطط واحد؟** + +لا تفرض Aspose.Slides حدًا ثابتًا لعدد السلاسل التي يمكنك إضافتها. الحد العملي يحدده قابلية قراءة المخطط والذاكرة المتاحة لتطبيقك. + +**ماذا لو كانت الأعمدة داخل مجموعة متقاربة جدًا أو متباعدة جدًا؟** + +قم بضبط إعداد عرض الفجوة لتلك السلسلة (أو مجموعة السلسلة الأصلية). زيادة القيمة توسع المسافة بين الأعمدة، بينما تقليلها تقربها من بعضها. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..a73de5631b --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: شريط الخطأ +type: docs +url: /ar/nodejs-java/error-bar/ +--- + +## **إضافة شريط الخطأ** + +توفر Aspose.Slides for Node.js عبر Java واجهة برمجة تطبيقات بسيطة لإدارة قيم أشرطة الخطأ. يُطبق الكود النموذجي عند استخدام نوع قيمة مخصص. لتحديد قيمة، استخدم خاصية **ErrorBarCustomValues** لنقطة بيانات محددة في مجموعة [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) للسلسلة: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. إضافة مخطط فقاعة إلى الشريحة المطلوبة. +1. الوصول إلى سلسلة المخطط الأولى وتعيين تنسيق شريط الخطأ X. +1. الوصول إلى سلسلة المخطط الأولى وتعيين تنسيق شريط الخطأ Y. +1. تعيين قيم الأشرطة والتنسيق. +1. كتابة العرض المُعدَّل إلى ملف PPTX. +```javascript +// إنشاء مثيل من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // إنشاء مخطط فقاعة + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // إضافة أشرطة الأخطاء وتعيين تنسيقها + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // حفظ العرض التقديمي + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة قيمة مخصصة لشريط الخطأ** + +توفر Aspose.Slides for Node.js عبر Java واجهة برمجة تطبيقات بسيطة لإدارة قيم أشرطة الخطأ المخصصة. يُطبق الكود النموذجي عندما تكون خاصية [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) مساوية لـ **Custom**. لتحديد قيمة، استخدم خاصية **ErrorBarCustomValues** لنقطة بيانات محددة في مجموعة [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) للسلسلة: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. إضافة مخطط فقاعة إلى الشريحة المطلوبة. +1. الوصول إلى سلسلة المخطط الأولى وتعيين تنسيق شريط الخطأ X. +1. الوصول إلى سلسلة المخطط الأولى وتعيين تنسيق شريط الخطأ Y. +1. الوصول إلى نقاط البيانات الفردية في سلسلة المخطط وتعيين قيم شريط الخطأ لكل نقطة بيانات. +1. تعيين قيم الأشرطة والتنسيق. +1. كتابة العرض المُعدَّل إلى ملف PPTX. +```javascript +// إنشاء مثيل من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // إنشاء مخطط فقاعة + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // إضافة أشرطة الأخطاء المخصصة وتعيين تنسيقها + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // الوصول إلى نقطة بيانات سلسلة المخطط وتعيين قيم أشرطة الأخطاء لـ + // النقطة الفردية + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // تعيين أشرطة الأخطاء لنقاط سلسلة المخطط + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // حفظ العرض التقديمي + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة الشائعة** + +**ماذا يحدث لشريط الأخطاء عند تصدير عرض تقديمي إلى PDF أو صور؟** + +يتم تنزيله كجزء من المخطط ويُحافظ عليه أثناء التحويل مع بقية تنسيقات المخطط، بشرط وجود نسخة أو محوِّل متوافق. + +**هل يمكن دمج أشرطة الأخطاء مع العلامات وتسميات البيانات؟** + +نعم. أشرطة الأخطاء عنصر منفصل ومتوافق مع العلامات وتسميات البيانات؛ إذا تداخلت العناصر قد تحتاج إلى تعديل التنسيق. + +**أين يمكنني العثور على قائمة الخصائص والعدادات (enums) للعمل مع أشرطة الأخطاء في واجهة البرمجة؟** + +في مرجع API: الفئة [ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) والعدادات المرتبطة [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) و[ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/). \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..1e34e1d910 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: خط الاتجاه +type: docs +url: /ar/nodejs-java/trend-line/ +--- + +## **إضافة خط الاتجاه** + +Aspose.Slides for Node.js via Java يوفر واجهة برمجة تطبيقات بسيطة لإدارة خطوط الاتجاه لمختلف المخططات: + +1. إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. الحصول على مرجع الشريحة عبر فهرستها. +3. إضافة مخطط ببيانات افتراضية مع أحد الأنواع المطلوبة (هذا المثال يستخدم ChartType.ClusteredColumn). +4. إضافة خط اتجاه أسي للسلسلة 1 في المخطط. +5. إضافة خط اتجاه خطي للسلسلة 1 في المخطط. +6. إضافة خط اتجاه لوغاريتمي للسلسلة 2 في المخطط. +7. إضافة خط اتجاه متوسط متحرك للسلسلة 2 في المخطط. +8. إضافة خط اتجاه متعدد الحدود للسلسلة 3 في المخطط. +9. إضافة خط اتجاه طاقة للسلسلة 3 في المخطط. +10. كتابة العرض المعدل إلى ملف PPTX. + +الكود التالي يُستخدم لإنشاء مخطط مع خطوط الاتجاه. +```javascript +// إنشاء مثيل من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // إنشاء مخطط عمودي مجمع + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // إضافة خط اتجاه أسي للسلسلة 1 في المخطط + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // إضافة خط اتجاه خطي للسلسلة 1 في المخطط + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // إضافة خط اتجاه لوغاريتمي للسلسلة 2 في المخطط + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // إضافة خط اتجاه متوسط متحرك للسلسلة 2 في المخطط + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // إضافة خط اتجاه متعدد الحدود للسلسلة 3 في المخطط + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // إضافة خط اتجاه طاقة للسلسلة 3 في المخطط + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // حفظ العرض + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **إضافة خط مخصص** + +Aspose.Slides for Node.js via Java يوفر واجهة برمجة تطبيقات بسيطة لإضافة خطوط مخصصة في المخطط. لإضافة خط بسيط إلى شريحة مختارة من العرض، اتبع الخطوات أدناه: + +- إنشاء مثيل من الفئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- الحصول على مرجع الشريحة باستخدام فهرستها. +- إنشاء مخطط جديد باستخدام طريقة AddChart التي يوفرها كائن Shapes. +- إضافة AutoShape من نوع Line باستخدام طريقة AddAutoShape التي يوفرها كائن Shapes. +- تعيين لون خطوط الشكل. +- كتابة العرض المعدل كملف PPTX. + +الكود التالي يُستخدم لإنشاء مخطط مع خطوط مخصصة. +```javascript +// إنشاء مثيل من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتكررة** + +**ماذا يعني "forward" و "backward" بالنسبة لخط الاتجاه؟** + +هما طولا خط الاتجاه الممدود إلى الأمام/الخلف: في المخططات النقطية (XY) — بوحدات المحور؛ في المخططات غير النقطية — بعدد الفئات. يُسمح فقط بالقيم غير السالبة. + +**هل سيظل خط الاتجاه محفوظًا عند تصدير العرض إلى PDF أو SVG، أو عند تحويل الشريحة إلى صورة؟** + +نعم. Aspose.Slides يقوم بتحويل العروض إلى [PDF](/slides/ar/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/ar/nodejs-java/render-a-slide-as-an-svg-image/) ويحول المخططات إلى صور؛ خطوط الاتجاه، كجزء من المخطط، تُحفظ خلال هذه العمليات. كما تتوفر طريقة لتصدير صورة للمخطط نفسه [هنا](/slides/ar/nodejs-java/create-shape-thumbnails/). \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..b75bc5dc95 --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,328 @@ +--- +title: تنسيق المخطط +type: docs +weight: 60 +url: /ar/nodejs-java/chart-formatting/ +--- + +## **تنسيق كيانات المخطط** + +تمكن Aspose.Slides for Node.js عبر Java المطورين من إضافة مخططات مخصصة إلى شرائحهم من الصفر. توضح هذه المقالة كيفية تنسيق كيانات المخطط المختلفة بما في ذلك محور الفئة والمحور القيمي. + +توفر Aspose.Slides for Node.js عبر Java API بسيطة لإدارة كيانات المخطط المختلفة وتنسيقها باستخدام قيم مخصصة: + +1. إنشاء مثيل من الفئة [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. الحصول على مرجع الشريحة عن طريق الفهرس. +1. إضافة مخطط مع البيانات الافتراضية إلى جانب أي نوع مطلوب (في هذا المثال سنستخدم ChartType.LineWithMarkers). +1. الوصول إلى محور القيم في المخطط وتعيين الخصائص التالية: + 1. تعيين **Line format** لخطوط الشبكة الرئيسية لمحور القيم + 1. تعيين **Line format** لخطوط الشبكة الثانوية لمحور القيم + 1. تعيين **Number Format** لمحور القيم + 1. تعيين **Min, Max, Major and Minor units** لمحور القيم + 1. تعيين **Text Properties** لبيانات محور القيم + 1. تعيين **Title** لمحور القيم + 1. تعيين **Line Format** لمحور القيم +1. الوصول إلى محور الفئة في المخطط وتعيين الخصائص التالية: + 1. تعيين **Line format** لخطوط الشبكة الرئيسية لمحور الفئة + 1. تعيين **Line format** لخطوط الشبكة الثانوية لمحور الفئة + 1. تعيين **Text Properties** لبيانات محور الفئة + 1. تعيين **Title** لمحور الفئة + 1. تعيين **Label Positioning** لمحور الفئة + 1. تعيين **Rotation Angle** لتسميات محور الفئة +1. الوصول إلى مفتاح المخطط (Legend) وتعيين **Text Properties** لها +1. ضبط إظهار مفاتيح المخطط دون تداخل مع المخطط +1. الوصول إلى **Secondary Value Axis** في المخطط وتعيين الخصائص التالية: + 1. تمكين **Value Axis** الثانوي + 1. تعيين **Line Format** لمحور القيم الثانوي + 1. تعيين **Number Format** لمحور القيم الثانوي + 1. تعيين **Min, Max, Major and Minor units** لمحور القيم الثانوي +1. الآن قم برسم السلسلة الأولى للمخطط على محور القيم الثانوي +1. تعيين لون تعبئة جدار خلفية المخطط +1. تعيين لون تعبئة منطقة رسم المخطط +1. حفظ العرض التقديمي المعدل إلى ملف PPTX +```javascript +// إنشاء مثيل من فئة Presentation class +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة المخطط النموذجي + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // تعيين عنوان المخطط + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // تعيين تنسيق خطوط الشبكة الرئيسية لمحور القيم + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // تعيين تنسيق خطوط الشبكة الثانوية لمحور القيم + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // تعيين تنسيق رقم محور القيم + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // تعيين القيم القصوى الدنيا للمخطط + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // تعيين خصائص نص محور القيم + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // تعيين عنوان محور القيم + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // تعيين تنسيق خطوط الشبكة الرئيسية لمحور الفئة + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // تعيين تنسيق خطوط الشبكة الثانوية لمحور الفئة + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // تعيين خصائص نص محور الفئة + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // تعيين عنوان الفئة + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // تعيين موضع تسمية محور الفئة + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // تعيين زاوية دوران تسمية محور الفئة + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // تعيين خصائص نص المفتاح + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // ضبط إظهار مفاتيح المخطط دون تداخل مع المخطط + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // تعيين محور القيم الثانوي + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // تعيين تنسيق رقم محور القيم الثانوي + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // تعيين القيم القصوى الدنيا للمخطط + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // تعيين لون الجدار الخلفي للمخطط + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // تعيين لون منطقة الرسم + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // حفظ العرض التقديمي + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين خصائص الخط للمخطط** + +توفر Aspose.Slides for Node.js عبر Java دعمًا لتعيين خصائص الخط المتعلقة بالمخطط. يرجى اتباع الخطوات أدناه لتعيين خصائص الخط للمخطط. + +- إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +- إضافة مخطط إلى الشريحة. +- تعيين ارتفاع الخط. +- حفظ العرض التقديمي المعدل. + +مثال عينة مرفق أدناه. +```javascript +// إنشاء مثيل من الفئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **تعيين تنسيق الأرقام** + +توفر Aspose.Slides for Node.js عبر Java API بسيطة لإدارة تنسيق بيانات المخطط: + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. الحصول على مرجع الشريحة عن طريق الفهرس. +1. إضافة مخطط مع بيانات افتراضية إلى جانب أي نوع مطلوب (هذا المثال يستخدم **ChartType.ClusteredColumn**). +1. تعيين تنسيق الرقم المسبق من القيم المسبقة المتاحة. +1. التنقل عبر خلية بيانات المخطط في كل سلسلة مخطط وتعيين تنسيق رقم بيانات المخطط. +1. حفظ العرض التقديمي. +1. تعيين تنسيق رقم مخصص. +1. التنقل عبر خلية بيانات المخطط داخل كل سلسلة وتعيين تنسيق رقم مختلف لبيانات المخطط. +1. حفظ العرض التقديمي. +```javascript +// إنشاء مثيل من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى للعرض التقديمي + var slide = pres.getSlides().get_Item(0); + // إضافة مخطط عمود مجمع افتراضي + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // الوصول إلى مجموعة سلاسل المخطط + var series = chart.getChartData().getSeries(); + // التنقل عبر كل سلسلة مخطط + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // التنقل عبر كل خلية بيانات في السلسلة + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // تعيين تنسيق الرقم + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // حفظ العرض التقديمي + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +القيم المسبقة لتنسيق الأرقام الممكنة مع الفهرس المسبق الذي يمكن استخدامها موضحة أدناه: + +|**0**|عام| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **تعيين حدود دائرية لمنطقة المخطط** + +توفر Aspose.Slides for Node.js عبر Java دعمًا لتعيين منطقة المخطط. تمت إضافة الطريقتين [**hasRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#hasRoundedCorners--) و[**setRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#setRoundedCorners-boolean-) إلى فئة [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart). + +1. إنشاء كائن من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. إضافة مخطط إلى الشريحة. +3. تعيين نوع التعبئة ولون التعبئة للمخطط. +4. تعيين خاصية الزوايا الدائرية إلى True. +5. حفظ العرض التقديمي المعدل. + +مثال عينة مرفق أدناه. +```javascript +// إنشاء مثيل من فئة Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **الأسئلة المتداولة** + +**هل يمكنني تعيين تعبئات شبه شفافة للأعمدة/المناطق مع الحفاظ على الحدود غير شفافة؟** + +نعم. يتم تكوين شفافية التعبئة والحد الخارجي بشكل منفصل. هذا مفيد لتحسين قابلية قراءة الشبكة والبيانات في التصورات الكثيفة. + +**كيف يمكنني التعامل مع تسميات البيانات عندما تتداخل؟** + +خفض حجم الخط، تعطيل مكونات التسمية غير الضرورية (مثل الفئات)، ضبط إزاحة/موضع التسمية، إظهار التسميات للنقاط المختارة فقط إذا لزم الأمر، أو تغيير التنسيق إلى "القيمة + المفتاح". + +**هل يمكنني تطبيق تعبئات تدرجية أو نقشية على السلاسل؟** + +نعم. عادةً ما تتوفر كل من التعبئات الصلبة والتدرجات/النقوش. في التطبيق العملي، استخدم التدرجات باعتدال وتجنب التركيبات التي تقلل من التباين مع الشبكة والنص. \ No newline at end of file diff --git a/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..c43e065d0b --- /dev/null +++ b/ar/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: مخطط ثلاثي الأبعاد +type: docs +url: /ar/nodejs-java/3d-chart/ +--- + +## **ضبط خصائص RotationX و RotationY و DepthPercents لرسمة بيانية ثلاثية الأبعاد** + +توفر Aspose.Slides for Node.js عبر Java واجهة برمجة تطبيقات بسيطة لضبط هذه الخصائص. سيساعدك المقال التالي على كيفية ضبط خصائص مختلفة مثل **X,Y Rotation، DepthPercents** وغيرها. يوضح الكود النموذجي كيفية تعيين الخصائص المذكورة أعلاه. + +1. إنشاء مثيل من فئة [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. الوصول إلى الشريحة الأولى. +1. إضافة رسم بياني ببيانات افتراضية. +1. ضبط خصائص Rotation3D. +1. كتابة العرض المعدل إلى ملف PPTX. +```javascript +var pres = new aspose.slides.Presentation(); +try { + // الوصول إلى الشريحة الأولى + var slide = pres.getSlides().get_Item(0); + // إضافة مخطط ببيانات افتراضية + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // تحديد فهرس ورقة بيانات المخطط + var defaultWorksheetIndex = 0; + // جلب ورقة عمل بيانات المخطط + var fact = chart.getChartData().getChartDataWorkbook(); + // إضافة سلسلة + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // إضافة فئات + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // ضبط خصائص Rotation3D + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // أخذ السلسلة الثانية للمخطط + var series = chart.getChartData().getSeries().get_Item(1); + // الآن يتم تعبئة بيانات السلسلة + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // تعيين قيمة OverLap + series.getParentSeriesGroup().setOverlap(100); + // كتابة العرض التقديمي إلى القرص + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**ما أنواع الرسوم البيانية التي تدعم وضع 3D في Aspose.Slides؟** + +تدعم Aspose.Slides المتغيرات ثلاثية الأبعاد من الرسوم العمودية، بما في ذلك Column 3D و Clustered Column 3D و Stacked Column 3D و 100% Stacked Column 3D، إلى جانب الأنواع الثلاثية الأبعاد ذات الصلة التي يتم كشفها من خلال تعداد [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/). للحصول على قائمة دقيقة ومحدثة، راجع أعضاء [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) في مرجع API للإصدار المثبت لديك. + +**هل يمكن الحصول على صورة نقطية (raster) لرسمة بيانية ثلاثية الأبعاد لتضمينها في تقرير أو على الويب؟** + +نعم. يمكنك تصدير الرسم البياني إلى صورة عبر [chart API](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage) أو [تحويل الشريحة بالكامل](/slides/ar/nodejs-java/convert-powerpoint-to-png/) إلى صيغ مثل PNG أو JPEG. هذا مفيد عندما تحتاج إلى معاينة دقيقة بالبيكسل أو تريد تضمين الرسم البياني في مستندات أو لوحات معلومات أو صفحات ويب دون الحاجة إلى PowerPoint. + +**ما مدى كفاءة بناء وعرض الرسوم البيانية الثلاثية الكبيرة؟** + +تعتمد الكفاءة على حجم البيانات وتعقيد العرض البصري. للحصول على أفضل النتائج، حافظ على الحد الأدنى من تأثيرات 3D، وتجنب القوام الثقيل على الجدران ومناطق الرسم، قلل عدد نقاط البيانات لكل سلسلة عندما يكون ذلك ممكناً، وقم بالعرض على حجم إخراج مناسب (الدقة والأبعاد) ليتطابق مع شاشة العرض أو متطلبات الطباعة. \ No newline at end of file diff --git a/ar/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ar/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 9eff8ffb3e..fc3d0abf5f 100644 --- a/ar/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/ar/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,26 +1,26 @@ --- -title: أتمتة تعريب العروض التقديمية باستخدام Python -linktitle: تعريب العرض التقديمي +title: أتمتة توطين العروض التقديمية باستخدام بايثون +linktitle: توطين العروض التقديمية type: docs weight: 100 url: /ar/python-net/presentation-localization/ keywords: - تغيير اللغة -- تدقيق إملائي +- التدقيق الإملائي - معرف اللغة - PowerPoint -- عرض تقديمي +- العرض التقديمي - Python - Aspose.Slides -description: "أتمتة تعريب شرائح PowerPoint وOpenDocument في Python باستخدام Aspose.Slides، مع أمثلة عملية على الشيفرة ونصائح لتسريع الإطلاق العالمي." +description: "أتمتة توطين شرائح PowerPoint وOpenDocument في بايثون باستخدام Aspose.Slides، مع أمثلة شيفرة عملية ونصائح لتسريع النشر العالمي." --- -## **تغيير اللغة لعرض الشرائح ونص الشكل** -- إنشاء كائن من الفئة [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/) . -- الحصول على مرجع الشريحة باستخدام الفهرس الخاص بها. +## **تغيير اللغة للعرض ونص الشكل** +- إنشاء مثيل من فئة [عرض](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/) . +- الحصول على مرجع شريحة باستخدام فهرستها. - إضافة AutoShape من نوع مستطيل إلى الشريحة. - إضافة بعض النص إلى TextFrame. -- تعيين معرف اللغة (Language Id) للنص. +- تعيين معرف اللغة للنص. - حفظ العرض كملف PPTX. يتم توضيح تنفيذ الخطوات السابقة في المثال أدناه. @@ -36,16 +36,16 @@ with slides.Presentation("pres.pptx") as pres: ``` -## **الأسئلة المتكررة** +## **الأسئلة الشائعة** -**هل language_id يُفضي إلى ترجمة تلقائية للنص؟** +**هل يُؤدي معرف اللغة إلى ترجمة النص تلقائيًا؟** -لا. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) في Aspose.Slides يخزن اللغة لتدقيق الإملائي وإثبات القواعد، لكنه لا يترجم أو يغيّر محتوى النص. إنه بيانات وصفية تفهمها PowerPoint لأغراض التدقيق. +لا. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) في Aspose.Slides يخزن اللغة للتدقيق الإملائي والنحوي، ولكنه لا يترجم أو يغيّر محتوى النص. إنها بيانات وصفية تفهمها PowerPoint للتدقيق. -**هل language_id يؤثر على التجزئة واستخدام الفواصل السطرية أثناء العرض؟** +**هل يؤثر معرف اللغة على التجزيء إلى مقاطع والسطور أثناء العرض؟** -في Aspose.Slides، يُستخدم language_id لأغراض التدقيق. جودة التجزئة وتغليف الأسطر تعتمد أساساً على توفر [proper fonts](/slides/ar/python-net/powerpoint-fonts/) وإعدادات التخطيط/فواصل السطر للنظام الكتابي. لضمان عرض صحيح، احرص على توفير الخطوط المطلوبة، وعيّن [font substitution rules](/slides/ar/python-net/font-substitution/)، و/أو [embed fonts](/slides/ar/python-net/embedded-font/) في العرض. +في Aspose.Slides، [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) مخصص للتدقيق. تعتمد جودة التجزيء إلى مقاطع وتغليف الأسطر أساسًا على توفر [الخطوط المناسبة](/slides/ar/python-net/powerpoint-fonts/) وإعدادات التخطيط/فواصل الأسطر لنظام الكتابة. لضمان عرض صحيح، اجعل الخطوط المطلوبة متاحة، وضبط [قواعد استبدال الخطوط](/slides/ar/python-net/font-substitution/)، و/أو [تضمين الخطوط](/slides/ar/python-net/embedded-font/) في العرض. **هل يمكنني تعيين لغات مختلفة داخل فقرة واحدة؟** -نعم. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) يُطبق على مستوى جزء النص، لذا يمكن لفقرة واحدة أن تمزج بين عدة لغات بإعدادات تدقيق مختلفة. \ No newline at end of file +نعم. يُطبّق [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) على مستوى جزء النص، لذا يمكن لفقرة واحدة أن تحتوي على لغات متعددة مع إعدادات تدقيق متميزة. diff --git a/de/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/de/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 12d2eddbb9..7bb3541bb9 100644 --- a/de/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/de/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -3,19 +3,19 @@ title: Präsentationslokalisierung type: docs weight: 100 url: /de/net/presentation-localization/ -keywords: "Sprache ändern, Rechtschreibprüfung, Rechtschreibprüfung, Rechtschreibprüfer, PowerPoint-Präsentation, C#, Csharp, Aspose.Slides for .NET" -description: "Sprache in einer PowerPoint-Präsentation ändern oder prüfen. Text in C# oder .NET rechtschreibprüfen." +keywords: "Sprache ändern, Rechtschreibprüfung, Rechtschreibung prüfen, Rechtschreibprüfer, PowerPoint-Präsentation, C#, Csharp, Aspose.Slides für .NET" +description: "Sprache in PowerPoint-Präsentation ändern oder prüfen. Text in C# oder .NET rechtschreibprüfen" --- -## **Sprache für Präsentation und Text von Formen ändern** -- Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation)-Klasse. -- Rufen Sie die Referenz einer Folie über ihren Index ab. +## **Sprache für Präsentation und Text von Shape ändern** +- Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) . +- Holen Sie sich die Referenz einer Folie, indem Sie deren Index verwenden. - Fügen Sie der Folie eine AutoShape vom Typ Rechteck hinzu. - Fügen Sie dem TextFrame etwas Text hinzu. - Legen Sie die LanguageId für den Text fest. - Speichern Sie die Präsentation als PPTX-Datei. -Die Implementierung der obigen Schritte wird unten in einem Beispiel gezeigt. +Die Implementierung der obigen Schritte wird im folgenden Beispiel gezeigt. ```c# using (Presentation pres = new Presentation("test0.pptx")) { @@ -30,14 +30,14 @@ using (Presentation pres = new Presentation("test0.pptx")) ## **FAQ** -**Löst language_id eine automatische Textübersetzung aus?** +**Löst die LanguageId eine automatische Textübersetzung aus?** -Nein. [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) in Aspose.Slides speichert die Sprache für Rechtschreib- und Grammatikprüfung, übersetzt jedoch den Text nicht und ändert ihn nicht. Es handelt sich um Metadaten, die PowerPoint für die Prüfung versteht. +Nein. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) in Aspose.Slides speichert die Sprache für Rechtschreib- und Grammatikprüfung, übersetzt jedoch nicht den Textinhalt noch ändert ihn. Es handelt sich um Metadaten, die PowerPoint für die Korrektur versteht. -**Beeinflusst language_id die Silbentrennung und den Zeilenumbruch beim Rendern?** +**Beeinflusst die LanguageId die Silbentrennung und Zeilenumbrüche beim Rendern?** -In Aspose.Slides ist [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) für die Prüfung vorgesehen. Die Qualität der Silbentrennung und des Zeilenumbruchs hängt hauptsächlich von der Verfügbarkeit [proper fonts](/slides/de/net/powerpoint-fonts/) sowie von Layout‑/Zeilenumbruch‑Einstellungen für das Schriftsystem ab. Um ein korrektes Rendering sicherzustellen, stellen Sie die erforderlichen Schriften bereit, konfigurieren Sie [font substitution rules](/slides/de/net/font-substitution/) und/oder [embed fonts](/slides/de/net/embedded-font/) in die Präsentation. +In Aspose.Slides dient [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) der Korrektur. Die Qualität der Silbentrennung und der Zeilenumbruch hängen hauptsächlich von der Verfügbarkeit geeigneter Schriftarten und den Layout-/Zeilenumbruch‑Einstellungen für das Schriftsystem ab. Um ein korrektes Rendering sicherzustellen, stellen Sie die benötigten Schriftarten bereit, konfigurieren Sie [Schriftarten‑Substitutionsregeln](/slides/de/net/font-substitution/) und/oder [betten Sie Schriftarten ein](/slides/de/net/embedded-font/) in die Präsentation ein. **Kann ich innerhalb eines einzelnen Absatzes verschiedene Sprachen festlegen?** -Ja. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) wird auf Ebene des Textabschnitts angewendet, sodass ein einzelner Absatz mehrere Sprachen mit unterschiedlichen Prüfungseinstellungen mischen kann. \ No newline at end of file +Ja. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) wird auf Ebene des Textabschnitts angewendet, sodass ein einzelner Absatz mehrere Sprachen mit unterschiedlichen Korrektureinstellungen mischen kann. diff --git a/de/nodejs-java/developer-guide/3d-presentation/_index.md b/de/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..97c6b4bc02 --- /dev/null +++ b/de/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,225 @@ +--- +title: 3D-Präsentation +type: docs +weight: 232 +url: /de/nodejs-java/3d-presentation/ +--- + +## **Übersicht** + +Seit Aspose.Slides für Java 20.9 ist es möglich, 3D in Präsentationen zu erzeugen. PowerPoint‑3D ist ein Weg, Präsentationen Leben zu verleihen. Zeigen Sie reale Objekte mit einer 3D‑Präsentation, demonstrieren Sie das 3D‑Modell Ihres zukünftigen Geschäftsprojekts, das 3D‑Modell eines Gebäudes oder dessen Innenraum, das 3D‑Modell eines Spielcharakters oder einfach eine 3D‑Darstellung Ihrer Daten. + +PowerPoint‑3D‑Modelle können aus 2D‑Formen erstellt werden, indem solche Effekte darauf angewendet werden: 3D‑Drehung, 3D‑Tiefe und Extrusion, 3D‑Verlauf, 3D‑Text usw. Die Liste der auf Formen anwendbaren 3D‑Funktionen findet sich in der Klasse **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. Eine Instanz dieser Klasse erhalten Sie über: + +- **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** Methode zum Erzeugen eines PowerPoint‑3D‑Modells. +- **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** Methode zum Erzeugen von 3D‑Text (WordArt). + +Alle in **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** implementierten Effekte können sowohl für Formen als auch für Text verwendet werden. Werfen wir einen kurzen Blick auf die wichtigsten Methoden der Klasse **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. Im nächsten Beispiel erstellen wir eine 2D‑Rechteckform mit Text darauf. Indem wir die Kameraperspektive auf die Form setzen, ändern wir ihre Drehung und lassen sie wie ein 3D‑Modell aussehen. Durch Festlegen eines flachen Lichts und dessen Richtung zur Oberseite des 3D‑Modells verleihen wir dem Modell mehr Volumen. Geänderte Materialien, Extrusionshöhe und Farbe lassen das 3D‑Modell lebendiger wirken. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Hier ist das resultierende 3D‑Modell: + +![todo:image_alt_text](img_01_01.png) + +## **3D‑Drehung** + +Die Drehung eines 3D‑Modells in PowerPoint kann über das Menü erfolgen: + +![todo:image_alt_text](img_02_01.png) + +Um ein 3D‑Modell mit der Aspose.Slides‑API zu drehen, verwenden Sie die Methode **[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)**, setzen die Drehung der Kamera relativ zur 3D‑Form: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... weitere 3D-Szenenparameter setzen +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **3D‑Tiefe und Extrusion** + +Die Methoden **[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** und **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** werden verwendet, um eine Extrusion auf einer Form zu erzeugen: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); +// ... weitere 3D‑Szenenparameter setzen +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +In PowerPoint wird die Tiefe einer Form über folgendes Menü eingestellt: + +![todo:image_alt_text](img_02_02.png) + +## **3D‑Verlauf** + +Ein 3D‑Verlauf kann einer PowerPoint‑3D‑Form mehr Volumen verleihen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +So sieht das aus: + +![todo:image_alt_text](img_02_03.png) + +Sie können auch einen Bildverlauf erstellen: +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. Einrichtung von 3D: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* Eigenschaften +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +Hier das Ergebnis: + +![todo:image_alt_text](img_02_04.png) + +## **3D‑Text (WordArt)** + +Um 3D‑Text (WordArt) zu erstellen, gehen Sie wie folgt vor: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // Einrichten des WordArt-Transformations-Effekts "Arch Up" + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Hier das Ergebnis: + +![todo:image_alt_text](img_02_05.png) + +## **FAQ** + +**Werden 3D‑Effekte beim Exportieren einer Präsentation in Bilder/PDF/HTML beibehalten?** + +Ja. Die Slides‑3D‑Engine rendert 3D‑Effekte beim Export in unterstützte Formate ([images](/slides/de/nodejs-java/convert-powerpoint-to-png/), [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/), [HTML](/slides/de/nodejs-java/convert-powerpoint-to-html/), usw.). + +**Kann ich die „effektiven“ (finalen) 3D‑Parameterwerte abrufen, die Themen, Vererbung usw. berücksichtigen?** + +Ja. Slides bietet APIs zum **[read effective values](/slides/de/nodejs-java/shape-effective-properties/)** (einschließlich für 3D — Beleuchtung, Abschrägungen usw.), sodass Sie die letztlich angewendeten Einstellungen sehen können. + +**Funktionieren 3D‑Effekte beim Konvertieren einer Präsentation in ein Video?** + +Ja. Beim **[generating frames for the video](/slides/de/nodejs-java/convert-powerpoint-to-video/)** werden 3D‑Effekte genauso gerendert wie bei **[exported images](/slides/de/nodejs-java/convert-powerpoint-to-png/)**. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..659e73dbc3 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: OpenOffice ODP konvertieren +type: docs +weight: 10 +url: /de/nodejs-java/convert-openoffice-odp/ +keywords: "ODP zu PDF konvertieren, ODP zu HTML konvertieren, ODP zu TIFF in JavaScript" +description: "ODP zu PDF konvertieren, ODP zu PPT, ODP zu PPTX, ODP zu HTML in JavaScript" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) ermöglicht das Konvertieren von OpenOffice ODP‑Präsentationen in viele Formate. Die API zum Konvertieren von ODP in andere Formate ist dieselbe wie für PowerPoint‑Formate. Sie können die folgenden Beispiele verwenden, um ODP zu konvertieren, indem Sie einfach die Quelldatei der ODP‑Präsentation ändern: + +- [ODP nach HTML konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [ODP nach PDF konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [ODP nach TIFF konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [ODP nach SWF Flash konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [ODP nach XPS konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [ODP nach PDF mit Notizen konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [ODP nach TIFF mit Notizen konvertieren](/slides/de/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **FAQ** + +**Was passiert, wenn sich die Formatierung meiner ODP‑Datei nach der Konvertierung ändert?** + +ODP und PowerPoint verwenden unterschiedliche Präsentationsmodelle, und manche Elemente – wie Tabellen, benutzerdefinierte Schriftarten oder Füllstile – werden möglicherweise nicht exakt gleich dargestellt. Es wird empfohlen, die Ausgabe zu überprüfen und bei Bedarf das Layout oder die Formatierung im Code anzupassen. + +**Benötige ich OpenOffice oder LibreOffice, um die ODP‑Konvertierung zu verwenden?** + +Nein, Aspose.Slides ist eine eigenständige Bibliothek und erfordert nicht, dass OpenOffice oder LibreOffice auf Ihrem System installiert ist. + +**Kann ich das Ausgabeformat während der ODP‑Konvertierung anpassen (z. B. PDF‑Optionen festlegen)?** + +Ja, Aspose.Slides bietet umfangreiche Optionen zur Anpassung der Ausgabe. Beispielsweise können Sie beim Speichern als PDF Kompression, Bildqualität, Textdarstellung und mehr über die [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)‑Klasse steuern. + +**Eignet sich Aspose.Slides für serverseitige oder cloudbasierte ODP‑Verarbeitung?** + +Ja. Aspose.Slides ist für den Einsatz sowohl auf Desktop‑ als auch auf Serverumgebungen konzipiert, einschließlich cloudbasierter Plattformen wie Azure, AWS und Docker‑Containern, ohne UI‑Abhängigkeiten. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..abb78e9a92 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: ODP in PPTX konvertieren +type: docs +weight: 10 +url: /de/nodejs-java/convert-odp-to-pptx/ +--- + +## **ODP in PPTX/PPT-Präsentation konvertieren** +Aspose.Slides für Node.js via Java bietet die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) an, die eine Präsentationsdatei darstellt. Die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) kann nun ebenfalls über den Konstruktor [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) auf ODP zugreifen, wenn das Objekt instanziiert wird. Das folgende Beispiel zeigt, wie eine ODP‑Präsentation in eine PPTX‑Präsentation konvertiert wird. +```javascript +// ODP-Datei öffnen +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// ODP-Präsentation im PPTX-Format speichern +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Live‑Beispiel** +Sie können die Web‑App [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) besuchen, die mit **Aspose.Slides API** erstellt wurde. Die App zeigt, wie die ODP‑zu‑PPTX‑Konvertierung mit der Aspose.Slides API implementiert werden kann. + +## **FAQ** + +**Muss ich Microsoft PowerPoint oder LibreOffice installieren, um ODP in PPTX zu konvertieren?** + +Nein. Aspose.Slides funktioniert eigenständig und benötigt keine Drittanbieter‑Anwendungen zum Lesen oder Schreiben von ODP/PPTX. + +**Werden Master‑Folien, Layouts und Designs während der Konvertierung beibehalten?** + +Ja. Die Bibliothek verwendet ein vollständiges Präsentations‑Objektmodell und behält die Struktur, einschließlich Master‑Folien und Layouts, bei, sodass das Design nach der Konvertierung korrekt bleibt. + +**Kann ich passwortgeschützte ODP‑Dateien konvertieren?** + +Ja. Aspose.Slides unterstützt das Erkennen von Schutz, das Öffnen und die Arbeit mit [protected presentations](/slides/de/nodejs-java/password-protected-presentation/) (einschließlich ODP), wenn Sie das Passwort angeben, sowie das Konfigurieren von Verschlüsselung und den Zugriff auf Dokumenteneigenschaften. + +**Ist Aspose.Slides geeignet für Cloud‑ oder REST‑basierte Konvertierungsdienste?** + +Ja. Sie können die lokale Bibliothek in Ihrem eigenen Backend oder [Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/) (REST‑API) verwenden; beide Optionen unterstützen die ODP → PPTX‑Konvertierung. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..77d6066766 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,63 @@ +--- +title: Präsentationen im Handout-Modus in JavaScript konvertieren +type: docs +weight: 150 +url: /de/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- PowerPoint konvertieren +- Handout-Modus +- Handout +- PowerPoint +- PPT +- PPTX +- Präsentation +- Node.js +- JavaScript +- Aspose.Slides +description: "Präsentationen im Handout-Modus in JavaScript konvertieren" +--- + +## **Handout-Modus-Export** + +Aspose.Slides bietet die Möglichkeit, Präsentationen in verschiedene Formate zu konvertieren, einschließlich der Erstellung von Handouts zum Drucken im Handout-Modus. Dieser Modus ermöglicht es Ihnen, zu konfigurieren, wie mehrere Folien auf einer einzigen Seite angezeigt werden, was ihn für Konferenzen, Seminare und andere Veranstaltungen nützlich macht. Sie können diesen Modus aktivieren, indem Sie die `setSlidesLayoutOptions`-Methode in den Klassen [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) und [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) festlegen. + +Um den Handout-Modus zu konfigurieren, verwenden Sie das Objekt [HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/), das bestimmt, wie viele Folien auf einer einzelnen Seite platziert werden und weitere Anzeigeparameter. + +Unten finden Sie ein Codebeispiel, das zeigt, wie eine Präsentation in PDF im Handout-Modus konvertiert wird. +```js +// Präsentation laden. +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// Exportoptionen festlegen. +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 4 Folien auf einer Seite horizontal +slidesLayoutOptions.setPrintSlideNumbers(true); // Folienzahlen drucken +slidesLayoutOptions.setPrintFrameSlide(true); // Rahmen um Folien drucken +slidesLayoutOptions.setPrintComments(false); // keine Kommentare + +let pdfOptions = new asposeSlides.PdfOptions(); +pdfOptions.setSlidesLayoutOptions(slidesLayoutOptions); + +// Präsentation mit dem gewählten Layout als PDF exportieren. +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} +Beachten Sie, dass die `setSlidesLayoutOptions`-Methode nur für bestimmte Ausgabeformate verfügbar ist, wie PDF, HTML, TIFF und beim Rendern als Bilder. +{{% /alert %}} + +## **FAQ** + +**Wie viele Folien‑Vorschaubilder maximal pro Seite im Handout‑Modus?** + +Aspose.Slides unterstützt [Voreinstellungen](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) bis zu 9 Vorschaubilder pro Seite mit horizontaler oder vertikaler Anordnung: 1, 2, 3, 4 (horizontal/vertikal), 6 (horizontal/vertikal) und 9 (horizontal/vertikal). + +**Kann ich ein benutzerdefiniertes Raster, z. B. 5 oder 8 Folien pro Seite, definieren?** + +Nein. Die Anzahl und Anordnung der Vorschaubilder wird streng durch die Aufzählung [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) gesteuert; beliebige Layouts werden nicht unterstützt. + +**Kann ich ausgeblendete Folien in die Handout‑Ausgabe einbeziehen?** + +Ja. Verwenden Sie die `setShowHiddenSlides`-Methode in den Exporteinstellungen für das Zielformat, z. B. [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) oder [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..7cb45dc496 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,60 @@ +--- +title: PowerPoint in animiertes GIF konvertieren +type: docs +weight: 65 +url: /de/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "PowerPoint in animiertes GIF konvertieren, PPT zu GIF, PPTX zu GIF" +description: "PowerPoint in animiertes GIF konvertieren: PPT zu GIF, PPTX zu GIF, mit Aspose.Slides API." +--- + +## **Präsentationen mit Standardeinstellungen in animiertes GIF konvertieren** + +Dieser Beispielcode in JavaScript zeigt, wie Sie eine Präsentation mit den Standard‑Einstellungen in ein animiertes GIF konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Das animierte GIF wird mit den Standardparametern erstellt. + +{{% alert title="TIPP" color="primary" %}} +Wenn Sie die Parameter für das GIF anpassen möchten, können Sie die [GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions)‑Klasse verwenden. Siehe den Beispielcode unten. +{{% /alert %}} + +## **Präsentationen mit benutzerdefinierten Einstellungen in animiertes GIF konvertieren** + +Dieser Beispielcode zeigt, wie Sie eine Präsentation mit benutzerdefinierten Einstellungen in JavaScript in ein animiertes GIF konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// die Größe des resultierenden GIFs + gifOptions.setDefaultDelay(2000);// wie lange jede Folie angezeigt wird, bis sie zur nächsten wechselt + gifOptions.setTransitionFps(35);// FPS erhöhen für bessere Übergangsanimationsqualität + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +Vielleicht interessieren Sie sich für einen KOSTENLOSEN [Text‑zu‑GIF](https://products.aspose.app/slides/text-to-gif)‑Konverter von Aspose. +{{% /alert %}} + +## **FAQ** + +**Was ist, wenn die in der Präsentation verwendeten Schriften nicht auf dem System installiert sind?** +Installieren Sie die fehlenden Schriften oder [fallback fonts konfigurieren](/slides/de/nodejs-java/powerpoint-fonts/). Aspose.Slides wird Ersatzschriften verwenden, das Aussehen kann jedoch abweichen. Für Markenauftritte stellen Sie stets sicher, dass die benötigten Schriftarten explizit verfügbar sind. + +**Kann ich ein Wasserzeichen auf die GIF‑Frames legen?** +Ja. [Ein halbtransparentes Objekt/Logo hinzufügen](/slides/de/nodejs-java/watermark/) zur Master‑Folien oder zu einzelnen Folien vor dem Export – das Wasserzeichen erscheint auf jedem Frame. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..4588f22b73 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,413 @@ +--- +title: PowerPoint zu HTML in JavaScript konvertieren +linktitle: Powerpoint zu HTML konvertieren +type: docs +weight: 30 +url: /de/nodejs-java/convert-powerpoint-to-html/ +keywords: "Java PowerPoint zu HTML, PowerPoint-Präsentation konvertieren, PPTX, PPT, PPT zu HTML, PPTX zu HTML, PowerPoint zu HTML, PowerPoint als HTML speichern, PPT als HTML speichern, PPTX als HTML speichern, Java, Aspose.Slides, HTML-Export" +description: "PowerPoint in HTML mit JavaScript konvertieren. PPTX oder PPT in JavaScript als HTML speichern. Folien in JavaScript als HTML speichern." +--- + +## **Übersicht** + +Dieser Artikel erklärt, wie man PowerPoint‑Präsentationen mit JavaScript in das HTML‑Format konvertiert. Er behandelt die folgenden Themen. + +- PowerPoint mit JavaScript in HTML konvertieren +- PPT mit JavaScript in HTML konvertieren +- PPTX mit JavaScript in HTML konvertieren +- ODP mit JavaScript in HTML konvertieren +- PowerPoint‑Folien mit JavaScript in HTML konvertieren + +## **Java PowerPoint zu HTML** + +Für Beispielcode in JavaScript zur Konvertierung von PowerPoint zu HTML siehe den Abschnitt unten, d.h.[PowerPoint zu HTML konvertieren](#convert-powerpoint-to-html). Der Code kann mehrere Formate wie PPT, PPTX und ODP im Presentation‑Objekt laden und in das HTML‑Format speichern. + +## **Über die PowerPoint‑zu‑HTML‑Konvertierung** +Mit [**Aspose.Slides für Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) können Anwendungen und Entwickler eine PowerPoint‑Präsentation in HTML konvertieren: **PPTX zu HTML** oder **PPT zu HTML**. + +**Aspose.Slides** bietet viele Optionen (meist aus der Klasse [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) ) die den PowerPoint‑zu‑HTML‑Konvertierungsprozess definieren: + +* Eine komplette PowerPoint‑Präsentation in HTML konvertieren. +* Eine bestimmte Folie einer PowerPoint‑Präsentation in HTML konvertieren. +* Präsentationsmedien (Bilder, Videos usw.) in HTML konvertieren. +* Eine PowerPoint‑Präsentation in responsives HTML konvertieren. +* Eine PowerPoint‑Präsentation in HTML konvertieren, wobei Sprecher‑Notizen ein‑ oder ausgeschlossen werden. +* Eine PowerPoint‑Präsentation in HTML konvertieren, wobei Kommentare ein‑ oder ausgeschlossen werden. +* Eine PowerPoint‑Präsentation in HTML konvertieren, wobei originale oder eingebettete Schriftarten verwendet werden. +* Eine PowerPoint‑Präsentation in HTML konvertieren, wobei der neue CSS‑Stil verwendet wird. + +{{% alert color="primary" %}} + +Mit seiner eigenen API hat Aspose kostenlose [Präsentation‑zu‑HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html)‑Konverter entwickelt: [PPT zu HTML](https://products.aspose.app/slides/conversion/ppt-to-html), [PPTX zu HTML](https://products.aspose.app/slides/conversion/pptx-to-html), [ODP zu HTML](https://products.aspose.app/slides/conversion/odp-to-html), usw. + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +Vielleicht möchten Sie sich weitere [kostenlose Konverter von Aspose](https://products.aspose.app/slides/conversion) ansehen. + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +Außer den hier beschriebenen Konvertierungsprozessen unterstützt Aspose.Slides auch die folgenden Konvertierungsoperationen im Zusammenhang mit dem HTML‑Format: + +* [HTML zu Bild](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML zu XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML zu TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + + +## **PowerPoint zu HTML konvertieren** +Mit Aspose.Slides können Sie eine komplette PowerPoint‑Präsentation wie folgt in HTML konvertieren: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)‑Klasse. +2. Verwenden Sie die [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-)‑Methode, um das Objekt als HTML‑Datei zu speichern. + +Dieser Code zeigt, wie Sie ein PowerPoint in JavaScript nach HTML konvertieren: +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // Speichern der Präsentation als HTML + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + + +## **PowerPoint zu responsive HTML konvertieren** +Aspose.Slides stellt die Klasse [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController) zur Verfügung, mit der Sie responsive HTML‑Dateien erzeugen können. Dieser Code zeigt, wie Sie eine PowerPoint‑Präsentation in JavaScript zu responsive HTML konvertieren: +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // Speichern der Präsentation als HTML + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint zu HTML mit Notizen konvertieren** +Dieser Code zeigt, wie Sie ein PowerPoint in JavaScript zu HTML mit Notizen konvertieren: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Speichern von Notizseiten + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint zu HTML mit Original‑Schriftarten konvertieren** + +Aspose.Slides stellt die Klasse [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) zur Verfügung, die es ermöglicht, beim Konvertieren einer Präsentation in HTML alle Schriftarten einzubetten. + +Um zu verhindern, dass bestimmte Schriftarten eingebettet werden, können Sie dem parametrisierten Konstruktor der Klasse [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) ein Array von Schriftartnamen übergeben. Beliebte Schriftarten wie Calibri oder Arial müssen nicht eingebettet werden, wenn sie in einer Präsentation verwendet werden, da die meisten Systeme diese bereits enthalten. Wenn diese Schriftarten eingebettet werden, wird das resultierende HTML‑Dokument unnötig groß. + +Die Klasse [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) unterstützt Vererbung und stellt die Methode [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-) bereit, die überschrieben werden soll. +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // Standard-Präsentationsschriften ausschließen + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint zu HTML mit hochwertigen Bildern konvertieren** + +Standardmäßig erzeugt Aspose.Slides beim Konvertieren von PowerPoint zu HTML ein kleines HTML mit Bildern bei 72 DPI und entfernten beschnittenen Bereichen. Um HTML‑Dateien mit höherwertigen Bildern zu erhalten, müssen Sie den Wert `96` an die Methode `setPicturesCompression` der Klasse `HtmlOptions` übergeben (d.h. `PicturesCompression.Dpi96`) oder höhere [Werte](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PicturesCompression). + +Der JavaScript‑Code zeigt, wie Sie eine PowerPoint‑Präsentation zu HTML konvertieren und dabei hochwertige Bilder mit 150 DPI erhalten (d.h. `PicturesCompression.Dpi150`): +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Dieser JavaScript‑Code zeigt, wie Sie HTML mit Bildern in voller Qualität ausgeben: +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Folien zu HTML konvertieren** +Um eine bestimmte Folie in einem PowerPoint zu HTML zu konvertieren, müssen Sie dieselbe Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) (die zum Konvertieren kompletter Präsentationen in HTML verwendet wird) instanziieren und dann die Methode [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) benutzen, um die Datei als HTML zu speichern. Die Klasse [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) kann verwendet werden, um zusätzliche Konvertierungsoptionen anzugeben: + +Der JavaScript‑Code zeigt, wie Sie eine Folie einer PowerPoint‑Präsentation zu HTML konvertieren: +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // Datei speichern + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **CSS und Bilder beim Exportieren zu HTML speichern** +Mit neuen CSS‑Stildateien können Sie das Aussehen der aus dem PowerPoint‑zu‑HTML‑Konvertierungsprozess resultierenden HTML‑Datei leicht ändern. + +Der JavaScript‑Code in diesem Beispiel zeigt, wie Sie überschreibbare Methoden verwenden, um ein benutzerdefiniertes HTML‑Dokument mit einem Link zu einer CSS‑Datei zu erstellen: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Sie müssen CustomHeaderAndFontsController in Java implementieren, kompilieren und in das Modul‑Verzeichnis \aspose.slides.via.java\lib\ hinzufügen. +Dieser Java‑Code zeigt, wie `CustomHeaderAndFontsController` implementiert wird: +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // Benutzerdefinierte Header-Vorlage + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **Alle Schriftarten verlinken beim Konvertieren einer Präsentation zu HTML** +Wenn Sie Schriftarten nicht einbetten möchten (um die Größe des resultierenden HTML nicht zu erhöhen), können Sie alle Schriftarten verlinken, indem Sie Ihre eigene Version von `LinkAllFontsHtmlController` implementieren. + +Der JavaScript‑Code zeigt, wie Sie ein PowerPoint zu HTML konvertieren, dabei alle Schriftarten verlinken und "Calibri" sowie "Arial" ausschließen (da sie bereits im System vorhanden sind): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Standard-Präsentationsschriften ausschließen + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Sie müssen LinkAllFontsHtmlController in Java implementieren, kompilieren und in das Modul‑Verzeichnis \aspose.slides.via.java\lib\ hinzufügen. +Dieser Java‑Code zeigt, wie `LinkAllFontsHtmlController` implementiert wird: +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // möglicherweise muss der Pfad bereinigt werden + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **PowerPoint zu responsive HTML konvertieren** +Der JavaScript‑Code zeigt, wie Sie eine PowerPoint‑Präsentation zu responsive HTML konvertieren: +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Medien‑Dateien zu HTML exportieren** +Mit Aspose.Slides für Node.js via Java können Sie Mediendateien wie folgt exportieren: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)‑Klasse. +2. Holen Sie sich eine Referenz zur Folie. +3. Fügen Sie ein Video zur Folie hinzu. +4. Schreiben Sie die Präsentation als HTML‑Datei. + +Der JavaScript‑Code zeigt, wie Sie ein Video zur Präsentation hinzufügen und anschließend als HTML speichern: +```javascript +// Präsentation laden +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // HTML-Optionen festlegen + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // Datei speichern + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Wie ist die Leistung von Aspose.Slides beim Konvertieren mehrerer Präsentationen zu HTML?** + +Die Leistung hängt von Größe und Komplexität der Präsentationen ab. Aspose.Slides ist für Batch‑Operationen sehr effizient und skalierbar. Um optimale Leistung beim Konvertieren vieler Präsentationen zu erzielen, wird empfohlen, nach Möglichkeit Multithreading oder Parallelverarbeitung einzusetzen. + +**Unterstützt Aspose.Slides den Export von Hyperlinks zu HTML?** + +Ja, Aspose.Slides unterstützt den Export eingebetteter Hyperlinks nach HTML vollständig. Beim Konvertieren von Präsentationen in das HTML‑Format werden Hyperlinks automatisch erhalten und bleiben anklickbar. + +**Gibt es ein Limit für die Anzahl der Folien beim Konvertieren von Präsentationen zu HTML?** + +Es gibt kein Limit für die Folienanzahl bei der Verwendung von Aspose.Slides. Sie können Präsentationen jeder Größe konvertieren. Bei Präsentationen mit einer sehr großen Folienzahl kann die Leistung jedoch von den verfügbaren Ressourcen Ihres Servers oder Systems abhängen. + +{{% /alert %}} \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..fd66ca8697 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,144 @@ +--- +title: PowerPoint zu JPG konvertieren +type: docs +weight: 60 +url: /de/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "PowerPoint zu JPG konvertieren, PPTX zu JPEG, PPT zu JPEG" +description: "PowerPoint zu JPG konvertieren: PPT zu JPG, PPTX zu JPG in JavaScript" +--- + +## **Über die PowerPoint-zu-JPG-Konvertierung** +Mit [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) können Sie PowerPoint PPT oder PPTX Präsentationen in JPG Bild konvertieren. Es ist ebenfalls möglich, PPT/PPTX in JPEG, PNG oder SVG zu konvertieren. Mit diesen Funktionen lässt sich leicht ein eigener Präsentations Viewer implementieren und das Vorschaubild für jede Folie erstellen. Dies kann nützlich sein, wenn Sie Folien vor dem Kopieren schützen oder die Präsentation im Nurlese-Modus demonstrieren möchten. Aspose.Slides ermöglicht die Konvertierung der gesamten Präsentation oder einer einzelnen Folie in Bildformate. + +{{% alert color="primary" %}} + +Um zu sehen, wie Aspose.Slides PowerPoint in JPG-Bilder konvertiert, können Sie diese kostenlosen Online-Konverter ausprobieren: PowerPoint [PPTX to JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) und [PPT to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg). + +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **PowerPoint PPT/PPTX in JPG konvertieren** +Hier sind die Schritte, um PPT/PPTX in JPG zu konvertieren: + +1. Erstellen Sie eine Instanz vom Typ [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie das Folienobjekt vom Typ [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) aus der Sammlung [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--). +3. Erstellen Sie das Vorschaubild jeder Folie und konvertieren Sie es anschließend in JPG. Die Methode [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) wird verwendet, um ein Vorschaubild einer Folie zu erhalten; sie gibt ein [Imagess](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images)-Objekt zurück. Die Methode [getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) muss vom gewünschten [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide)-Objekt aufgerufen werden, wobei die Skalierungswerte des resultierenden Vorschaubildes an die Methode übergeben werden. +4. Nachdem Sie das Folien-Vorschaubild erhalten haben, rufen Sie die Methode [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) vom Vorschaubild-Objekt auf. Übergeben Sie dabei den gewünschten Dateinamen und das Bildformat. + +{{% alert color="primary" %}} + +**Hinweis**: Die PPT/PPTX-zu-JPG-Konvertierung unterscheidet sich von der Konvertierung zu anderen Formaten in der Aspose.Slides API. Für andere Formate verwenden Sie normalerweise die Methode [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-), hier benötigen Sie jedoch die Methode [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)). + +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Erstellt ein Bild in voller Größe + var slideImage = sld.getImage(1.0, 1.0); + // Speichert das Bild auf der Festplatte im JPEG-Format + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint PPT/PPTX in JPG mit benutzerdefinierten Abmessungen konvertieren** +Um die Abmessungen des resultierenden Vorschaubildes und JPG-Bildes zu ändern, können Sie die Werte *ScaleX* und *ScaleY* über die Methode [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) übergeben: +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // Definiert Abmessungen + var desiredX = 1200; + var desiredY = 800; + // Erhält skalierte Werte von X und Y + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Erstellt ein Bild in voller Größe + var slideImage = sld.getImage(ScaleX, ScaleY); + // Speichert das Bild auf der Festplatte im JPEG-Format + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Kommentare rendern, wenn die Präsentation als Bild gespeichert wird** +Aspose.Slides für Node.js via Java bietet eine Funktion, mit der Sie Kommentare in den Folien einer Präsentation rendern können, wenn Sie diese Folien in Bilder konvertieren. Dieser JavaScript-Code demonstriert die Vorgehensweise: +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose stellt eine [KOSTENLOSE Collage-Web-App](https://products.aspose.app/slides/collage) bereit. Mit diesem Online-Dienst können Sie [JPG zu JPG](https://products.aspose.app/slides/collage/jpg) oder PNG zu PNG Bilder zusammenführen, [Foto-Raster](https://products.aspose.app/slides/collage/photo-grid) erstellen und vieles mehr. + +Mit den gleichen in diesem Artikel beschriebenen Prinzipien können Sie Bilder von einem Format in ein anderes konvertieren. Weitere Informationen finden Sie auf diesen Seiten: Konvertieren Sie [Bild zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); Konvertieren Sie [JPG zu Bild](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); Konvertieren Sie [JPG zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), Konvertieren Sie [PNG zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); Konvertieren Sie [PNG zu SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), Konvertieren Sie [SVG zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Siehe auch** + +Weitere Optionen zum Konvertieren von PPT/PPTX in ein Bild finden Sie z. B. unter: + +- [PPT/PPTX zu SVG Konvertierung](/slides/de/nodejs-java/render-a-slide-as-an-svg-image/). + +## **FAQ** + +**Unterstützt diese Methode die Stapelkonvertierung?** + +Ja, Aspose.Slides ermöglicht die Stapelkonvertierung mehrerer Folien zu JPG in einem einzigen Vorgang. + +**Unterstützt die Konvertierung SmartArt, Diagramme und andere komplexe Objekte?** + +Ja, Aspose.Slides rendert alle Inhalte, einschließlich SmartArt, Diagramme, Tabellen, Formen und mehr. Die Rendergenauigkeit kann jedoch im Vergleich zu PowerPoint leicht variieren, insbesondere bei benutzerdefinierten oder fehlenden Schriftarten. + +**Gibt es Einschränkungen hinsichtlich der Anzahl der verarbeitbaren Folien?** + +Aspose.Slides selbst legt keine strengen Beschränkungen für die Anzahl der zu verarbeitenden Folien fest. Allerdings können bei großen Präsentationen oder hochauflösenden Bildern Speicher-Out-of-Memory-Fehler auftreten. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..02003db1ac --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,120 @@ +--- +title: PowerPoint in JavaScript zu Markdown konvertieren +type: docs +weight: 140 +url: /de/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "PowerPoint zu Markdown konvertieren, ppt zu md konvertieren, PowerPoint, PPT, PPTX, Präsentation, Markdown, Java, Aspose.Slides für Node.js via Java" +description: "PowerPoint in JavaScript zu Markdown konvertieren" +--- + +{{% alert color="info" %}} + +Unterstützung für die Konvertierung von PowerPoint zu Markdown wurde in [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/) implementiert. + +{{% /alert %}} + +{{% alert color="warning" %}} + +Der Export von PowerPoint zu Markdown erfolgt standardmäßig **ohne Bilder**. Wenn Sie ein PowerPoint-Dokument mit Bildern exportieren möchten, müssen Sie `markdownSaveOptions.setExportType(MarkdownExportType.Visual)` aufrufen und außerdem den `BasePath` festlegen, in dem die im Markdown‑Dokument referenzierten Bilder gespeichert werden. + +{{% /alert %}} + +## **PowerPoint zu Markdown konvertieren** + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klasse, um ein Präsentationsobjekt zu repräsentieren. +2. Verwenden Sie die [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) Methode, um das Objekt als Markdown‑Datei zu speichern. + +Dieser JavaScript‑Code zeigt, wie Sie PowerPoint zu Markdown konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint zu Markdown‑Variante konvertieren** + +Aspose.Slides ermöglicht die Konvertierung von PowerPoint zu Markdown (mit Grundsyntax), CommonMark, GitHub‑flavoured Markdown, Trello, XWiki, GitLab und 17 weiteren Markdown‑Varianten. + +Dieser JavaScript‑Code zeigt, wie Sie PowerPoint zu CommonMark konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Die 23 unterstützten Markdown‑Varianten sind [unter der Aufzählung Flavor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) aus der Klasse [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) aufgelistet. + +## **Präsentation mit Bildern zu Markdown konvertieren** + +Die Klasse [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) bietet Eigenschaften und Aufzählungen, mit denen Sie bestimmte Optionen oder Einstellungen für die resultierende Markdown‑Datei festlegen können. Der Enum [MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/) kann auf Werte gesetzt werden, die bestimmen, wie Bilder dargestellt oder verarbeitet werden: `Sequential`, `TextOnly`, `Visual`. + +### **Bilder sequenziell konvertieren** + +Wenn Sie möchten, dass die Bilder im resultierenden Markdown nacheinander einzeln erscheinen, müssen Sie die Option **Sequential** wählen. Dieser JavaScript‑Code zeigt, wie Sie eine Präsentation mit Bildern zu Markdown konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Bilder visuell konvertieren** + +Wenn Sie möchten, dass die Bilder im resultierenden Markdown zusammen erscheinen, müssen Sie die Option **Visual** wählen. In diesem Fall werden die Bilder im aktuellen Verzeichnis der Anwendung gespeichert (und im Markdown‑Dokument wird ein relativer Pfad dafür erstellt), oder Sie können einen gewünschten Pfad und Ordnernamen angeben. + +Dieser JavaScript‑Code demonstriert die Vorgehensweise: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Bleiben Hyperlinks beim Export nach Markdown erhalten?** + +Ja. Text-[Hyperlinks](/slides/de/nodejs-java/manage-hyperlinks/) werden als Standard‑Markdown‑Links beibehalten. Folien-[Übergänge](/slides/de/nodejs-java/slide-transition/) und -[Animationen](/slides/de/nodejs-java/powerpoint-animation/) werden nicht konvertiert. + +**Kann ich die Konvertierung beschleunigen, indem ich sie in mehreren Threads ausführe?** + +Sie können die Verarbeitung über Dateien hinweg parallelisieren, jedoch sollten Sie nicht dieselbe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Instanz über Threads hinweg teilen. Verwenden Sie separate Instanzen/Prozesse pro Datei, um Konflikte zu vermeiden. + +**Was passiert mit den Bildern – wo werden sie gespeichert und sind die Pfade relativ?** + +[Bilder](/slides/de/nodejs-java/image/) werden in einen eigenen Ordner exportiert, und die Markdown‑Datei verweist standardmäßig mit relativen Pfaden auf sie. Sie können den Basis‑Ausgabepfad und den Asset‑Ordnernamen konfigurieren, um eine konsistente Repository‑Struktur beizubehalten. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..62bc126880 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,331 @@ +--- +title: PPT- und PPTX-Dateien in PDF konvertieren in JavaScript [Erweiterte Funktionen enthalten] +linktitle: PPT und PPTX in PDF konvertieren +type: docs +weight: 40 +url: /de/nodejs-java/convert-powerpoint-to-pdf/ +keywords: +- PowerPoint konvertieren +- Präsentation konvertieren +- PowerPoint zu PDF +- Präsentation zu PDF +- PPT zu PDF +- PPT zu PDF konvertieren +- PPTX zu PDF +- PPTX zu PDF konvertieren +- ODP zu PDF +- ODP zu PDF konvertieren +- PowerPoint als PDF speichern +- PDF/A1a +- PDF/A1b +- PDF/UA +- JavaScript +- Node.js +- Aspose.Slides für Node.js via Java +description: "Erfahren Sie, wie Sie PPT-, PPTX- und ODP-Präsentationen in PDF in JavaScript mit Aspose.Slides konvertieren. Implementieren Sie erweiterte Funktionen wie Passwortschutz, Compliance-Standards und benutzerdefinierte Optionen für hochwertige, barrierefreie PDF-Dokumente." +--- + +## **Übersicht** + +Die Konvertierung von PowerPoint‑ und OpenDocument‑Präsentationen (PPT, PPTX, ODP usw.) in PDF‑Format mit JavaScript bietet mehrere Vorteile, darunter Kompatibilität über verschiedene Geräte hinweg und die Erhaltung von Layout und Formatierung Ihrer Präsentation. Dieser Leitfaden zeigt, wie Präsentationen in PDF‑Dokumente umgewandelt werden, verschiedene Optionen zur Steuerung der Bildqualität verwendet, versteckte Folien einbezogen, PDF‑Dateien passwortgeschützt werden, Schriftart‑Ersetzungen erkannt, bestimmte Folien für die Konvertierung ausgewählt und Compliance‑Standards auf Ausgabedokumente angewendet werden. + +## **PowerPoint‑zu‑PDF‑Konvertierungen** + +Mit Aspose.Slides können Sie Präsentationen in den folgenden Formaten in PDF konvertieren: + +* **PPT** +* **PPTX** +* **ODP** + +Um eine Präsentation in PDF zu konvertieren, übergeben Sie den Dateinamen als Argument an die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Klasse und speichern die Präsentation anschließend mit einer `save`‑Methode als PDF. Die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Klasse stellt die `save`‑Methode bereit, die typischerweise zur Konvertierung einer Präsentation in PDF verwendet wird. + +{{% alert title="NOTE" color="warning" %}} + +Aspose.Slides for Node.js via Java fügt seine API‑Informationen und Versionsnummer in Ausgabedokumente ein. Beispielweise füllt Aspose.Slides beim Konvertieren einer Präsentation zu PDF das Feld „Application“ mit „*Aspose.Slides*“ und das Feld „PDF Producer“ mit einem Wert im Format „*Aspose.Slides v XX.XX*“. **Hinweis**: Sie können Aspose.Slides nicht anweisen, diese Informationen aus Ausgabedokumenten zu ändern oder zu entfernen. + +{{% /alert %}} + +Aspose.Slides ermöglicht das Konvertieren von: + +* Gesamten Präsentationen zu PDF +* Bestimmten Folien einer Präsentation zu PDF + +Aspose.Slides exportiert Präsentationen nach PDF und sorgt dafür, dass die resultierenden PDFs den Originalpräsentationen sehr nahe kommen. Elemente und Attribute werden bei der Konvertierung präzise gerendert, einschließlich: + +* Bilder +* Textfelder und Formen +* Textformatierung +* Absatzformatierung +* Hyperlinks +* Kopf‑ und Fußzeilen +* Aufzählungszeichen +* Tabellen + +## **PowerPoint zu PDF konvertieren** + +Der Standard‑PowerPoint‑zu‑PDF‑Konvertierungsprozess verwendet die Standardoptionen. In diesem Fall versucht Aspose.Slides, die bereitgestellte Präsentation mit optimalen Einstellungen und maximaler Qualität in PDF zu konvertieren. + +Der folgende Code zeigt, wie eine Präsentation (PPT, PPTX, ODP usw.) zu PDF konvertiert wird: +```js +// Instanziieren Sie die Presentation-Klasse, die eine PowerPoint- oder OpenDocument-Datei repräsentiert. +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // Speichern Sie die Präsentation als PDF. + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} + +Aspose bietet einen kostenlosen Online‑[**PowerPoint‑zu‑PDF‑Konverter**](https://products.aspose.app/slides/conversion/ppt-to-pdf), der den Präsentation‑zu‑PDF‑Konvertierungsprozess demonstriert. Sie können mit diesem Konverter einen Testlauf für eine Live‑Implementierung des hier beschriebenen Verfahrens durchführen. + +{{% /alert %}} + +## **PowerPoint zu PDF mit Optionen konvertieren** + +Aspose.Slides stellt benutzerdefinierte Optionen – Eigenschaften der [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)‑Klasse – bereit, mit denen Sie das resultierende PDF anpassen, mit einem Passwort schützen oder festlegen können, wie der Konvertierungsprozess ablaufen soll. + +### **PowerPoint zu PDF mit benutzerdefinierten Optionen konvertieren** + +Mit benutzerdefinierten Konvertierungsoptionen können Sie Ihre bevorzugten Qualitätseinstellungen für Rasterbilder festlegen, bestimmen, wie Metadateien behandelt werden, ein Komprimierungslevel für Text setzen, DPI für Bilder konfigurieren und mehr. + +Das nachstehende Codebeispiel demonstriert, wie eine PowerPoint‑Präsentation mit mehreren benutzerdefinierten Optionen in PDF konvertiert wird. +```js +// Instanziieren Sie die PdfOptions-Klasse. +let pdfOptions = new aspose.slides.PdfOptions(); + +// Legen Sie die Qualität für JPG-Bilder fest. +pdfOptions.setJpegQuality(java.newByte(90)); + +// Legen Sie die DPI für Bilder fest. +pdfOptions.setSufficientResolution(300); + +// Legen Sie das Verhalten für Metadateien fest. +pdfOptions.setSaveMetafilesAsPng(true); + +// Legen Sie das Textkompressionslevel für textuelle Inhalte fest. +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// Definieren Sie den PDF-Konformitätsmodus. +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// Instanziieren Sie die Presentation-Klasse, die eine PowerPoint- oder OpenDocument-Datei darstellt. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Speichern Sie die Präsentation als PDF-Dokument. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **PowerPoint zu PDF mit versteckten Folien konvertieren** + +Enthält eine Präsentation versteckte Folien, können Sie die Methode [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) der [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)‑Klasse verwenden, um die versteckten Folien als Seiten im resultierenden PDF einzuschließen. + +Dieser JavaScript‑Code zeigt, wie eine PowerPoint‑Präsentation zu PDF konvertiert wird, wobei versteckte Folien einbezogen werden: +```js +// Instanziieren Sie die Presentation-Klasse, die eine PowerPoint- oder OpenDocument-Datei darstellt. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Instanziieren Sie die PdfOptions-Klasse. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Versteckte Folien hinzufügen. + pdfOptions.setShowHiddenSlides(true); + + // Speichern Sie die Präsentation als PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **PowerPoint zu passwortgeschütztem PDF konvertieren** + +Dieser JavaScript‑Code demonstriert, wie eine PowerPoint‑Präsentation mit den Schutzparametern der [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)‑Klasse in ein passwortgeschütztes PDF umgewandelt wird: +```js +// Instanziieren Sie die Presentation-Klasse, die eine PowerPoint- oder OpenDocument-Datei repräsentiert. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Instanziieren Sie die PdfOptions-Klasse. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Legen Sie ein PDF-Passwort und Zugriffsberechtigungen fest. + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // Speichern Sie die Präsentation als PDF. + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Schriftart‑Ersetzungen erkennen** + +Aspose.Slides bietet die Methode [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) unter der [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)‑Klasse, mit der Sie Schriftart‑Ersetzungen während des Präsentation‑zu‑PDF‑Konvertierungsprozesses erkennen können. + +Dieser JavaScript‑Code zeigt, wie Schriftart‑Ersetzungen erkannt werden: +```js +// Warnungs-Callback in PDF-Optionen festlegen. +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// Instanziieren Sie die Presentation-Klasse, die eine PowerPoint- oder OpenDocument-Datei repräsentiert. +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// Speichern Sie die Präsentation als PDF. +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} + +Weitere Informationen zum Empfangen von Callbacks für Schriftart‑Ersetzungen während des Renderings finden Sie unter [Getting Warning Callbacks for Fonts Substitution](/slides/de/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/). + +Weitere Informationen zu Schriftart‑Ersetzungen finden Sie im Artikel [Font Substitution](/slides/de/nodejs-java/font-substitution/). + +{{% /alert %}} + +## **Ausgewählte Folien in PowerPoint zu PDF konvertieren** + +Dieser JavaScript‑Code demonstriert, wie nur bestimmte Folien einer PowerPoint‑Präsentation zu PDF konvertiert werden: +```js +// Instanziieren Sie die Presentation-Klasse, die eine PowerPoint- oder OpenDocument-Datei darstellt. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Array mit Foliennummern festlegen. + let slides = java.newArray("int", [1, 3]); + + // Präsentation als PDF speichern. + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **PowerPoint zu PDF mit benutzerdefinierter Foliengröße konvertieren** + +Dieser JavaScript‑Code demonstriert, wie eine PowerPoint‑Präsentation zu PDF mit einer angegebenen Foliengröße konvertiert wird: +```js +const slideWidth = 612; +const slideHeight = 792; + +// Instanziieren Sie die Presentation‑Klasse, die eine PowerPoint‑ oder OpenDocument‑Datei darstellt. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// Erstellen Sie eine neue Präsentation mit angepasster Foliengröße. +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // Legen Sie die benutzerdefinierte Foliengröße fest. + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // Klonen Sie die erste Folie aus der Originalpräsentation. + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // Speichern Sie die skalierte Präsentation als PDF mit Notizen. + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **PowerPoint zu PDF in Notiz‑Folien‑Ansicht konvertieren** + +Dieser JavaScript‑Code demonstriert, wie eine PowerPoint‑Präsentation zu einem PDF konvertiert wird, das Notizen enthält: +```js +// Instanziieren Sie die Presentation‑Klasse, die eine PowerPoint‑ oder OpenDocument‑Datei repräsentiert. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // Konfigurieren Sie die PDF‑Optionen mit Notizenlayout. + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // Speichern Sie die Präsentation als PDF mit Notizen. + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Barrierefreiheit und Compliance‑Standards für PDF** + +Aspose.Slides ermöglicht ein Konvertierungsverfahren, das den [Web Content Accessibility Guidelines (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html) entspricht. Sie können ein PowerPoint‑Dokument zu PDF exportieren und dabei einen der folgenden Compliance‑Standards verwenden: **PDF/A1a**, **PDF/A1b** und **PDF/UA**. + +Dieser JavaScript‑Code demonstriert einen PowerPoint‑zu‑PDF‑Konvertierungsprozess, der mehrere PDFs basierend auf unterschiedlichen Compliance‑Standards erzeugt: +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Note" color="warning" %}} + +Aspose.Slides unterstützt PDF‑Konvertierungs‑Operationen, mit denen Sie PDF‑Dateien in gängige Dateiformate umwandeln können. Sie können [PDF zu HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/), [PDF zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/) und [PDF zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/) konvertieren. Weitere PDF‑Konvertierungs‑Operationen zu spezialisierten Formaten – [PDF zu SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/), [PDF zu TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/) – werden ebenfalls unterstützt. + +{{% /alert %}} + +## **FAQ** + +**Kann ich mehrere PowerPoint‑Dateien stapelweise zu PDF konvertieren?** + +Ja, Aspose.Slides unterstützt die Batch‑Konvertierung mehrerer PPT‑ oder PPTX‑Dateien zu PDF. Sie können Ihre Dateien iterativ durchlaufen und den Konvertierungsprozess programmgesteuert anwenden. + +**Ist es möglich, das konvertierte PDF mit einem Passwort zu schützen?** + +Absolut. Verwenden Sie die [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)‑Klasse, um ein Passwort festzulegen und Zugriffsrechte während des Konvertierungsprozesses zu definieren. + +**Wie füge ich versteckte Folien in das PDF ein?** + +Verwenden Sie die Methode `setShowHiddenSlides` in der [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)‑Klasse, um versteckte Folien im resultierenden PDF zu berücksichtigen. + +**Kann Aspose.Slides eine hohe Bildqualität im PDF beibehalten?** + +Ja, Sie können die Bildqualität steuern, indem Sie Methoden wie `setJpegQuality` und `setSufficientResolution` der [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions)‑Klasse einsetzen, um hochqualitative Bilder in Ihrem PDF zu gewährleisten. + +**Unterstützt Aspose.Slides PDF/A‑Compliance‑Standards?** + +Ja, Aspose.Slides ermöglicht den Export von PDFs, die verschiedenen Standards entsprechen, darunter PDF/A1a, PDF/A1b und PDF/UA, sodass Ihre Dokumente sowohl barrierefrei als auch archivierungsfähig sind. + +## **Weitere Ressourcen** + +- [Aspose.Slides for Node.js via Java Documentation](/slides/de/nodejs-java/) +- [Aspose.Slides for Node.js via Java API Reference](https://reference.aspose.com/slides/nodejs-java/) +- [Aspose Free Online Converters](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..3170a73d53 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,119 @@ +--- +title: PowerPoint in PNG konvertieren +type: docs +weight: 30 +url: /de/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint zu PNG, PPT zu PNG, PPTX zu PNG, java, Aspose.Slides für Node.js via Java +description: PowerPoint‑Präsentation in PNG konvertieren +--- + +## **Über die PowerPoint-zu-PNG-Konvertierung** + +Das PNG (Portable Network Graphics)-Format ist nicht so verbreitet wie JPEG (Joint Photographic Experts Group), aber es ist immer noch sehr beliebt. + +**Anwendungsfall:** Wenn Sie ein komplexes Bild haben und die Größe kein Problem darstellt, ist PNG ein besseres Bildformat als JPEG. + +{{% alert title="Tip" color="primary" %}} Sie sollten sich die kostenlosen Aspose free **PowerPoint to PNG Converters** ansehen: [PPTX to PNG](https://products.aspose.app/slides/conversion/pptx-to-png) und [PPT to PNG](https://products.aspose.app/slides/conversion/ppt-to-png). Sie sind eine Live‑Implementierung des auf dieser Seite beschriebenen Vorgangs. {{% /alert %}} + +## **PowerPoint in PNG konvertieren** + +Führen Sie die folgenden Schritte aus: + +1. Instanziieren Sie die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)-Klasse. +2. Rufen Sie das Folienobjekt aus der Sammlung ab, die von der Methode [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) der [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide)-Klasse zurückgegeben wird. +3. Verwenden Sie die Methode [Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide), um das Thumbnail jeder Folie zu erhalten. +4. Verwenden Sie die [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat))-Methode, um das Folien‑Thumbnail im PNG‑Format zu speichern. + +Dieser JavaScript‑Code zeigt, wie Sie eine PowerPoint‑Präsentation in PNG konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint in PNG mit benutzerdefinierten Abmessungen konvertieren** + +Wenn Sie PNG‑Dateien in einem bestimmten Maßstab erhalten möchten, können Sie die Werte für `desiredX` und `desiredY` festlegen, die die Abmessungen des resultierenden Thumbnails bestimmen. + +Dieser JavaScript‑Code demonstriert die beschriebene Vorgehensweise: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint in PNG mit benutzerdefinierter Größe konvertieren** + +Wenn Sie PNG‑Dateien in einer bestimmten Größe erhalten möchten, können Sie die gewünschten `width`‑ und `height`‑Argumente für `ImageSize` übergeben. + +Dieser Code zeigt, wie Sie eine PowerPoint‑Datei in PNG konvertieren und dabei die Bildgröße festlegen: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Wie kann ich nur eine bestimmte Form (z. B. Diagramm oder Bild) exportieren, anstatt die gesamte Folie?** + +Aspose.Slides unterstützt das [generating thumbnails for individual shapes](/slides/de/nodejs-java/create-shape-thumbnails/); Sie können eine Form als PNG‑Bild rendern. + +**Wird parallele Konvertierung auf einem Server unterstützt?** + +Ja, aber [don’t share](/slides/de/nodejs-java/multithreading/) Sie eine einzelne Präsentationsinstanz nicht über Threads hinweg. Verwenden Sie pro Thread oder Prozess eine separate Instanz. + +**Welche Einschränkungen hat die Testversion beim Export nach PNG?** + +Der Evaluierungsmodus fügt den Ausgabebildern ein Wasserzeichen hinzu und erzwingt [other restrictions](/slides/de/nodejs-java/licensing/), bis eine Lizenz angewendet wird. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..53d18a8c7b --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,44 @@ +--- +title: "PowerPoint in SWF Flash konvertieren" +type: docs +weight: 80 +url: /de/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT, PPTX zu SWF" +description: "PowerPoint PPT, PPTX in SWF mit JavaScript konvertieren" +--- + +## **PPT(X) in SWF konvertieren** +Die [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) Methode, die von der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) bereitgestellt wird, kann verwendet werden, um die gesamte Präsentation in ein **SWF**‑Dokument zu konvertieren. Das folgende Beispiel zeigt, wie man eine Präsentation mithilfe von Optionen, die von der Klasse [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) bereitgestellt werden, in ein **SWF**‑Dokument konvertiert. Sie können auch Kommentare im erzeugten SWF mithilfe der Klasse [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) und der Klasse [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions) einbinden. +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Speichern der Präsentation + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich ausgeblendete Folien in das SWF einbinden?** + +Ja. Verwenden Sie die Methode [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) in [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/). Standardmäßig werden ausgeblendete Folien nicht exportiert. + +**Wie kann ich die Kompression und die endgültige SWF‑Größe steuern?** + +Verwenden Sie die Methode [setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) und [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/), um die Dateigröße und die Bildqualität auszubalancieren. + +**Wofür ist 'setViewerIncluded' gedacht und wann sollte ich es verwenden?** + +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) fügt eine eingebettete Player‑UI (Navigationssteuerungen, Paneele, Suche) hinzu. Verwenden Sie es, wenn Sie einen eigenen Player einsetzen wollen oder einen schlichten SWF‑Rahmen ohne UI benötigen. + +**Was passiert, wenn eine Quellschriftart auf dem Export‑Computer fehlt?** + +Aspose.Slides ersetzt die Schriftart, die Sie über [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) in [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) angeben, um ein unbeabsichtigtes Fallback zu vermeiden. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..0c7cb3ace7 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,91 @@ +--- +title: PowerPoint zu TIFF mit Notizen in JavaScript konvertieren +linktitle: PowerPoint zu TIFF mit Notizen +type: docs +weight: 100 +url: /de/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- PowerPoint zu TIFF konvertieren +- Präsentation zu TIFF konvertieren +- Folie zu TIFF konvertieren +- PPT zu TIFF konvertieren +- PPTX zu TIFF konvertieren +- ODP zu TIFF konvertieren +- PowerPoint zu TIFF +- Präsentation zu TIFF +- Folie zu TIFF +- PPT zu TIFF +- PPTX zu TIFF +- ODP zu TIFF +- PowerPoint mit Notizen +- Präsentation mit Notizen +- Folie mit Notizen +- PPT mit Notizen +- PPTX mit Notizen +- ODP mit Notizen +- TIFF mit Notizen +- Node.js +- JavaScript +- Aspose.Slides +description: "Konvertieren Sie PowerPoint- und OpenDocument-Präsentationen mit Notizen in TIFF mithilfe von Aspose.Slides für Node.js via Java. Erfahren Sie, wie Sie Folien mit Rednernotizen effizient exportieren." +--- + +## **Übersicht** + +Aspose.Slides for Node.js via Java bietet eine einfache Lösung zum Konvertieren von PowerPoint- und OpenDocument-Präsentationen (PPT, PPTX und ODP) mit Notizen in das TIFF-Format. Dieses Format wird häufig für die hochwertige Bildspeicherung, den Druck und die Dokumentenarchivierung verwendet. Mit Aspose.Slides können Sie nicht nur gesamte Präsentationen mit Rednernotizen exportieren, sondern auch Miniaturansichten der Folien in der Notizfolienansicht erzeugen. Der Konvertierungsprozess ist einfach und effizient und nutzt die `save`‑Methode der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Klasse, um die gesamte Präsentation in eine Reihe von TIFF‑Bildern umzuwandeln und dabei Notizen und Layout beizubehalten. + +## **Präsentation mit Notizen in TIFF konvertieren** + +Das Speichern einer PowerPoint‑ oder OpenDocument‑Präsentation im TIFF‑Format mit Notizen mithilfe von Aspose.Slides for Node.js via Java umfasst die folgenden Schritte: + +1. Instanziieren Sie die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Klasse: Laden Sie eine PowerPoint‑ oder OpenDocument‑Datei. +1. Konfigurieren Sie die Ausgabelayout‑Optionen: Verwenden Sie die [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/)‑Klasse, um festzulegen, wie Notizen und Kommentare angezeigt werden sollen. +1. Speichern Sie die Präsentation im TIFF-Format: Übergeben Sie die konfigurierten Optionen an die [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save)‑Methode. + +Nehmen wir an, wir haben eine Datei "speaker_notes.pptx" mit der folgenden Folie: + +![Die Präsentationsfolie mit Rednernotizen](slide_with_notes.png) + +Der folgende Codeausschnitt zeigt, wie die Präsentation mithilfe der [setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions)‑Methode in ein TIFF‑Bild in der Notizfolienansicht konvertiert wird. +```js +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt. +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // Zeigt die Notizen unterhalb der Folie an. + + // Konfigurieren Sie die TIFF-Optionen mit Notizen-Layout. + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Speichern Sie die Präsentation im TIFF-Format mit den Rednernotizen. + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +Das Ergebnis: + +![Das TIFF‑Bild mit Rednernotizen](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} +Schauen Sie sich den [Kostenlosen PowerPoint-zu-Poster-Konverter](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online) von Aspose an. +{{% /alert %}} + +## **FAQ** + +**Kann ich die Position des Notizbereichs im resultierenden TIFF steuern?** + +Ja. Verwenden Sie die [notes layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions), um zwischen Optionen wie `None`, `BottomTruncated` oder `BottomFull` zu wählen, die Notizen jeweils verbergen, auf eine einzelne Seite anpassen oder auf zusätzliche Seiten fließen lassen. + +**Wie kann ich die Größe einer TIFF‑Datei mit Notizen reduzieren, ohne sichtbaren Qualitätsverlust?** + +Wählen Sie eine [effiziente Kompression](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/) (z. B. `LZW` oder `RLE`), setzen Sie einen angemessenen DPI‑Wert und, falls akzeptabel, verwenden Sie ein niedrigeres [pixel format](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/) (wie 8 bpp oder 1 bpp für monochrom). Eine leichte Verringerung der [image dimensions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) kann ebenfalls helfen, ohne die Lesbarkeit merklich zu beeinträchtigen. + +**Beeinflusst die Schriftart in den Notizen das Ergebnis, wenn die Originalschriftarten nicht im System vorhanden sind?** + +Ja. Fehlende Schriftarten lösen eine [substitution](/slides/de/nodejs-java/font-selection-sequence/) aus, die Textmaße und Darstellung ändern kann. Um dies zu vermeiden, [supply the required fonts](/slides/de/nodejs-java/custom-font/) oder setzen Sie eine Standard-[fallback font](/slides/de/nodejs-java/fallback-font/), damit die vorgesehenen Schriften verwendet werden. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..af85f75e68 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,166 @@ +--- +title: PowerPoint-Präsentationen in TIFF konvertieren mit JavaScript +titlelink: PowerPoint zu TIFF +type: docs +weight: 90 +url: /de/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- PowerPoint konvertieren +- OpenDocument konvertieren +- Präsentation konvertieren +- Folie konvertieren +- PowerPoint zu TIFF +- OpenDocument zu TIFF +- Präsentation zu TIFF +- Folie zu TIFF +- PPT zu TIFF +- PPTX zu TIFF +- ODP zu TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "Erfahren Sie, wie Sie PowerPoint- (PPT, PPTX) und OpenDocument- (ODP) Präsentationen mit Aspose.Slides für Node.js über Java einfach in hochwertige TIFF-Bilder konvertieren können. Schritt-für-Schritt-Anleitung mit Code-Beispielen." +--- + +## **Übersicht** + +TIFF (**Tagged Image File Format**) ist ein weit verbreitetes, verlustfreies Rasterbildformat, das für seine außergewöhnliche Qualität und die detailgetreue Bewahrung von Grafiken bekannt ist. Designer, Fotografen und Desktop-Publisher wählen häufig TIFF, um Ebenen, Farbtreue und die ursprünglichen Einstellungen ihrer Bilder beizubehalten. + +Mit Aspose.Slides können Sie Ihre PowerPoint‑Folien (PPT, PPTX) und OpenDocument‑Folien (ODP) mühelos direkt in hochwertige TIFF‑Bilder konvertieren, wodurch Ihre Präsentationen maximale visuelle Treue bewahren. + +## **Präsentation in TIFF konvertieren** + +Durch die Verwendung der [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-)‑Methode der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)-Klasse können Sie schnell eine gesamte PowerPoint‑Präsentation in TIFF konvertieren. Die resultierenden TIFF‑Bilder entsprechen der Standard‑Foliengröße. + +Dieser JavaScript‑Code zeigt, wie man eine PowerPoint‑Präsentation in TIFF konvertiert: +```js +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei (PPT, PPTX, ODP usw.) darstellt. +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // Speichern Sie die Präsentation als TIFF. + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **Präsentation in Schwarz‑weiß‑TIFF konvertieren** + +Die Methode [setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) in der Klasse [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) ermöglicht es Ihnen, den Algorithmus festzulegen, der beim Konvertieren einer farbigen Folie oder eines Bildes in ein Schwarz‑weiß‑TIFF verwendet wird. Beachten Sie, dass diese Einstellung nur gilt, wenn die Methode [setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) auf `CCITT4` oder `CCITT3` gesetzt ist. + +Angenommen, wir haben eine Datei "sample.pptx" mit der folgenden Folie: + +![Eine Präsentationsfolie](slide_black_and_white.png) + +Dieser JavaScript‑Code zeigt, wie man die farbige Folie in ein Schwarz‑weiß‑TIFF konvertiert: +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +Das Ergebnis: + +![Schwarz‑weiß‑TIFF](TIFF_black_and_white.png) + +## **Präsentation in TIFF mit benutzerdefinierter Größe konvertieren** + +Wenn Sie ein TIFF‑Bild mit bestimmten Abmessungen benötigen, können Sie Ihre gewünschten Werte mit den in [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) verfügbaren Methoden festlegen. Zum Beispiel ermöglicht die Methode [setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize), die Größe des resultierenden Bildes zu definieren. + +Dieser JavaScript‑Code zeigt, wie man eine PowerPoint‑Präsentation in TIFF‑Bilder mit benutzerdefinierter Größe konvertiert: +```js +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei (PPT, PPTX, ODP usw.) darstellt. +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // Legen Sie den Kompressionstyp fest. + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + Kompressionstypen: + Default - Gibt das Standard-Kompressionsschema (LZW) an. + None - Gibt an, dass keine Kompression verwendet wird. + CCITT3 + CCITT4 + LZW + RLE + */ + + // Die Farbtiefe hängt vom Kompressionstyp ab und kann nicht manuell festgelegt werden. + + // Legen Sie die Bild-DPI fest. + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // Legen Sie die Bildgröße fest. + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Speichern Sie die Präsentation als TIFF mit der angegebenen Größe. + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Präsentation in TIFF mit benutzerdefiniertem Bild‑Pixel‑Format konvertieren** + +Durch die Verwendung der Methode [setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) der Klasse [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) können Sie das gewünschte Pixel‑Format für das resultierende TIFF‑Bild festlegen. + +Dieser JavaScript‑Code zeigt, wie man eine PowerPoint‑Präsentation in ein TIFF‑Bild mit benutzerdefiniertem Pixel‑Format konvertiert: +```js +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei (PPT, PPTX, ODP usw.) darstellt. +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat enthält die folgenden Werte (wie in der Dokumentation angegeben): + Format1bppIndexed - 1 Bit pro Pixel, indiziert. + Format4bppIndexed - 4 Bit pro Pixel, indiziert. + Format8bppIndexed - 8 Bit pro Pixel, indiziert. + Format24bppRgb - 24 Bit pro Pixel, RGB. + Format32bppArgb - 32 Bit pro Pixel, ARGB. + */ + + /// Speichern Sie die Präsentation als TIFF mit der angegebenen Bildgröße. + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Schauen Sie sich Aspose's [KOSTENLOSEN PowerPoint‑zu‑Poster‑Konverter](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online) an. + +{{% /alert %}} + +## **FAQ** + +**Kann ich eine einzelne Folie anstelle der gesamten PowerPoint‑Präsentation in TIFF konvertieren?** + +Ja. Aspose.Slides ermöglicht es Ihnen, einzelne Folien aus PowerPoint‑ und OpenDocument‑Präsentationen separat in TIFF‑Bilder zu konvertieren. + +**Gibt es ein Limit für die Anzahl der Folien beim Konvertieren einer Präsentation in TIFF?** + +Nein, Aspose.Slides legt keine Beschränkungen für die Anzahl der Folien fest. Sie können Präsentationen beliebiger Größe in das TIFF‑Format konvertieren. + +**Werden PowerPoint‑Animationen und Übergangseffekte beim Konvertieren von Folien in TIFF beibehalten?** + +Nein, TIFF ist ein statisches Bildformat. Daher werden Animationen und Übergangseffekte nicht beibehalten; es werden nur statische Schnappschüsse der Folien exportiert. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..34ae3c0d4f --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,335 @@ +--- +title: PowerPoint in Video konvertieren +type: docs +weight: 130 +url: /de/nodejs-java/convert-powerpoint-to-video/ +keywords: "PowerPoint konvertieren, PPT, PPTX, Präsentation, Video, MP4, PPT zu Video, PPT zu MP4, Java, Aspose.Slides" +description: "PowerPoint in Video in JavaScript konvertieren" +--- + +Durch die Umwandlung Ihrer PowerPoint-Präsentation in ein Video erhalten Sie + +* **Erhöhung der Barrierefreiheit:** Alle Geräte (unabhängig vom Betriebssystem) verfügen standardmäßig über Videoplayer im Vergleich zu Präsentations‑Öffnungs‑Anwendungen, sodass Benutzer Videos leichter öffnen oder abspielen können. +* **Größere Reichweite:** Durch Videos können Sie ein großes Publikum erreichen und es mit Informationen ansprechen, die in einer Präsentation sonst als mühsam empfunden werden könnten. Die meisten Umfragen und Statistiken zeigen, dass Menschen Videos mehr ansehen und konsumieren als andere Content‑Formen und sie bevorzugen solche Inhalte im Allgemeinen. + +{{% alert color="primary" %}} + +Vielleicht möchten Sie unseren [**PowerPoint‑zu‑Video‑Online‑Konverter**](https://products.aspose.app/slides/conversion/ppt-to-word) prüfen, da er eine aktuelle und effektive Umsetzung des hier beschriebenen Prozesses darstellt. + +{{% /alert %}} + +## **PowerPoint‑zu‑Video‑Konvertierung in Aspose.Slides** + +In [Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/), haben wir die Unterstützung für die Konvertierung von Präsentationen in Video implementiert. + +* Verwenden Sie **Aspose.Slides**, um eine Reihe von Frames (aus den Präsentationsfolien) zu erzeugen, die einer bestimmten FPS (Frames pro Sekunde) entsprechen. +* Verwenden Sie ein Drittanbieter‑Werkzeug wie **ffmpeg** ([für java](https://github.com/bramp/ffmpeg-cli-wrapper)), um ein Video basierend auf den Frames zu erstellen. + +### **PowerPoint in Video konvertieren** + +1. Laden Sie ffmpeg [hier](https://ffmpeg.org/download.html) herunter. + +2. Führen Sie den PowerPoint‑zu‑Video‑JavaScript‑Code aus. + +Dieser JavaScript‑Code zeigt, wie Sie eine Präsentation (mit einer Abbildung und zwei Animationseffekten) in ein Video konvertieren: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Fügt eine Smiley-Form hinzu und animiert sie dann + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Konfiguriere den ffmpeg-Binaries-Ordner. Siehe diese Seite: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Videoeffekte** + +Sie können Animationen auf Objekte in Folien anwenden und Übergänge zwischen Folien verwenden. + +{{% alert color="primary" %}} + +Vielleicht möchten Sie diese Artikel ansehen: [PowerPoint‑Animation](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/), [Form‑Animation](https://docs.aspose.com/slides/nodejs-java/shape-animation/), und [Form‑Effekt](https://docs.aspose.com/slides/nodejs-java/shape-effect/). + +{{% /alert %}} + +Animationen und Übergänge machen Diashows ansprechender und interessanter – und sie bewirken dasselbe bei Videos. Fügen wir dem Code der vorherigen Präsentation eine weitere Folie und einen Übergang hinzu: +```javascript +// Fügt eine Smiley-Form hinzu und animiert sie +// ... +// Fügt eine neue Folie und einen animierten Übergang hinzu +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +Aspose.Slides unterstützt außerdem Animationen für Texte. Wir animieren also Absätze auf Objekten, die nacheinander erscheinen (mit einer Verzögerung von einer Sekunde): +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Fügt Text und Animationen hinzu + var autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 120, 300, 300); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Aspose Slides for Node.js via Java")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("convert PowerPoint Presentation with text to video")); + var para3 = new aspose.slides.Paragraph(); + para3.getPortions().add(new aspose.slides.Portion("paragraph by paragraph")); + var paragraphCollection = autoShape.getTextFrame().getParagraphs(); + paragraphCollection.add(para1); + paragraphCollection.add(para2); + paragraphCollection.add(para3); + paragraphCollection.add(new aspose.slides.Paragraph()); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effect1 = mainSequence.addEffect(para1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect2 = mainSequence.addEffect(para2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect3 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect4 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + effect1.getTiming().setTriggerDelayTime(1.0); + effect2.getTiming().setTriggerDelayTime(1.0); + effect3.getTiming().setTriggerDelayTime(1.0); + effect4.getTiming().setTriggerDelayTime(1.0); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Konfiguriere den ffmpeg-Binaries-Ordner. Siehe diese Seite: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Klassen für Video‑Konvertierung** + +Um Ihnen die Durchführung von PowerPoint‑zu‑Video‑Konvertierungsaufgaben zu ermöglichen, stellt Aspose.Slides die Klassen [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) und [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) bereit. + +[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) ermöglicht es Ihnen, über den Konstruktor die Bildgröße für das später zu erstellende Video festzulegen. Wenn Sie eine Instanz der Präsentation übergeben, wird `Presentation.getSlideSize` verwendet und es erzeugt Animationen, die von [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) genutzt werden. + +Wenn Animationen erzeugt werden, wird für jede nachfolgende Animation ein `NewAnimation`‑Ereignis mit dem Parameter [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/) generiert. Letzteres ist eine Klasse, die einen Player für eine separate Animation darstellt. + +Um mit [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/) zu arbeiten, werden die Methoden [getDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#getDuration--) (die Gesamtdauer der Animation) und [setTimePosition](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#setTimePosition-double-) verwendet. Jede Animationsposition wird im Bereich *0 bis duration* festgelegt, und anschließend gibt die Methode `getFrame` ein BufferedImage zurück, das dem Animationszustand zu diesem Zeitpunkt entspricht: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Fügt eine Smiley-Form hinzu und animiert sie + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// Anfangszustand der Animation + try { + // Bitmap des Anfangszustands der Animation + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// final state of the animation + try { + // Letztes Bild der Animation + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Um alle Animationen in einer Präsentation gleichzeitig abspielen zu lassen, wird die Klasse [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) verwendet. Diese Klasse nimmt im Konstruktor eine Instanz von [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/), sowie FPS für die Effekte und ruft anschließend das `FrameTick`‑Ereignis für alle Animationen auf, um sie abzuspielen: +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Anschließend können die erzeugten Frames zu einem Video zusammengesetzt werden. Siehe den Abschnitt [PowerPoint in Video konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video). + +## **Unterstützte Animationen und Effekte** + +**Eingang**: + +| Animations‑Typ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Appear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly In** | ![supported](v.png) | ![supported](v.png) | +| **Float In** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Wheel** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Grow & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**Betonung**: + +| Animations‑Typ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Color Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Teeter** | ![supported](v.png) | ![supported](v.png) | +| **Spin** | ![supported](v.png) | ![supported](v.png) | +| **Grow/Shrink** | ![not supported](x.png) | ![supported](v.png) | +| **Desaturate** | ![not supported](x.png) | ![supported](v.png) | +| **Darken** | ![not supported](x.png) | ![supported](v.png) | +| **Lighten** | ![not supported](x.png) | ![supported](v.png) | +| **Transparency** | ![not supported](x.png) | ![supported](v.png) | +| **Object Color** | ![not supported](x.png) | ![supported](v.png) | +| **Complementary Color** | ![not supported](x.png) | ![supported](v.png) | +| **Line Color** | ![not supported](x.png) | ![supported](v.png) | +| **Fill Color** | ![not supported](x.png) | ![supported](v.png) | + +**Ausgang**: + +| Animations‑Typ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Disappear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly Out** | ![supported](v.png) | ![supported](v.png) | +| **Float Out** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Shrink & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**Bewegungspfade**: + +| Animations‑Typ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Lines** | ![supported](v.png) | ![supported](v.png) | +| **Arcs** | ![supported](v.png) | ![supported](v.png) | +| **Turns** | ![supported](v.png) | ![supported](v.png) | +| **Shapes** | ![supported](v.png) | ![supported](v.png) | +| **Loops** | ![supported](v.png) | ![supported](v.png) | +| **Custom Path** | ![supported](v.png) | ![supported](v.png) | + +## **FAQ** + +**Ist es möglich, passwortgeschützte Präsentationen zu konvertieren?** + +Ja, Aspose.Slides ermöglicht die Arbeit mit passwortgeschützten Präsentationen. Beim Verarbeiten solcher Dateien müssen Sie das korrekte Passwort angeben, damit die Bibliothek auf den Inhalt der Präsentation zugreifen kann. + +**Unterstützt Aspose.Slides die Nutzung in Cloud‑Lösungen?** + +Ja, Aspose.Slides kann in Cloud‑Anwendungen und -Dienste integriert werden. Die Bibliothek ist für den Einsatz in Server‑Umgebungen konzipiert und gewährleistet hohe Leistung und Skalierbarkeit für die Stapelverarbeitung von Dateien. + +**Gibt es Größenbeschränkungen für Präsentationen während der Konvertierung?** + +Aspose.Slides kann praktisch Präsentationen jeder Größe verarbeiten. Bei sehr großen Dateien können jedoch zusätzliche Systemressourcen erforderlich sein, und es wird manchmal empfohlen, die Präsentation zu optimieren, um die Leistung zu verbessern. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..818e63382f --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,93 @@ +--- +title: PowerPoint zu XPS konvertieren +type: docs +weight: 70 +url: /de/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX zu XPS" +description: "PowerPoint PPT(X) nach XPS in JavaScript konvertieren" +--- + +## **Über XPS** + +Microsoft hat [XPS](https://docs.fileformat.com/page-description-language/xps/) als Alternative zu [PDF](https://docs.fileformat.com/pdf/) entwickelt. Es ermöglicht das Drucken von Inhalten, indem eine Datei erzeugt wird, die einer PDF sehr ähnlich ist. Das XPS‑Format basiert auf XML. Das Layout oder die Struktur einer XPS‑Datei bleibt auf allen Betriebssystemen und Druckern gleich. + +## **Wann das Microsoft XPS‑Format verwenden** + +{{% alert color="primary" %}} + +Um zu sehen, wie Aspose.Slides PPT‑ oder PPTX‑Präsentationen in das XPS‑Format konvertiert, können Sie [diese kostenlose Online‑Konverter‑App](https://products.aspose.app/slides/conversion) prüfen. + +{{% /alert %}} + +Wenn Sie die Speicherkosten senken möchten, können Sie Ihre Microsoft PowerPoint‑Präsentation in das XPS‑Format konvertieren. So wird es Ihnen leichter fallen, Ihre Dokumente zu speichern, zu teilen und zu drucken. + +Microsoft erweitert nach wie vor die umfassende Unterstützung für XPS in Windows (auch in Windows 10), sodass Sie in Betracht ziehen können, Dateien in diesem Format zu speichern. Wenn Sie mit Windows 8.1, Windows 8, Windows 7 und Windows Vista arbeiten, könnte XPS tatsächlich Ihre beste Option für bestimmte Vorgänge sein. + +- **Windows 8** verwendet das OXPS (Open XPS)‑Format für XPS‑Dateien. OXPS ist eine standardisierte Version des ursprünglichen XPS‑Formats. Windows 8 bietet bessere Unterstützung für XPS‑Dateien als für PDF‑Dateien. + - **XPS:** Integrierter XPS‑Viewer/Reader und Druck‑zu‑XPS‑Funktion verfügbar. + - **PDF:** PDF‑Reader verfügbar, aber keine Druck‑zu‑PDF‑Funktion. + +- **Windows 7 und Windows Vista** verwenden das ursprüngliche XPS‑Format. Diese Betriebssysteme bieten ebenfalls bessere Unterstützung für XPS‑Dateien als für PDFs. + - **XPS:** Integrierter XPS‑Viewer und Druck‑zu‑XPS‑Funktion verfügbar. + - **PDF:** Kein PDF‑Reader. Keine Druck‑zu‑PDF‑Funktion. + +|

**Eingabe PPT(X):

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**Ausgabe XPS:

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| +| :- | :- | + +Microsoft hat schließlich die Unterstützung für Druckvorgänge in PDF über die Funktion „Print to PDF“ in Windows 10 implementiert. Zuvor wurden Benutzer aufgefordert, Dokumente über das XPS‑Format zu drucken. + +## **XPS‑Konvertierung mit Aspose.Slides** + +In [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) können Sie die [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-)‑Methode der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)‑Klasse verwenden, um die gesamte Präsentation in ein XPS‑Dokument zu konvertieren. + +Beim Konvertieren einer Präsentation zu XPS müssen Sie die Präsentation mit einer dieser Einstellungen speichern: + +- Standard‑Einstellungen (ohne [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) +- Benutzerdefinierte Einstellungen (mit [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) + +### **Präsentationen mit Standard‑Einstellungen in XPS konvertieren** + +Dieses Beispiel in JavaScript zeigt, wie Sie eine Präsentation mit Standard‑Einstellungen in ein XPS‑Dokument konvertieren: +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // Speichern der Präsentation in ein XPS-Dokument + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Präsentationen mit benutzerdefinierten Einstellungen in XPS konvertieren** +Dieses Beispiel zeigt, wie Sie eine Präsentation mit benutzerdefinierten Einstellungen in JavaScript in ein XPS‑Dokument konvertieren: +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // Instanziieren Sie die TiffOptions-Klasse + var options = new aspose.slides.XpsOptions(); + // Speichern Sie MetaFiles als PNG + options.setSaveMetafilesAsPng(true); + // Speichern Sie die Präsentation als XPS-Dokument + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich XPS in einen Stream statt in eine Datei speichern?** + +Ja – Aspose.Slides ermöglicht den direkten Export in einen Stream, was ideal für Web‑APIs, serverseitige Pipelines oder jedes Szenario ist, bei dem Sie das XPS senden möchten, ohne das Dateisystem zu berühren. + +**Werden versteckte Folien in XPS übernommen, und kann ich sie ausschließen?** + +Standardmäßig werden nur reguläre (sichtbare) Folien gerendert. Sie können [versteckte Folien ein‑ oder ausschließen](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/) über die [Export‑Einstellungen](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/) vor dem Speichern nach XPS festlegen, sodass die Ausgabe genau die Seiten enthält, die Sie beabsichtigen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..bc4eea5ff9 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,103 @@ +--- +title: "PPT in PPTX in JavaScript konvertieren" +linktitle: "PPT zu PPTX konvertieren" +type: docs +weight: 20 +url: /de/nodejs-java/convert-ppt-to-pptx/ +keywords: "Java PPT in PPTX konvertieren, PowerPoint PPT zu PPTX in JavaScript" +description: "PowerPoint PPT in JavaScript in PPTX konvertieren." +--- + +## **Übersicht** + +Dieser Artikel erklärt, wie man PowerPoint‑Präsentationen im PPT‑Format mithilfe von JavaScript und einer Online‑Konvertierungs‑App in das PPTX‑Format umwandelt. Dabei wird folgendes Thema behandelt. + +- PPT zu PPTX in JavaScript konvertieren + +## **Java PPT zu PPTX konvertieren** + +Den JavaScript‑Beispielcode zum Konvertieren von PPT nach PPTX finden Sie im Abschnitt unten, nämlich [PPT zu PPTX konvertieren](#convert-ppt-to-pptx). Er lädt lediglich die PPT‑Datei und speichert sie im PPTX‑Format. Durch Angabe verschiedener Speicherformate können Sie die PPT‑Datei zudem in zahlreiche andere Formate wie PDF, XPS, ODP, HTML usw. konvertieren, wie in den folgenden Artikeln beschrieben. + +- [Java PPT zu PDF konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java PPT zu XPS konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java PPT zu HTML konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java PPT zu ODP konvertieren](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java PPT zu Bild konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **Über die PPT‑zu‑PPTX‑Konvertierung** +Altes PPT‑Format in PPTX mit der Aspose.Slides‑API konvertieren. Wenn Sie Tausende von PPT‑Präsentationen in das PPTX‑Format umwandeln müssen, ist die beste Lösung, dies programmatisch zu erledigen. Mit der Aspose.Slides‑API ist das mit nur wenigen Code‑Zeilen möglich. Die API bietet volle Kompatibilität für die Konvertierung von PPT‑Präsentationen nach PPTX und ermöglicht: + +- Konvertierung komplexer Strukturen von Master‑Folien, Layouts und Folien. +- Konvertierung von Präsentationen mit Diagrammen. +- Konvertierung von Präsentationen mit Gruppierungs‑Shapes, Auto‑Shapes (wie Rechtecken und Ellipsen) sowie Shapes mit benutzerdefinierter Geometrie. +- Konvertierung von Präsentationen mit Texturen und Bild‑Füllstilen für Auto‑Shapes. +- Konvertierung von Präsentationen mit Platzhaltern, Text‑Frames und Text‑Holdern. + +{{% alert color="primary" %}} + +Werfen Sie einen Blick auf die **Aspose.Slides PPT‑zu‑PPTX‑Konvertierung**‑App: + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +Diese App wurde auf Basis der **Aspose.Slides‑API** entwickelt, sodass Sie ein funktionierendes Beispiel für die grundlegenden PPT‑zu‑PPTX‑Konvertierungsfähigkeiten sehen können. Aspose.Slides Conversion ist eine Web‑App, die das Hochladen einer Präsentationsdatei im PPT‑Format und das Herunterladen der konvertierten PPTX‑Datei ermöglicht. + +Weitere Live‑Beispiele finden Sie unter **Aspose.Slides Conversion**: + +https://products.aspose.app/slides/conversion/ +{{% /alert %}} + +## **PPT zu PPTX konvertieren** +Aspose.Slides für Node.js über Java ermöglicht Entwicklern den Zugriff auf PPT über die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) und deren Konvertierung in das entsprechende [PPTX](https://docs.fileformat.com/presentation/pptx/)-Format. Derzeit unterstützt sie die Teilkonvertierung von [PPT](https://docs.fileformat.com/presentation/ppt/) nach PPTX. Weitere Details zu unterstützten und nicht unterstützten Funktionen der PPT‑zu‑PPTX‑Konvertierung finden Sie in der Dokumentation unter diesem [Link](/slides/de/nodejs-java/ppt-to-pptx-conversion/). + +Aspose.Slides für Node.js über Java stellt die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) bereit, die eine **PPTX**‑Präsentationsdatei repräsentiert. Die Presentation‑Klasse kann nun auch **PPT** über ein Presentation‑Objekt laden, wenn das Objekt instanziiert wird. Das folgende Beispiel zeigt, wie man eine PPT‑Präsentation in eine PPTX‑Presentation konvertiert. +```javascript +// Instanziiere ein Presentation-Objekt, das eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // Speichere die PPTX-Präsentation im PPTX-Format + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**Abbildung: Quell‑PPT‑Präsentation**| + +Der obige Code‑Auszug erzeugt nach der Konvertierung die folgende PPTX‑Präsentation: + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**Abbildung: Generierte PPTX‑Präsentation nach der Konvertierung**| + +## **FAQ** + +**Was ist der Unterschied zwischen den Formaten PPT und PPTX?** + +PPT ist das ältere binäre Dateiformat von Microsoft PowerPoint, während PPTX das neuere XML‑basierte Format ist, das mit Microsoft Office 2007 eingeführt wurde. PPTX‑Dateien bieten bessere Leistung, kleinere Dateigröße und eine verbesserte Datenwiederherstellung. + +**Unterstützt Aspose.Slides die Stapelverarbeitung mehrerer PPT‑Dateien zu PPTX?** + +Ja, Sie können Aspose.Slides in einer Schleife verwenden, um mehrere PPT‑Dateien programmgesteuert nach PPTX zu konvertieren, was sich für Stapelverarbeitungs‑Szenarien eignet. + +**Werden Inhalt und Formatierung nach der Konvertierung beibehalten?** + +Aspose.Slides gewährleistet eine hohe Treue bei der Konvertierung von Präsentationen. Folien‑Layouts, Animationen, Shapes, Diagramme und andere Designelemente bleiben während der PPT‑zu‑PPTX‑Konvertierung erhalten. + +**Kann ich aus PPT‑Dateien andere Formate wie PDF oder HTML konvertieren?** + +Ja, Aspose.Slides unterstützt die Konvertierung von PPT‑Dateien in mehrere Formate, darunter PDF, XPS, HTML, ODP sowie Bildformate wie PNG und JPEG. + +**Ist es möglich, PPT nach PPTX zu konvertieren, ohne Microsoft PowerPoint installiert zu haben?** + +Ja, Aspose.Slides ist eine eigenständige API und benötigt weder Microsoft PowerPoint noch andere Drittanbieter‑Software für die Konvertierung. + +**Gibt es ein Online‑Tool für die PPT‑zu‑PPTX‑Konvertierung?** + +Ja, Sie können den kostenlosen **Aspose.Slides PPT‑zu‑PPTX‑Konverter** [https://products.aspose.app/slides/conversion/ppt-to-pptx] web‑basiert nutzen, um die Konvertierung direkt im Browser durchzuführen, ohne Code zu schreiben. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..c197948b7f --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: PPTX nach PPT in JavaScript konvertieren +linktitle: PPTX nach PPT konvertieren +type: docs +weight: 21 +url: /de/nodejs-java/convert-pptx-to-ppt/ +keywords: "Java PPTX nach PPT konvertieren, PowerPoint-Präsentation konvertieren, PPTX nach PPT, Java, Aspose.Slides" +description: "PowerPoint PPTX in PPT mit JavaScript konvertieren" +--- + +## **Übersicht** + +Dieser Artikel erklärt, wie man PowerPoint‑Präsentationen im PPTX‑Format mit JavaScript in das PPT‑Format konvertiert. Das folgende Thema wird behandelt. + +- PPTX in PPT mit JavaScript konvertieren + +## **Java PPTX nach PPT konvertieren** + +Für JavaScript‑Beispielcode zum Konvertieren von PPTX nach PPT siehe den untenstehenden Abschnitt, d.h.[Convert PPTX to PPT](#convert-pptx-to-ppt). Er lädt lediglich die PPTX‑Datei und speichert sie im PPT‑Format. Durch Angabe anderer Speicherformate können Sie die PPTX‑Datei auch in viele andere Formate wie PDF, XPS, ODP, HTML usw. speichern, wie in diesen Artikeln erläutert. + +- [Java PPTX nach PDF konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java PPTX nach XPS konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java PPTX nach HTML konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java PPTX nach ODP konvertieren](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java PPTX nach Bild konvertieren](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **PPTX nach PPT konvertieren** + +Um ein PPTX in PPT zu konvertieren, übergeben Sie einfach den Dateinamen und das Speicherformat an die **Save**‑Methode der Klasse [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). Der untenstehende JavaScript‑Codebeispiel konvertiert eine Präsentation von PPTX nach PPT mit den Standardeinstellungen. +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine PPTX-Datei darstellt +var presentation = new aspose.slides.Presentation("template.pptx"); +// speichere die Präsentation als PPT +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **FAQ** + +**Bleiben alle PPTX‑Effekte und -Funktionen beim Speichern im alten PPT‑Format (97–2003) erhalten?** + +Nicht immer. Das PPT‑Format fehlt es an einigen neueren Funktionen (z. B. bestimmten Effekten, Objekten und Verhaltensweisen), sodass Features während der Konvertierung vereinfacht oder rasterisiert werden können. + +**Kann ich nur ausgewählte Folien in PPT konvertieren, anstatt die gesamte Präsentation?** + +Das direkte Speichern richtet sich an die gesamte Präsentation. Um einzelne Folien zu konvertieren, erstellen Sie eine neue Präsentation, die nur diese Folien enthält, und speichern sie als PPT; alternativ können Sie einen Dienst/eine API nutzen, die Parameter für die Konvertierung pro Folie unterstützt. + +**Werden passwortgeschützte Präsentationen unterstützt?** + +Ja. Sie können erkennen, ob eine Datei geschützt ist, sie mit einem Passwort öffnen und zudem die [Schutz‑/Verschlüsselungseinstellungen](/slides/de/nodejs-java/password-protected-presentation/) für das gespeicherte PPT konfigurieren. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..76ce332d81 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,65 @@ +--- +title: PPT vs PPTX +type: docs +weight: 10 +url: /de/nodejs-java/ppt-vs-pptx/ +keywords: "PPT vs PPTX" +description: "Lesen Sie über die Unterschiede zwischen PPT und PPTX in Aspose.Slides." +--- + +## **Was ist PPT?** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) ist ein binäres Dateiformat, d. h. es ist unmöglich, seinen Inhalt ohne spezielle Werkzeuge anzuzeigen. Die ersten PowerPoint‑Versionen 97‑2003 arbeiteten mit dem PPT‑Dateiformat, jedoch ist seine Erweiterbarkeit begrenzt. + +## **Was ist PPTX?** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) ist ein neues Präsentationsdateiformat, das auf dem Office Open XML (ISO 29500:2008-2016, ECMA-376) Standard basiert. PPTX ist ein archiviertes Set aus XML‑ und Mediendateien. Das PPTX‑Format ist leicht erweiterbar. Zum Beispiel ist es einfach, Unterstützung für einen neuen Diagrammtyp oder Formtyp hinzuzufügen, ohne das PPTX‑Format in jeder neuen PowerPoint‑Version zu ändern. Das PPTX‑Format wird seit PowerPoint 2007 verwendet. + +## **PPT vs PPTX** + +Obwohl PPTX viel umfangreichere Funktionen bietet, bleibt PPT sehr beliebt. Die Notwendigkeit, von PPT nach PPTX und umgekehrt zu konvertieren, ist hoch gefragt. + +Allerdings ist die Konvertierung zwischen dem alten PPT‑Format und dem neuen PPTX‑Format die komplexeste Herausforderung unter den anderen Microsoft‑Office‑Formaten. Obwohl die Spezifikation des PPT‑Formats offen ist, ist die Arbeit damit schwierig. PowerPoint kann spezielle Teile (MetroBlob) in PPT‑Dateien erstellen, um Informationen aus PPTX zu speichern, die vom PPT‑Format nicht unterstützt werden und in alten PowerPoint‑Versionen nicht angezeigt werden können. Diese Informationen können wiederhergestellt werden, wenn eine PPT‑Datei in einer modernen PowerPoint‑Version geladen oder in das PPTX‑Format konvertiert wird. + +Aspose.Slides stellt eine gemeinsame Klasse bereit, um mit allen Präsentationsformaten zu arbeiten. Sie ermöglicht das Konvertieren von PPT nach PPTX und von PPTX nach PPT auf sehr einfache Weise. Aspose.Slides unterstützt die Konvertierung von PPT nach PPTX vollständig und unterstützt auch die Konvertierung von PPTX nach PPT mit einigen Einschränkungen. Wir empfehlen, nach Möglichkeit das PPTX‑Format zu verwenden. + +{{% alert color="primary" %}} + +Überprüfen Sie die Qualität der Konvertierungen von PPT nach PPTX und von PPTX nach PPT mit der Online‑[**Aspose.Slides Conversion app**](https://products.aspose.app/slides/conversion/). + +{{% /alert %}} +```javascript +// Instanziiere ein Presentation-Objekt, das eine PPT-Datei darstellt +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // Speichern der PPT-Präsentation im PPTX-Format + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Mehr erfahren [**How to Convert Presentations PPT to PPTX**.](/slides/de/nodejs-java/convert-ppt-to-pptx/) +{{% /alert %}} + +## **FAQ** + +**Gibt es einen Grund, alte Präsentationen im PPT‑Format zu behalten, wenn sie fehlerfrei geöffnet werden?** + +Wenn eine Präsentation zuverlässig geöffnet wird und keine Zusammenarbeit oder neuere Funktionen benötigt, können Sie sie im PPT‑Format behalten. Für zukünftige Kompatibilität und Erweiterbarkeit ist es jedoch besser, zu [convert to PPTX](/slides/de/nodejs-java/convert-ppt-to-pptx/): Das Format basiert auf dem offenen OOXML‑Standard und wird von modernen Werkzeugen leichter unterstützt. + +**Wie kann ich entscheiden, welche Dateien zuerst kritisch in PPTX zu konvertieren sind?** + +Konvertieren Sie zuerst die Präsentationen, die: von mehreren Personen bearbeitet werden; komplexe [charts](/slides/de/nodejs-java/create-chart/)/[shapes](/slides/de/nodejs-java/shape-manipulations/) enthalten; in externen Kommunikationsmitteln verwendet werden; oder Warnungen auslösen, wenn sie [opened](/slides/de/nodejs-java/open-presentation/) werden. + +**Wird der Passwortschutz beim Konvertieren von PPT nach PPTX und zurück beibehalten?** + +Das Vorhandensein eines Passworts wird nur bei einer korrekten Konvertierung und Verschlüsselungsunterstützung im verwendeten Tool übernommen. Es ist zuverlässiger, zunächst den [remove protection](/slides/de/nodejs-java/password-protected-presentation/) zu entfernen, dann zu [convert](/slides/de/nodejs-java/convert-ppt-to-pptx/) und anschließend den Schutz gemäß Ihrer Sicherheitsrichtlinie wieder anzuwenden. + +**Warum verschwinden einige Effekte oder werden vereinfacht, wenn PPTX zurück nach PPT konvertiert wird?** + +Weil PPT einige neuere Objekte/Eigenschaften nicht unterstützt. PowerPoint und Werkzeuge können „Spuren“ dieser Informationen in speziellen Blöcken für spätere Wiederherstellung speichern, aber ältere PowerPoint‑Versionen können sie nicht rendern. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..dcb0e88037 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,68 @@ +--- +title: Rendern einer Folie als SVG-Bild +type: docs +weight: 50 +url: /de/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **SVG-Format** + +SVG — ein Akronym für Scalable Vector Graphics — ist ein Standardgrafiktyp bzw. -format, das zum Rendern zweidimensionaler Bilder verwendet wird. SVG speichert Bilder als Vektoren in XML mit Details, die ihr Verhalten oder ihr Aussehen definieren. + +SVG ist eines der wenigen Bildformate, das in Bezug auf Skalierbarkeit, Interaktivität, Leistung, Barrierefreiheit, Programmierbarkeit und weitere Aspekte sehr hohe Standards erfüllt. Aus diesem Grund wird es häufig in der Webentwicklung eingesetzt. + +Sie möchten SVG‑Dateien verwenden, wenn Sie + +- **Ihre Präsentation in einem *sehr großen Format* drucken möchten.** SVG‑Bilder können auf jede Auflösung oder Größe skaliert werden. Sie können SVG‑Bilder beliebig oft vergrößern, ohne an Qualität zu verlieren. +- **Diagramme und Grafiken Ihrer Folien in *verschiedenen Medien oder Plattformen* nutzen** wollen. Die meisten Viewer können SVG‑Dateien interpretieren. +- **die *kleinstmöglichen Bildgrößen* verwenden** möchten. SVG‑Dateien sind im Allgemeinen kleiner als ihre hochauflösenden Gegenstücke in anderen Formaten, insbesondere in bitmapbasierten Formaten (JPEG oder PNG). + +## **Folien als SVG‑Bilder rendern** + +Aspose.Slides für Node.js via Java ermöglicht den Export von Folien Ihrer Präsentationen als SVG‑Bilder. Führen Sie die folgenden Schritte aus, um SVG‑Bilder zu erzeugen: + +1. Erstellen Sie eine Instanz der Klasse `Presentation`. +2. Durchlaufen Sie alle Folien der Präsentation. +3. Schreiben Sie jede Folie in eine separate SVG‑Datei über `FileOutputStream`. + +{{% alert color="primary" %}} + +Sie können unsere [kostenlose Webanwendung](https://products.aspose.app/slides/conversion/ppt-to-svg) ausprobieren, in der wir die PPT‑zu‑SVG‑Konvertierungsfunktion von Aspose.Slides für Node.js via Java implementiert haben. + +{{% /alert %}} + +Dieser Beispielcode in JavaScript zeigt, wie Sie PPT mit Aspose.Slides in SVG konvertieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Warum kann das erzeugte SVG in verschiedenen Browsern unterschiedlich aussehen?** + +Die Unterstützung bestimmter SVG‑Features wird von den Browser‑Engines unterschiedlich implementiert. Die Parameter von [SVGOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) helfen, Inkompatibilitäten auszugleichen. + +**Ist es möglich, nicht nur Folien, sondern auch einzelne Formen als SVG zu exportieren?** + +Ja. Jede [Form kann als separates SVG](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/) gespeichert werden, was für Symbole, Piktogramme und die Wiederverwendung von Grafiken praktisch ist. + +**Können mehrere Folien zu einem einzigen SVG (Strip/Dokument) kombiniert werden?** + +Das Standardszenario ist eine Folie → ein SVG. Das Kombinieren mehrerer Folien zu einer einzigen SVG‑Leinwand ist ein nachgelagerter Verarbeitungsschritt, der auf Anwendungsebene durchgeführt wird. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..3865c3dfdb --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,154 @@ +--- +title: Export nach HTML5 +type: docs +weight: 40 +url: /de/nodejs-java/export-to-html5/ +keywords: +- PowerPoint zu HTML +- Folien zu HTML +- HTML5 +- HTML-Export +- Präsentation exportieren +- Präsentation konvertieren +- Folien konvertieren +- Java +- Aspose.Slides für Node.js via Java +description: "Export von PowerPoint nach HTML5 in JavaScript" +--- + +{{% alert title="Info" color="info" %}} + +In [Aspose.Slides 21.9](/slides/de/nodejs-java/aspose-slides-for-java-21-9-release-notes/), haben wir die Unterstützung für den HTML5‑Export implementiert. + +{{% /alert %}} + +Der Export nach HTML5 ermöglicht es Ihnen, PowerPoint ohne Web‑Erweiterungen oder Abhängigkeiten in HTML zu konvertieren. Auf diese Weise können Sie mit eigenen Vorlagen sehr flexible Optionen festlegen, die den Exportprozess und das resultierende HTML, CSS, JavaScript und die Animationsattribute definieren. + +## **PowerPoint nach HTML5 exportieren** + +Dieser JavaScript‑Code zeigt, wie Sie eine Präsentation nach HTML5 ohne Web‑Erweiterungen und Abhängigkeiten exportieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +In diesem Fall erhalten Sie sauberes HTML. + +{{% /alert %}} + +Sie können auf diese Weise Einstellungen für Form‑Animationen und Folienübergänge festlegen: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint nach HTML exportieren** + +Dieses JavaScript demonstriert den Standard‑PowerPoint‑nach‑HTML‑Prozess: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +In diesem Fall wird der Präsentationsinhalt über SVG in einer Form wie folgt gerendert: +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="Hinweis" color="warning" %}} + +Wenn Sie diese Methode zum Export von PowerPoint nach HTML verwenden, können Sie aufgrund der SVG‑Darstellung keine Stile anwenden oder bestimmte Elemente animieren. + +{{% /alert %}} + +## **PowerPoint nach HTML5‑Folienansicht exportieren** + +**Aspose.Slides** ermöglicht das Konvertieren einer PowerPoint‑Präsentation in ein HTML5‑Dokument, in dem die Folien im Folienansichtsmodus präsentiert werden. In diesem Fall sehen Sie beim Öffnen der resultierenden HTML5‑Datei im Browser die Präsentation im Folienansichtsmodus auf einer Webseite. + +Dieser JavaScript‑Code demonstriert den Export‑Prozess PowerPoint → HTML5‑Folienansicht: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Eine Präsentation in ein HTML5‑Dokument mit Kommentaren konvertieren** + +Kommentare in PowerPoint sind ein Werkzeug, das Benutzern ermöglicht, Notizen oder Feedback zu Folien hinzuzufügen. Sie sind besonders nützlich in kollaborativen Projekten, in denen mehrere Personen Vorschläge oder Anmerkungen zu bestimmten Folienelementen hinzufügen können, ohne den Hauptinhalt zu verändern. Jeder Kommentar zeigt den Namen des Autors, sodass leicht nachverfolgt werden kann, wer die Anmerkung hinterlassen hat. + +Nehmen wir an, wir haben die folgende PowerPoint‑Präsentation in der Datei **sample.pptx** gespeichert. + +![Two comments on the presentation slide](two_comments_pptx.png) + +Wenn Sie eine PowerPoint‑Präsentation in ein HTML5‑Dokument konvertieren, können Sie einfach festlegen, ob Kommentare aus der Präsentation im Ausgabendokument enthalten sein sollen. Dazu geben Sie die Anzeige‑Parameter für Kommentare in der Eigenschaft `notes_comments_layouting` der [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/)‑Klasse an. + +Das folgende Codebeispiel konvertiert eine Präsentation in ein HTML5‑Dokument, wobei Kommentare rechts von den Folien angezeigt werden. +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +Das Dokument **output.html** ist im Bild unten zu sehen. + +![The comments in the output HTML5 document](two_comments_html5.png) + +## **FAQ** + +**Kann ich steuern, ob Objekt‑Animationen und Folien‑Übergänge in HTML5 abgespielt werden?** + +Ja, HTML5 bietet separate Optionen zum Aktivieren oder Deaktivieren von [shape animations](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) und [slide transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/). + +**Werden Kommentare im Ausgabe‑HTML unterstützt und wo können sie relativ zur Folie platziert werden?** + +Ja, Kommentare können in HTML5 hinzugefügt und (z. B. rechts von der Folie) über [layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) für Notizen und Kommentare positioniert werden. + +**Kann ich Links, die JavaScript aufrufen, aus Sicherheits‑ oder CSP‑Gründen überspringen?** + +Ja, es gibt eine [setting](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks), die es ermöglicht, Hyperlinks mit JavaScript‑Aufrufen beim Speichern zu überspringen. Dies unterstützt die Einhaltung strenger Sicherheitsrichtlinien. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..8d95b132b4 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,66 @@ +--- +title: Export nach XAML +type: docs +weight: 30 +url: /de/nodejs-java/export-to-xaml/ +--- + +## **Exportieren von Präsentationen nach XAML** + +{{% alert color="primary" %}} +In [Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/), haben wir die Unterstützung für den XAML-Export implementiert. Sie können nun Ihre Präsentationen nach XAML exportieren. +{{% /alert %}} + +## **Über XAML** + +XAML ist eine beschreibende Programmiersprache, die es Ihnen ermöglicht, Benutzerklassen für Apps zu erstellen oder zu schreiben, insbesondere für solche, die WPF (Windows Presentation Foundation), UWP (Universal Windows Platform) und Xamarin Forms verwenden. + +XAML, das eine XML-basierte Sprache ist, ist Microsofts Variante zur Beschreibung einer GUI. Sie werden wahrscheinlich die meiste Zeit einen Designer verwenden, um an XAML-Dateien zu arbeiten, können aber dennoch Ihre GUI schreiben und bearbeiten. + +## **Exportieren von Präsentationen nach XAML mit Standardoptionen** + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie eine Präsentation mit den Standardeinstellungen nach XAML exportieren: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exportieren von Präsentationen nach XAML mit benutzerdefinierten Optionen** + +Sie können Optionen aus der Klasse [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions) auswählen, die den Exportvorgang steuern und bestimmen, wie Aspose.Slides Ihre Präsentation nach XAML exportiert. + +Zum Beispiel, wenn Sie möchten, dass Aspose.Slides beim Export nach XAML versteckte Folien Ihrer Präsentation hinzufügt, können Sie die Methode [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-) auf true setzen. Siehe diesen Beispiel‑JavaScript‑Code: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Wie kann ich vorhersehbare Schriftarten sicherstellen, wenn die Originalschriftart nicht auf dem Rechner vorhanden ist?** + +Verwenden Sie [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) in [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — sie wird als Ersatzschriftart verwendet, wenn die Originalschriftart fehlt. Dies hilft, unerwartete Ersetzungen zu vermeiden. + +**Ist das exportierte XAML nur für WPF gedacht oder kann es auch in anderen XAML‑Stacks verwendet werden?** + +XAML ist eine allgemeine UI‑Markup‑Sprache, die in WPF, UWP und Xamarin.Forms verwendet wird. Der Export zielt auf die Kompatibilität mit Microsoft‑XAML‑Stacks ab; das genaue Verhalten und die Unterstützung bestimmter Konstrukte hängen von der Zielplattform ab. Testen Sie das Markup in Ihrer Umgebung. + +**Werden versteckte Folien unterstützt und wie kann ich verhindern, dass sie standardmäßig exportiert werden?** + +Standardmäßig werden versteckte Folien nicht eingeschlossen. Sie können dieses Verhalten über [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/) in [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) steuern — lassen Sie es deaktiviert, wenn Sie sie nicht exportieren müssen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/de/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..6529068645 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,74 @@ +--- +title: PowerPoint-Präsentation in JavaScript erstellen +linktitle: Präsentation erstellen +type: docs +weight: 10 +url: /de/nodejs-java/create-presentation/ +keywords: PowerPoint erstellen java, PowerPoint-Präsentation erstellen, pptx java erstellen +description: Erfahren Sie, wie Sie PowerPoint-Präsentationen wie PPT und PPTX mit JavaScript von Grund auf erstellen. +--- + +## **PowerPoint-Präsentation erstellen** + +Um eine einfache Gerade zu einer ausgewählten Folie der Präsentation hinzuzufügen, folgen Sie bitte den nachstehenden Schritten: + +1. Erstellen Sie eine Instanz der Klasse Presentation. +1. Rufen Sie die Referenz einer Folie über deren Index ab. +1. Fügen Sie mit der Methode addAutoShape, die vom Shapes‑Objekt bereitgestellt wird, ein AutoShape vom Typ Linie hinzu. +1. Speichern Sie die modifizierte Präsentation als PPTX‑Datei. + +Im nachstehenden Beispiel haben wir eine Linie zur ersten Folie der Präsentation hinzugefügt. +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Holen Sie die erste Folie + var slide = pres.getSlides().get_Item(0); + // Fügen Sie ein AutoShape vom Typ Linie hinzu + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Welche Formate kann ich für das Speichern einer neuen Präsentation verwenden?** + +Sie können in [PPTX, PPT und ODP](/slides/de/nodejs-java/save-presentation/) speichern und in [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/), [XPS](/slides/de/nodejs-java/convert-powerpoint-to-xps/), [HTML](/slides/de/nodejs-java/convert-powerpoint-to-html/), [SVG](/slides/de/nodejs-java/convert-powerpoint-to-png/) und [Bilder](/slides/de/nodejs-java/convert-powerpoint-to-png/) exportieren, unter anderem. + +**Kann ich von einer Vorlage (POTX/POTM) ausgehen und als reguläres PPTX speichern?** + +Ja. Laden Sie die Vorlage und speichern Sie sie im gewünschten Format; POTX/POTM/PPTM und ähnliche Formate werden [unterstützt](/slides/de/nodejs-java/supported-file-formats/). + +**Wie kann ich die Foliengröße/Seitenverhältnis beim Erstellen einer Präsentation steuern?** + +Stellen Sie die [Foliengröße](/slides/de/nodejs-java/slide-size/) ein (einschließlich Voreinstellungen wie 4:3 und 16:9 oder benutzerdefinierte Abmessungen) und wählen Sie, wie der Inhalt skaliert werden soll. + +**In welchen Einheiten werden Größen und Koordinaten gemessen?** + +In Punkten: 1 Zoll entspricht 72 Einheiten. + +**Wie gehe ich mit sehr großen Präsentationen (mit vielen Mediendateien) um, um den Speicherverbrauch zu reduzieren?** + +Verwenden Sie [BLOB-Verwaltungsstrategien](/slides/de/nodejs-java/manage-blob/), begrenzen Sie den Speicher im Arbeitsspeicher durch die Nutzung temporärer Dateien und bevorzugen Sie dateibasierte Workflows gegenüber rein speicherbasierten Streams. + +**Kann ich Präsentationen parallel erstellen/speichern?** + +Sie können nicht auf dieselbe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Instanz von [mehreren Threads](/slides/de/nodejs-java/multithreading/) aus zugreifen. Führen Sie separate, isolierte Instanzen pro Thread oder Prozess aus. + +**Wie entferne ich das Testwasserzeichen und die Einschränkungen?** + +[Wenden Sie eine Lizenz an](/slides/de/nodejs-java/licensing/) einmal pro Prozess. Die Lizenz‑XML muss unverändert bleiben und die Lizenzkonfiguration sollte synchronisiert werden, wenn mehrere Threads beteiligt sind. + +**Kann ich das von mir erstellte PPTX digital signieren?** + +Ja. [Digitale Signaturen](/slides/de/nodejs-java/digital-signature-in-powerpoint/) (Hinzufügen und Verifizieren) werden für Präsentationen unterstützt. + +**Werden Makros (VBA) in erstellten Präsentationen unterstützt?** + +Ja. Sie können [VBA‑Projekte erstellen/bearbeiten](/slides/de/nodejs-java/presentation-via-vba/) und makroaktivierte Dateien wie PPTM/PPSM speichern. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/de/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..b5b7ddbf4c --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,117 @@ +--- +title: Präsentation untersuchen +type: docs +weight: 30 +url: /de/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- Präsentation +- Präsentationsformat +- Präsentationseigenschaften +- Dokumenteigenschaften +- Eigenschaften abrufen +- Eigenschaften lesen +- Eigenschaften ändern +- Eigenschaften modifizieren +- PPTX +- PPT +- JavaScript +- Node +description: "PowerPoint-Präsentationseigenschaften in Node lesen und ändern" +--- + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, eine Präsentation zu untersuchen, um deren Eigenschaften zu ermitteln und ihr Verhalten zu verstehen. + +{{% alert title="Info" color="info" %}} + +Die Klassen [PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) und [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) enthalten die Eigenschaften und Methoden, die in den hier beschriebenen Vorgängen verwendet werden. + +{{% /alert %}} + +## **Prüfen des Präsentationsformats** + +Bevor Sie an einer Präsentation arbeiten, möchten Sie möglicherweise herausfinden, in welchem Format (PPT, PPTX, ODP und andere) sich die Präsentation derzeit befindet. + +Sie können das Format einer Präsentation überprüfen, ohne sie zu laden. Siehe diesen JavaScript-Code: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP +``` + + +## **Abrufen von Präsentationseigenschaften** + +Dieser JavaScript-Code zeigt, wie Sie Präsentationseigenschaften (Informationen zur Präsentation) abrufen können: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +Sie möchten möglicherweise die [Eigenschaften in der DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--) Klasse sehen. + +## **Aktualisieren von Präsentationseigenschaften** + +Aspose.Slides stellt die Methode [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-) zur Verfügung, mit der Sie Änderungen an Präsentationseigenschaften vornehmen können. + +Angenommen, wir haben eine PowerPoint-Präsentation mit den unten gezeigten Dokumenteigenschaften. + +![Ursprüngliche Dokumenteigenschaften der PowerPoint-Präsentation](input_properties.png) + +Dieses Codebeispiel zeigt, wie Sie einige Präsentationseigenschaften bearbeiten können: +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +Die Ergebnisse der Änderung der Dokumenteigenschaften werden unten angezeigt. + +![Geänderte Dokumenteigenschaften der PowerPoint-Präsentation](output_properties.png) + +## **Nützliche Links** + +Um weitere Informationen zu einer Präsentation und ihren Sicherheitsattributen zu erhalten, können diese Links nützlich sein: + +- [Überprüfen, ob eine Präsentation verschlüsselt ist](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [Überprüfen, ob eine Präsentation schreibgeschützt (nur lesbar) ist](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [Überprüfen, ob eine Präsentation passwortgeschützt ist, bevor sie geladen wird](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [Bestätigen des zur Sicherung einer Präsentation verwendeten Passworts](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **FAQ** + +**Wie kann ich prüfen, ob Schriften eingebettet sind und welche das sind?** + +Suchen Sie nach [Informationen zu eingebetteten Schriften](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/) auf Präsentationsebene und vergleichen Sie diese Einträge mit der Menge der [tatsächlich im Inhalt verwendeten Schriften](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/), um zu ermitteln, welche Schriften für die Darstellung kritisch sind. + +**Wie kann ich schnell feststellen, ob die Datei versteckte Folien enthält und wie viele?** + +Durchlaufen Sie die [Folienkollektion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) und prüfen Sie für jede Folie das [Sichtbarkeits‑Flag](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/). + +**Kann ich erkennen, ob eine benutzerdefinierte Foliengröße und -ausrichtung verwendet wird und ob sie von den Standardeinstellungen abweicht?** + +Ja. Vergleichen Sie die aktuelle [Foliengröße](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) und Ausrichtung mit den Standard‑Voreinstellungen; dies hilft, das Verhalten beim Drucken und Export vorherzusehen. + +**Gibt es eine schnelle Methode, um zu erkennen, ob Diagramme externe Datenquellen referenzieren?** + +Ja. Durchlaufen Sie alle [Diagramme](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), prüfen Sie deren [Datenquelle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/) und stellen Sie fest, ob die Daten intern oder verknüpft sind, einschließlich etwaiger defekter Links. + +**Wie kann ich „schwere“ Folien bewerten, die das Rendern oder den PDF‑Export verlangsamen könnten?** + +Zählen Sie für jede Folie die Objektanzahl und achten Sie auf große Bilder, Transparenz, Schatten, Animationen und Multimedia; vergeben Sie eine grobe Komplexitätsbewertung, um mögliche Leistungsspitzen zu kennzeichnen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/de/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..eea063f0aa --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,85 @@ +--- +title: Präsentation importieren +type: docs +weight: 60 +url: /de/nodejs-java/import-presentation/ +keywords: "PowerPoint importieren, PDF zu Präsentation, PDF zu PPTX, PDF zu PPT, Java, Aspose.Slides für Node.js via Java" +description: "PowerPoint‑Präsentation aus PDF importieren. PDF in PowerPoint konvertieren" +--- + +Mit [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) können Sie Präsentationen aus Dateien in anderen Formaten importieren. Aspose.Slides stellt die Klasse [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) zur Verfügung, um Präsentationen aus PDFs, HTML‑Dokumenten usw. zu importieren. + +## **PowerPoint aus PDF importieren** + +In diesem Fall können Sie ein PDF in eine PowerPoint‑Präsentation konvertieren. + +pdf-zu-powerpoint + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Rufen Sie die Methode [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) auf und übergeben Sie die PDF‑Datei. +3. Verwenden Sie die Methode [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) , um die Datei im PowerPoint‑Format zu speichern. + +Dieser JavaScript‑Code demonstriert die PDF‑zu‑PowerPoint‑Operation: +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Vielleicht möchten Sie die **Aspose free**‑Web‑App [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint) ausprobieren, da sie eine Live‑Implementierung des hier beschriebenen Prozesses bietet. +{{% /alert %}} + +## **PowerPoint aus HTML importieren** + +In diesem Fall können Sie ein HTML‑Dokument in eine PowerPoint‑Präsentation konvertieren. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Rufen Sie die Methode [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) auf und übergeben Sie die HTML‑Datei. +3. Verwenden Sie die Methode [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) , um die Datei im PowerPoint‑Format zu speichern. + +Dieser JavaScript‑Code demonstriert die HTML‑zu‑PowerPoint‑Operation: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Werden Tabellen beim Importieren eines PDFs beibehalten und kann ihre Erkennung verbessert werden?** + +Tabellen können beim Import erkannt werden; [PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) enthält die Methode [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables), die die Tabellenerkennung aktiviert. Die Wirksamkeit hängt von der Struktur des PDFs ab. + +{{% alert title="Note" color="warning" %}} +Sie können Aspose.Slides auch verwenden, um HTML in andere gängige Dateiformate zu konvertieren: + +* [HTML zu Bild](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML zu XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML zu TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/de/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..49f197f488 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,123 @@ +--- +title: Slide-Show verwalten +type: docs +weight: 90 +url: /de/nodejs-java/manage-slide-show/ +keywords: +- Show-Typ +- von einem Redner präsentiert +- von einer Einzelperson durchblättert +- an einem Kiosk durchblättert +- Show-Optionen +- kontinuierlich wiederholen +- ohne Erzählertext anzeigen +- ohne Animation anzeigen +- Stiftfarbe +- Folien anzeigen +- benutzerdefinierte Show +- Folien vorwärts schalten +- manuell +- mit Timings verwenden +- PowerPoint +- Präsentation +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "Verwalten von Slide-Show-Einstellungen in PowerPoint-Präsentationen mit JavaScript" +--- + +In Microsoft PowerPoint sind die **Slide Show**‑Einstellungen ein wichtiges Werkzeug zum Vorbereiten und Durchführen professioneller Präsentationen. Eine der wichtigsten Funktionen in diesem Abschnitt ist **Set Up Show**, die es Ihnen ermöglicht, Ihre Präsentation an bestimmte Bedingungen und Zielgruppen anzupassen und so Flexibilität und Komfort zu gewährleisten. Mit dieser Funktion können Sie den Anzeigetyp auswählen (z. B. von einem Redner präsentiert, von einer Einzelperson durchblättert oder an einem Kiosk durchblättert), das Looping ein‑ oder ausschalten, bestimmte Folien zur Anzeige auswählen und Timings verwenden. Dieser Vorbereitungsschritt ist entscheidend, um Ihre Präsentation wirkungsvoller und professioneller zu gestalten. + +`getSlideShowSettings` ist eine Methode der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) , die ein Objekt vom Typ [SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/) zurückgibt, mit dem Sie die Slide‑Show‑Einstellungen in einer PowerPoint‑Präsentation verwalten können. In diesem Artikel zeigen wir, wie Sie diese Methode verwenden, um verschiedene Aspekte der Slide‑Show‑Einstellungen zu konfigurieren und zu steuern. + +## **Show‑Typ auswählen** + +`SlideShowSettings.setSlideShowType` definiert den Typ der Slide‑Show, der eine Instanz einer der folgenden Klassen sein kann: [PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/), [BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/) oder [BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/). Durch die Verwendung dieser Methode können Sie die Präsentation an verschiedene Nutzungsszenarien anpassen, z. B. automatisierte Kioske oder manuelle Präsentationen. + +Das nachstehende Codebeispiel erstellt eine neue Präsentation und setzt den Show‑Typ auf „Browsed by an individual“, ohne die Bildlaufleiste anzuzeigen. +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Show‑Optionen aktivieren** + +`SlideShowSettings.setLoop` bestimmt, ob die Slide‑Show in einer Schleife wiederholt werden soll, bis sie manuell gestoppt wird. Dies ist nützlich für automatisierte Präsentationen, die kontinuierlich laufen müssen. `SlideShowSettings.setShowNarration` legt fest, ob während der Slide‑Show gesprochene Kommentare abgespielt werden sollen. Das ist hilfreich für automatisierte Präsentationen, die dem Publikum eine Sprachführung bieten. `SlideShowSettings.setShowAnimation` bestimmt, ob Animationen, die Folienobjekten hinzugefügt wurden, abgespielt werden. Das ist nützlich, um den vollständigen visuellen Effekt der Präsentation zu gewährleisten. + +Das folgende Codebeispiel erstellt eine neue Präsentation und wiederholt die Slide‑Show in einer Schleife. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Folien zum Anzeigen auswählen** + +`SlideShowSettings.setSlides` ermöglicht es Ihnen, einen Folienbereich festzulegen, der während der Präsentation angezeigt werden soll. Das ist nützlich, wenn Sie nur einen Teil der Präsentation statt aller Folien zeigen möchten. Das nachstehende Codebeispiel erstellt eine neue Präsentation und legt den Folienbereich von Folie `2` bis `9` fest. +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Automatisches Vorwärtsblättern von Folien** + +`SlideShowSettings.setUseTimings` erlaubt das Aktivieren oder Deaktivieren der Verwendung vordefinierter Timings für jede Folie. Das ist praktisch, um Folien automatisch mit festgelegten Anzeigedauern zu zeigen. Das unten stehende Codebeispiel erstellt eine neue Präsentation und deaktiviert die Verwendung von Timings. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Mediensteuerungen anzeigen** + +`SlideShowSettings.setShowMediaControls` legt fest, ob Mediensteuerungen (wie Play, Pause und Stop) während der Slide‑Show angezeigt werden sollen, wenn multimediale Inhalte (z. B. Video oder Audio) wiedergegeben werden. Das ist nützlich, wenn Sie dem Präsentierenden die Kontrolle über die Medienwiedergabe während der Präsentation geben möchten. + +Das folgende Codebeispiel erstellt eine neue Präsentation und aktiviert die Anzeige von Mediensteuerungen. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **FAQ** + +**Kann ich eine Präsentation speichern, sodass sie direkt im Slide‑Show‑Modus geöffnet wird?** + +Ja. Speichern Sie die Datei als PPSX oder PPSM; diese Formate starten die Slide‑Show direkt, wenn sie in PowerPoint geöffnet werden. In Aspose.Slides wählen Sie das entsprechende Speicherformat [during export](/slides/de/nodejs-java/save-presentation/). + +**Kann ich einzelne Folien von der Show ausschließen, ohne sie aus der Datei zu löschen?** + +Ja. Markieren Sie eine Folie als [hidden](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/). Versteckte Folien bleiben in der Präsentation, werden jedoch während der Slide‑Show nicht angezeigt. + +**Kann Aspose.Slides eine Slide‑Show abspielen oder eine Live‑Präsentation auf dem Bildschirm steuern?** + +Nein. Aspose.Slides bearbeitet, analysiert und konvertiert Präsentationsdateien; die eigentliche Wiedergabe wird von einer Viewer‑Anwendung wie PowerPoint übernommen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/de/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..66e04380ad --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,275 @@ +--- +title: Präsentation zusammenführen +type: docs +weight: 40 +url: /de/nodejs-java/merge-presentation/ +keywords: "PowerPoint zusammenführen, PPTX, PPT, PowerPoint kombinieren, Präsentation zusammenführen, Präsentation kombinieren, Java" +description: "PowerPoint‑Präsentation in JavaScript zusammenführen oder kombinieren" +--- + +## **Präsentationszusammenführung** + +Wenn Sie eine Präsentation mit einer anderen zusammenführen, kombinieren Sie praktisch deren Folien zu einer einzigen Präsentation, um eine Datei zu erhalten. + +{{% alert title="Info" color="info" %}} + +Die meisten Präsentationsprogramme (PowerPoint oder OpenOffice) verfügen nicht über Funktionen, die es Benutzern ermöglichen, Präsentationen auf diese Weise zu kombinieren. + +[**Aspose.Slides für Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), ermöglicht jedoch das Zusammenführen von Präsentationen auf verschiedene Arten. Sie können Präsentationen mit all ihren Formen, Stilen, Texten, Formatierungen, Kommentaren, Animationen usw. zusammenführen, ohne sich um Qualitäts- oder Datenverlust Sorgen machen zu müssen. + +**Siehe auch** + +[Folien klonen](https://docs.aspose.com/slides/nodejs-java/clone-slides/). + +{{% /alert %}} + +### **Was kann zusammengeführt werden** + +Mit Aspose.Slides können Sie zusammenführen + +* gesamte Präsentationen. Alle Folien aus den Präsentationen werden in einer Präsentation zusammengeführt +* bestimmte Folien. Ausgewählte Folien werden in einer Präsentation zusammengeführt +* Präsentationen in einem Format (PPT zu PPT, PPTX zu PPTX usw.) und in verschiedenen Formaten (PPT zu PPTX, PPTX zu ODP usw.) miteinander. + +{{% alert title="Hinweis" color="warning" %}} + +Neben Präsentationen ermöglicht Aspose.Slides das Zusammenführen anderer Dateien: + +* [Bilder](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/), wie z. B. [JPG zu JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) oder [PNG zu PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/) +* Dokumente, wie z. B. [PDF zu PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) oder [HTML zu HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/) +* Und zwei unterschiedliche Dateien, wie z. B. [Bild zu PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) oder [JPG zu PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) oder [TIFF zu PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/). + +{{% /alert %}} + +### **Zusammenführungsoptionen** + +Sie können Optionen anwenden, die bestimmen, ob + +* jede Folie in der Ausgabepäsentation einen eindeutigen Stil beibehält +* ein bestimmter Stil für alle Folien in der Ausgabepäsentation verwendet wird. + +Um Präsentationen zusammenzuführen, stellt Aspose.Slides die [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-)‑Methoden (aus der [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection)-Klasse) bereit. Es gibt mehrere Implementierungen der `addClone`‑Methoden, die die Parameter des Zusammenführungsprozesses definieren. Jedes Presentation‑Objekt besitzt eine [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--)‑Sammlung, sodass Sie die `addClone`‑Methode von der Präsentation aus aufrufen können, in die Sie Folien einfügen möchten. + +Die `addClone`‑Methode gibt ein `Slide`‑Objekt zurück, das eine Kopie der Quellfolie ist. Die Folien in einer Ausgabepäsentation sind einfach Kopien der Folien aus der Quelle. Daher können Sie die resultierenden Folien ändern (z. B. Stile, Formatierungsoptionen oder Layouts anwenden), ohne dass die Quellpräsentationen beeinflusst werden. + +## **Präsentationen zusammenführen** + +Aspose.Slides stellt die [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-)‑Methode bereit, die das Kombinieren von Folien ermöglicht, während die Folien ihre Layouts und Stile beibehalten (Standardparameter). + +Dieser JavaScript‑Code zeigt, wie Präsentationen zusammengeführt werden: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Präsentationen mit Folienmaster zusammenführen** + +Aspose.Slides stellt die [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-)‑Methode bereit, die das Kombinieren von Folien ermöglicht, wobei eine Folienmaster‑Vorlage angewendet wird. Auf diese Weise können Sie bei Bedarf den Stil der Folien in der Ausgabepäsentation ändern. + +Dieser JavaScript‑Code demonstriert den beschriebenen Vorgang: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Hinweis" color="warning" %}} + +Das Folienlayout für den Folienmaster wird automatisch ermittelt. Wenn kein geeignetes Layout ermittelt werden kann und der boolesche Parameter `allowCloneMissingLayout` der `addClone`‑Methode auf true gesetzt ist, wird das Layout der Quellfolie verwendet. Andernfalls wird eine [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException) ausgelöst. + +{{% /alert %}} + +Wenn Sie möchten, dass die Folien in der Ausgabepäsentation ein anderes Folienlayout erhalten, verwenden Sie stattdessen die [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-)‑Methode beim Zusammenführen. + +## **Bestimmte Folien aus Präsentationen zusammenführen** + +Das Zusammenführen bestimmter Folien aus mehreren Präsentationen ist nützlich, um benutzerdefinierte Foliensätze zu erstellen. Aspose.Slides für Node.js via Java ermöglicht das Auswählen und Importieren nur der benötigten Folien. Die API bewahrt Formatierung, Layout und Design der Originalfolien. + +Der folgende JavaScript‑Code erzeugt eine neue Präsentation, fügt Titelfolien aus zwei anderen Präsentationen hinzu und speichert das Ergebnis in einer Datei: +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **Präsentationen mit Folienlayout zusammenführen** + +Dieser JavaScript‑Code zeigt, wie Folien aus Präsentationen kombiniert werden, während ein bevorzugtes Folienlayout angewendet wird, um eine Ausgabepäsentation zu erhalten: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Präsentationen mit unterschiedlichen Foliengrößen zusammenführen** + +{{% alert title="Hinweis" color="warning" %}} + +Sie können keine Präsentationen mit unterschiedlichen Foliengrößen zusammenführen. + +{{% /alert %}} + +Um 2 Präsentationen mit unterschiedlichen Foliengrößen zusammenzuführen, müssen Sie eine der Präsentationen skalieren, sodass ihre Größe der der anderen Präsentation entspricht. + +Dieser Beispielcode demonstriert den beschriebenen Vorgang: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Folien in Präsentationsabschnitt zusammenführen** + +Dieser JavaScript‑Code zeigt, wie Sie eine bestimmte Folie in einen Abschnitt einer Präsentation zusammenführen: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +Die Folie wird am Ende des Abschnitts eingefügt. + +## **FAQ** + +**Werden Notizen beim Zusammenführen erhalten?** + +Ja. Beim Klonen von Folien übernimmt Aspose.Slides alle Folienelemente, einschließlich Notizen, Formatierungen und Animationen. + +**Werden Kommentare und deren Autoren übertragen?** + +Kommentare, als Teil des Folieninhalts, werden mit der Folie kopiert. Kommentare‑Autor‑Labels bleiben als Kommentarobjekte in der resultierenden Präsentation erhalten. + +**Was ist, wenn die Quellpräsentation passwortgeschützt ist?** + +Sie muss [mit dem Passwort geöffnet werden](/slides/de/nodejs-java/password-protected-presentation/) über [LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/); nach dem Laden können diese Folien sicher in eine ungeschützte Zieldatei (oder ebenfalls in eine geschützte) geklont werden. + +**Wie thread‑sicher ist der Zusammenführungsvorgang?** + +Verwenden Sie nicht dieselbe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Instanz aus [mehreren Threads](/slides/de/nodejs-java/multithreading/). Die empfohlene Regel lautet „ein Dokument – ein Thread“; verschiedene Dateien können parallel in separaten Threads verarbeitet werden. + +## **Siehe auch** + +Aspose bietet einen [KOSTENLOSEN Online‑Collage‑Ersteller](https://products.aspose.app/slides/collage). Mit diesem Online‑Dienst können Sie [JPG zu JPG](https://products.aspose.app/slides/collage/jpg) oder PNG zu PNG‑Bilder zusammenführen, [Fotogitter](https://products.aspose.app/slides/collage/photo-grid) erstellen und mehr. + +Probieren Sie den [Aspose KOSTENLOSEN Online‑Zusammenführer](https://products.aspose.app/slides/merger). Er ermöglicht das Zusammenführen von PowerPoint‑Präsentationen im gleichen Format (z. B. PPT zu PPT, PPTX zu PPTX) oder über verschiedene Formate hinweg (z. B. PPT zu PPTX, PPTX zu ODP). + +[![Aspose KOSTENLOSER Online‑Zusammenführer](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/de/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..c9e8dd4884 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: Präsentation in JavaScript öffnen +linktitle: Präsentationen öffnen +type: docs +weight: 20 +url: /de/nodejs-java/open-presentation/ +keywords: +- PowerPoint öffnen +- Präsentation öffnen +- PPTX öffnen +- PPT öffnen +- ODP öffnen +- Präsentation laden +- PPTX laden +- PPT laden +- ODP laden +- geschützte Präsentation +- große Präsentation +- externe Ressource +- Binärobjekt +- Node.js +- JavaScript +- Aspose.Slides +description: "PowerPoint (.pptx, .ppt) und OpenDocument (.odp) Präsentationen mühelos mit Aspose.Slides für Node.js öffnen - schnell, zuverlässig, voll funktionsfähig." +--- + +## **Überblick** + +Neben dem Erstellen von PowerPoint‑Präsentationen von Grund auf ermöglicht Aspose.Slides auch das Öffnen vorhandener Präsentationen. Nach dem Laden einer Präsentation können Sie Informationen darüber abrufen, Folieninhalte bearbeiten, neue Folien hinzufügen, vorhandene entfernen und vieles mehr. + +## **Präsentationen öffnen** + +Um eine vorhandene Präsentation zu öffnen, instanziieren Sie die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Klasse und übergeben den Dateipfad an deren Konstruktor. + +Das folgende JavaScript‑Beispiel zeigt, wie man eine Präsentation öffnet und die Folienzahl ermittelt: +```js +// Instanziieren Sie die Presentation‑Klasse und übergeben Sie einen Dateipfad an ihren Konstruktor. +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // Geben Sie die Gesamtzahl der Folien in der Präsentation aus. + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **Passwortgeschützte Präsentationen öffnen** + +Wenn Sie eine passwortgeschützte Präsentation öffnen müssen, übergeben Sie das Passwort über die [setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword)‑Methode der [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/)‑Klasse, um sie zu entschlüsseln und zu laden. Der folgende JavaScript‑Code demonstriert diesen Vorgang: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // Führen Sie Operationen an der entschlüsselten Präsentation durch. +} finally { + presentation.dispose(); +} +``` + + +## **Große Präsentationen öffnen** + +Aspose.Slides stellt Optionen bereit – insbesondere die [getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions)‑Methode in der [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/)‑Klasse –, um das Laden großer Präsentationen zu unterstützen. + +Der folgende JavaScript‑Code demonstriert das Laden einer großen Präsentation (z. B. 2 GB): +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// Wählen Sie das KeepLocked-Verhalten – die Präsentationsdatei bleibt für die Lebensdauer der +// Presentation-Instanz gesperrt, muss jedoch nicht in den Speicher geladen oder in eine temporäre Datei kopiert werden. +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // Die große Präsentation wurde geladen und kann verwendet werden, während der Speicherverbrauch gering bleibt. + + // Änderungen an der Präsentation vornehmen. + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // Speichern Sie die Präsentation in eine andere Datei. Der Speicherverbrauch bleibt während dieses Vorgangs gering. + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // Nicht tun! Es wird eine I/O-Ausnahme ausgelöst, weil die Datei gesperrt ist, bis das Präsentationsobjekt freigegeben wird. + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// Es ist in Ordnung, dies hier zu tun. Die Quelldatei ist nicht mehr von dem Präsentationsobjekt gesperrt. +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +Um bestimmte Einschränkungen beim Arbeiten mit Streams zu umgehen, kann Aspose.Slides den Inhalt eines Streams kopieren. Das Laden einer großen Präsentation aus einem Stream führt dazu, dass die Präsentation kopiert wird und das Laden verlangsamt werden kann. Daher empfehlen wir dringend, beim Laden einer großen Präsentation den Dateipfad der Präsentation anstelle eines Streams zu verwenden. + +Beim Erstellen einer Präsentation, die große Objekte (Video, Audio, hochauflösende Bilder usw.) enthält, können Sie [BLOB management](/slides/de/nodejs-java/manage-blob/) nutzen, um den Speicherverbrauch zu reduzieren. +{{%/alert %}} + +## **Externe Ressourcen steuern** + +Aspose.Slides stellt das Interface [IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/) zur Verfügung, mit dem Sie externe Ressourcen verwalten können. Der folgende JavaScript‑Code zeigt, wie das Interface `IResourceLoadingCallback` verwendet wird: +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // Ein Ersatzbild laden. + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // Eine Ersatz-URL festlegen. + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // Alle anderen Bilder überspringen. + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **Präsentationen ohne eingebettete Binärobjekte laden** + +Eine PowerPoint‑Präsentation kann die folgenden Arten eingebetteter Binärobjekte enthalten: + +- VBA‑Projekt (zugänglich über [Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject)); +- OLE‑Objekt‑eingebettete Daten (zugänglich über [OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData)); +- ActiveX‑Steuerungs‑Binärdaten (zugänglich über [Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary)). + +Mit der Methode [LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects) können Sie eine Präsentation ohne eingebettete Binärobjekte laden. + +Diese Methode ist nützlich, um potenziell schädliche Binärinhalte zu entfernen. Der folgende JavaScript‑Code demonstriert, wie man eine Präsentation ohne eingebettete Binärinhalte lädt: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // Operationen an der Präsentation durchführen. +} finally { + presentation.dispose(); +} +``` + + +## **FAQ** + +**Wie kann ich erkennen, dass eine Datei beschädigt ist und nicht geöffnet werden kann?** + +Beim Laden erhalten Sie eine Parsing‑/Format‑Validierungs‑Ausnahme. Solche Fehler erwähnen häufig eine ungültige ZIP‑Struktur oder beschädigte PowerPoint‑Datensätze. + +**Was passiert, wenn beim Öffnen erforderliche Schriftarten fehlen?** + +Die Datei wird geöffnet, aber beim späteren [rendering/export](/slides/de/nodejs-java/convert-presentation/) können Schriftarten ersetzt werden. [Configure font substitutions](/slides/de/nodejs-java/font-substitution/) oder [add the required fonts](/slides/de/nodejs-java/custom-font/) zur Laufzeitumgebung hinzufügen. + +**Wie sieht es mit eingebetteten Medien (Video/Audio) beim Öffnen aus?** + +Sie stehen als Präsentationsressourcen zur Verfügung. Wenn Medien über externe Pfade referenziert werden, stellen Sie sicher, dass diese Pfade in Ihrer Umgebung zugänglich sind; andernfalls können beim [rendering/export](/slides/de/nodejs-java/convert-presentation/) Medien weggelassen werden. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/de/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..8e9835f8c5 --- /dev/null +++ b/de/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,205 @@ +--- +title: Präsentationen in JavaScript speichern +linktitle: Präsentationen speichern +type: docs +weight: 80 +url: /de/nodejs-java/save-presentation/ +keywords: +- PowerPoint speichern +- OpenDocument speichern +- Präsentation speichern +- Folie speichern +- PPT speichern +- PPTX speichern +- ODP speichern +- Präsentation in Datei +- Präsentation in Stream +- vordefinierter Ansichtstyp +- Strict Office Open XML-Format +- Zip64-Modus +- Vorschaubild aktualisieren +- Speicherfortschritt +- Node.js +- JavaScript +- Aspose.Slides +description: "Erfahren Sie, wie Sie Präsentationen in JavaScript mit Aspose.Slides—Export nach PowerPoint oder OpenDocument bei gleichzeitiger Beibehaltung von Layouts, Schriftarten und Effekten." +--- + +## **Übersicht** + +[Open Presentations in JavaScript](/slides/de/nodejs-java/open-presentation/) beschreibt, wie die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klasse verwendet wird, um eine Präsentation zu öffnen. Dieser Artikel erklärt, wie man Präsentationen erstellt und speichert. Die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klasse enthält den Inhalt einer Präsentation. Egal, ob Sie eine Präsentation von Grund auf neu erstellen oder eine bestehende ändern, Sie möchten sie am Ende speichern. Mit Aspose.Slides für Node.js können Sie in eine **Datei** oder **Stream** speichern. Dieser Artikel erklärt die verschiedenen Möglichkeiten, eine Präsentation zu speichern. + +## **Präsentationen in Dateien speichern** + +Speichern Sie eine Präsentation in einer Datei, indem Sie die `save`‑Methode der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klasse aufrufen. Übergeben Sie den Dateinamen und das Speicherformat an die Methode. Das folgende Beispiel zeigt, wie man eine Präsentation mit Aspose.Slides speichert. +```js +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt. +let presentation = new aspose.slides.Presentation(); +try { + // Führen Sie hier einige Arbeiten aus... + + // Speichern Sie die Präsentation in einer Datei. + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Präsentationen in Streams speichern** + +Sie können eine Präsentation in einen Stream speichern, indem Sie einen Ausgabestream an die `save`‑Methode der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klasse übergeben. Eine Präsentation kann in viele Stream‑Typen geschrieben werden. Im folgenden Beispiel erzeugen wir eine neue Präsentation und speichern sie in einen Dateistream. +```js +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt. +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // Speichern Sie die Präsentation in den Stream. + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **Präsentationen mit vordefiniertem Ansichtstyp speichern** + +Aspose.Slides ermöglicht es Ihnen, die Anfangsansicht festzulegen, die PowerPoint verwendet, wenn die erzeugte Präsentation geöffnet wird, über die [ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/) Klasse. Verwenden Sie die [setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) Methode mit einem Wert aus der [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/) Aufzählung. +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Präsentationen im Strict Office Open XML-Format speichern** + +Aspose.Slides ermöglicht es Ihnen, eine Präsentation im Strict Office Open XML‑Format zu speichern. Verwenden Sie die [PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) Klasse und setzen Sie deren Conformance‑Eigenschaft beim Speichern. Wenn Sie [Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict) … setzen, wird die Ausgabedatei im Strict Office Open XML‑Format gespeichert. + +Das folgende Beispiel erstellt eine Präsentation und speichert sie im Strict Office Open XML‑Format. +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// Instanziieren Sie die Presentation‑Klasse, die eine Präsentationsdatei darstellt. +let presentation = new aspose.slides.Presentation(); +try { + // Speichern Sie die Präsentation im Strict Office Open XML‑Format. + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **Präsentationen im Office Open XML-Format im Zip64‑Modus speichern** + +Eine Office Open XML‑Datei ist ein ZIP‑Archiv, das Grenzen von 4 GB (2^32 Bytes) für die unkomprimierte Größe jeder Datei, die komprimierte Größe jeder Datei und die Gesamtabmessungen des Archivs festlegt und zudem auf 65 535 (2^16‑1) Dateien beschränkt. ZIP64‑Format‑Erweiterungen erhöhen diese Grenzen auf 2^64. + +Die Methode [PptxOptions.setZip64Mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) ermöglicht es Ihnen, festzulegen, wann beim Speichern einer Office Open XML‑Datei ZIP64‑Format‑Erweiterungen verwendet werden sollen. + +Diese Methode kann mit den folgenden Modi verwendet werden: + +- [IfNecessary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#IfNecessary) verwendet ZIP64‑Format‑Erweiterungen nur, wenn die Präsentation die oben genannten Einschränkungen überschreitet. Dies ist der Standardmodus. +- [Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) verwendet ZIP64‑Format‑Erweiterungen nie. +- [Always](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Always) verwendet ZIP64‑Format‑Erweiterungen immer. + +Der folgende Code demonstriert, wie man eine Präsentation als PPTX mit aktivierten ZIP64‑Format‑Erweiterungen speichert: +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="HINWEIS" color="warning" %}} +Wenn Sie mit [Zip64Mode.Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) … speichern, wird eine [PptxException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxexception/) … ausgelöst, wenn die Präsentation nicht im ZIP32‑Format gespeichert werden kann. +{{% /alert %}} + +## **Präsentationen ohne Aktualisierung des Vorschaubildes speichern** + +Die Methode [PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) steuert die Erzeugung des Vorschaubildes beim Speichern einer Präsentation als PPTX: + +- Wenn auf `true` gesetzt, wird das Vorschaubild beim Speichern aktualisiert. Dies ist die Standardeinstellung. +- Wenn auf `false` gesetzt, bleibt das aktuelle Vorschaubild erhalten. Hat die Präsentation kein Vorschaubild, wird keines erzeugt. + +Im nachfolgenden Code wird die Präsentation als PPTX gespeichert, ohne ihr Vorschaubild zu aktualisieren. +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Diese Option hilft, die zum Speichern einer Präsentation im PPTX‑Format benötigte Zeit zu verkürzen. +{{% /alert %}} + +## **Speicherfortschritt in Prozent melden** + +Die Meldung des Speicherfortschritts wird über die Methode [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) auf [SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) und deren Unterklassen konfiguriert. Stellen Sie einen Java‑Proxy bereit, der das [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/) Interface implementiert; während des Exports erhält das Callback periodisch Prozent‑Updates. + +Die folgenden Code‑Snippets zeigen, wie man `IProgressCallback` verwendet. +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // Verwenden Sie hier den Fortschrittswert in Prozent. + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Aspose hat eine [kostenlose PowerPoint‑Splitter‑App](https://products.aspose.app/slides/splitter) entwickelt, die es ermöglicht, eine Präsentation in mehrere Dateien zu teilen, indem ausgewählte Folien als neue PPTX‑ oder PPT‑Dateien gespeichert werden. +{{% /alert %}} + +## **FAQ** + +**Wird „Fast Save“ (inkrementelles Speichern) unterstützt, sodass nur Änderungen geschrieben werden?** + +Nein. Beim Speichern wird jedes Mal die komplette Zieldatei erstellt; inkrementelles „Fast Save“ wird nicht unterstützt. + +**Ist es thread‑sicher, dieselbe Presentation‑Instanz aus mehreren Threads zu speichern?** + +Nein. Eine [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)‑Instanz [ist nicht thread‑sicher](/slides/de/nodejs-java/multithreading/); speichern Sie sie aus einem einzigen Thread. + +**Was passiert mit Hyperlinks und extern verlinkten Dateien beim Speichern?** + +[Hyperlinks](/slides/de/nodejs-java/manage-hyperlinks/) werden beibehalten. Extern verlinkte Dateien (z. B. Videos über relative Pfade) werden nicht automatisch kopiert – stellen Sie sicher, dass die referenzierten Pfade weiterhin erreichbar sind. + +**Kann ich Dokument‑Metadaten (Autor, Titel, Unternehmen, Datum) setzen/speichern?** + +Ja. Standard‑[document properties](/slides/de/nodejs-java/presentation-properties/) werden unterstützt und beim Speichern in die Datei geschrieben. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/modern-api/_index.md b/de/nodejs-java/developer-guide/modern-api/_index.md index b754926978..2b9b100be1 100644 --- a/de/nodejs-java/developer-guide/modern-api/_index.md +++ b/de/nodejs-java/developer-guide/modern-api/_index.md @@ -7,51 +7,50 @@ keywords: "CrossPlatform Moderne API" description: "Moderne API" --- -## Einführung +## **Einleitung** -Historisch gesehen hat Aspose Slides eine Abhängigkeit von java.awt und hat in der öffentlichen API die folgenden Klassen von dort: +Historisch hat Aspose Slides eine Abhängigkeit von java.awt und stellt in der öffentlichen API die folgenden Klassen daraus bereit: - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -Seit Version 24.4 ist diese öffentliche API als veraltet erklärt. +Ab Version 24.4 ist diese öffentliche API als veraltet deklariert. -Um die Abhängigkeiten von diesen Klassen loszuwerden, haben wir die sogenannte "Moderne API" hinzugefügt - d.h. die API, die anstelle der veralteten verwendet werden sollte, deren Signaturen Abhängigkeiten von BufferedImage enthalten. Graphics2D ist als veraltet erklärt und seine Unterstützung wird aus der öffentlichen Slides API entfernt. +Um die Abhängigkeiten von diesen Klassen zu entfernen, haben wir die sogenannte „Modern API“ hinzugefügt – also die API, die anstelle der veralteten verwendet werden sollte, deren Signaturen Abhängigkeiten von BufferedImage enthalten. Graphics2D ist als veraltet markiert und seine Unterstützung wurde aus der öffentlichen Slides‑API entfernt. -Die Entfernung der veralteten öffentlichen API mit Abhängigkeiten von System.Drawing wird in der Version 24.8 erfolgen. +Die Entfernung der veralteten öffentlichen API mit Abhängigkeiten von System.Drawing erfolgt in der Version 24.8. -## Moderne API +## **Moderne API** -Die folgenden Klassen und Enums wurden zur öffentlichen API hinzugefügt: +Folgende Klassen und Aufzählungen wurden zur öffentlichen API hinzugefügt: -- IImage - stellt das Raster- oder Vektorbild dar. -- ImageFormat - repräsentiert das Dateiformat des Bildes. -- Images - Methoden zur Instanziierung und Arbeit mit dem IImage-Interface. +- IImage – repräsentiert das Raster‑ oder Vektorbild. +- ImageFormat – repräsentiert das Dateiformat des Bildes. +- Images – Methoden zum Instanziieren und Arbeiten mit der IImage‑Klasse. -Bitte beachten Sie, dass IImage disposabel ist (es implementiert das IDisposable-Interface und seine Verwendung sollte in using oder auf andere praktische Weise entsorgt werden). - -Ein typisches Szenario zur Verwendung der neuen API könnte folgendermaßen aussehen: +Bitte beachten Sie, dass IImage entladen werden kann (es implementiert die IDisposable‑Schnittstelle und seine Verwendung sollte in einem using‑Block erfolgen oder auf andere geeignete Weise entsorgt werden). +Ein typisches Szenario für die Verwendung der neuen API könnte wie folgt aussehen: ``` javascript var pres = new aspose.slides.Presentation(); try { var ppImage; - // instanziiere eine disposabel Instanz von IImage aus der Datei auf der Festplatte. + // Instanziiere eine disposable Instanz von IImage aus der Datei auf der Festplatte. var image = aspose.slides.Images.fromFile("image.png"); try { - // erstelle ein PowerPoint-Bild, indem du eine Instanz von IImage zu den Bildern der Präsentation hinzufügst. + // Erstelle ein PowerPoint-Bild, indem du eine Instanz von IImage zu den Bildern der Präsentation hinzufügst. ppImage = pres.getImages().addImage(image); } finally { if (image != null) image.dispose(); } - // füge eine Bildform auf Folie #1 hinzu + // Füge ein Bild-Shape auf Folie #1 hinzu pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, ppImage); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); - // erhalte eine Instanz von IImage, die Folie #1 darstellt. + // Erhalte eine Instanz von IImage, die Folie #1 darstellt. var slideImage = pres.getSlides().get_Item(0).getImage(size); try { - // speichere das Bild auf der Festplatte. + // Speichere das Bild auf der Festplatte. slideImage.save("slide1.jpeg", aspose.slides.ImageFormat.Jpeg); } finally { if (slideImage != null) slideImage.dispose(); @@ -61,11 +60,12 @@ try { } ``` -## Alten Code durch Moderne API ersetzen -Im Allgemeinen müssen Sie den Aufruf der alten Methode unter Verwendung von ImageIO mit der neuen ersetzen. +## **Austausch alten Codes durch die Moderne API** + +Im Allgemeinen müssen Sie den Aufruf der alten Methode, die ImageIO verwendet, durch den neuen ersetzen. -Alt: +Old: ``` javascript var imageio = java.import("javax.imageio.ImageIO"); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -73,7 +73,8 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` -Neu: + +New: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); var slideImage = pres.getSlides().get_Item(0).getImage(size); @@ -81,10 +82,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### Thumbnail einer Folie erhalten -Code, der eine veraltete API verwendet: +### **Abrufen eines Folien‑Thumbnails** +Code mit einer veralteten API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +98,8 @@ try { } ``` -Moderne API: +Moderne API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +111,10 @@ try { } ``` -### Thumbnail einer Form erhalten -Code, der eine veraltete API verwendet: +### **Abrufen eines Shape‑Thumbnails** +Code mit einer veralteten API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +127,8 @@ try { } ``` -Moderne API: +Moderne API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +140,10 @@ try { } ``` -### Thumbnail einer Präsentation erhalten -Code, der eine veraltete API verwendet: +### **Abrufen eines Präsentations‑Thumbnails** +Code mit einer veralteten API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +161,8 @@ try { } ``` -Moderne API: +Moderne API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +185,10 @@ try { } ``` -### Ein Bild zu einer Präsentation hinzufügen -Code, der eine veraltete API verwendet: +### **Ein Bild zu einer Präsentation hinzufügen** +Code mit einer veralteten API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +203,8 @@ try { } ``` -Moderne API: +Moderne API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,27 +218,28 @@ try { } ``` -## Methoden, die entfernt werden sollen, und ihre Ersetzungen in der Modernen API -### Präsentation -| Methodensignatur | Ersetzungs-Methodensignatur | -|-----------------------------------------------|---------------------------------------------------------| -| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | -| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | +## **Zu entfernende Methoden und deren Ersatz in der Modernen API** + +### **Presentation** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| +| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### Form -| Methodensignatur | Ersetzungs-Methodensignatur | -|----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +### **Shape** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### Folie -| Methodensignatur | Ersetzungs-Methodensignatur | -|----------------------------------------------------------------------|-----------------------------------------------------------------------| +### **Slide** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | | public final BufferedImage getThumbnail(IRenderingOptions options) | public final IImage getImage(IRenderingOptions options) | @@ -245,45 +247,54 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Wird vollständig entfernt | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Wird vollständig entfernt | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Wird vollständig entfernt | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Will be deleted completely | -### Ausgabe -| Methodensignatur | Ersetzungs-Methodensignatur | -|-----------------------------------------------------------------|-------------------------------------------------------------| +### **Output** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### ImageCollection -| Methodensignatur | Ersetzungs-Methodensignatur | -|-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +### **ImageCollection** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| Methodensignatur | Ersetzungs-Methodensignatur | -|--------------------------------------|-----------------------------------------| +### **PPImage** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### PatternFormat -| Methodensignatur | Ersetzungs-Methodensignatur | -|-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +### **PatternFormat** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### PatternFormatEffectiveData -| Methodensignatur | Ersetzungs-Methodensignatur | -|-----------------------------------------------------------|-----------------------------------------------------| +### **PatternFormatEffectiveData** +| Methodensignatur | Ersetzungsmethodensignatur | +|------------------|----------------------------| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | +## **Unterstützung für Graphics2D in der API wird eingestellt** -## API-Unterstützung für Graphics2D wird eingestellt - -Methoden mit [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) sind als veraltet erklärt und ihre Unterstützung wird aus der öffentlichen API entfernt. +Methoden mit [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) sind als veraltet deklariert und ihre Unterstützung wird aus der öffentlichen API entfernt. Der Teil der API, der es verwendet, wird entfernt: -[Slide](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +[Folie](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) + +# **FAQ** + +**Was ist der praktische Nutzen von IImage im Vergleich zu Image/Bitmap?** + +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) vereinheitlicht die Arbeit mit sowohl Raster‑ als auch Vektor‑Bildern und vereinfacht das Speichern in verschiedenen Formaten über [ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/). + +**Wird die Moderne API die Leistung beim Erzeugen von Thumbnails beeinflussen?** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +Der Wechsel von `getThumbnail` zu `getImage` verschlechtert die Szenarien nicht: Die neuen Methoden bieten dieselben Möglichkeiten, Bilder mit Optionen und Größen zu erzeugen, während die Unterstützung für Rendering‑Optionen erhalten bleibt. Der konkrete Gewinn oder Verlust hängt vom Szenario ab, funktional sind die Ersatzmethoden jedoch äquivalent. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/powerpoint-animation/_index.md b/de/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..85859a8b31 --- /dev/null +++ b/de/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,82 @@ +--- +title: PowerPoint-Animation +type: docs +weight: 150 +url: /de/nodejs-java/powerpoint-animation/ +keywords: "PowerPoint-Animation" +description: "PowerPoint-Animation, PowerPoint-Folienanimation mit Aspose.Slides." +--- + +Da Präsentationen dazu gedacht sind, etwas zu präsentieren, werden ihr visuelles Erscheinungsbild und ihr interaktives Verhalten beim Erstellen stets berücksichtigt. + +**PowerPoint-Animation** spielt eine wichtige Rolle, um die Präsentation für die Zuschauer ansprechend und attraktiv zu machen. Aspose.Slides für Node.js über Java bietet eine breite Palette von Optionen, um Animationen zu PowerPoint-Präsentationen hinzuzufügen: + +- verschiedene Arten von PowerPoint-Animationseffekten auf Formen, Diagramme, Tabellen, OLE-Objekte und andere Präsentationselemente anwenden. +- mehrere PowerPoint-Animationseffekte auf einer Form verwenden. +- die Animationszeitleiste verwenden, um Animationseffekte zu steuern. +- benutzerdefinierte Animationen erstellen. + +In Aspose.Slides für Node.js über Java können verschiedene Animationseffekte auf die Formen angewendet werden. Da jedes Element auf der Folie, einschließlich Text, Bilder, OLE-Objekt, Tabelle usw., als Form betrachtet wird, bedeutet das, dass wir Animationseffekte auf jedes Element einer Folie anwenden können. + +## **Animations‑Effekte** +Aspose.Slides unterstützt **150+ Animationseffekte**, darunter Grundanimationseffekte wie Bounce, PathFootball, Zoom‑Effekt und spezifische Animationseffekte wie OLEObjectShow, OLEObjectOpen. Eine vollständige Auflistung der Animationseffekte finden Sie in der [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/)‑Aufzählung. + +Zusätzlich können diese Animationseffekte in Kombination damit verwendet werden: +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **Benutzerdefinierte Animation** +Es ist möglich, eigene **benutzerdefinierte Animationen** in Aspose.Slides zu erstellen. Dies kann erreicht werden, indem man mehrere Verhaltensweisen zu einer neuen benutzerdefinierten Animation kombiniert. + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) ist eine Baueinheit jedes PowerPoint-Animationseffekts. Alle Animationseffekte sind tatsächlich ein Satz von Verhaltensweisen, die zu einer Strategie zusammengesetzt sind. Sie können Verhaltensweisen einmal zu einer benutzerdefinierten Animation kombinieren und sie in anderen Präsentationen wiederverwenden. Wenn Sie ein neues Verhalten in einen Standard‑PowerPoint-Animationseffekt einfügen, entsteht eine weitere benutzerdefinierte Animation. Zum Beispiel können Sie ein Wiederholungs‑Verhalten zu einer Animation hinzufügen, damit sie mehrmals wiederholt wird. + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) ist ein Punkt, an dem das Verhalten angewendet werden soll. + +## **Animations‑Zeitlinie** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) ist eine Sammlung von Animationseffekten, die auf eine konkrete Form angewendet werden. + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) ist ein Satz von Sequenzen, die in einer konkreten Folie verwendet werden. Es ist eine Animations-Engine, die seit PowerPoint 2002 verfügbar ist. In früheren PowerPoint‑Versionen war es schwierig, Animationseffekte zu einer Präsentation hinzuzufügen; dies war nur mit verschiedenen Workarounds möglich. Die Timeline ersetzt die alte AnimationSettings‑Klasse und bietet ein klareres Objektmodell für PowerPoint‑Animationen. Eine Folie kann nur eine Animations‑Zeitlinie haben. + +## **Interaktive Animation** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) ermöglicht das Definieren von Benutzeraktionen (z. B. Klick auf einen Button), die eine bestimmte Animation starten. Trigger wurden erst in der neuesten PowerPoint‑Version hinzugefügt. + +## **Form‑Animation** +Aspose.Slides ermöglicht das Anwenden von Animationen auf Formen, die tatsächlich Text, Rechteck, Linie, Rahmen, OLE‑Objekt usw. sein können. + +{{% alert color="primary" %}} +Erfahren Sie mehr [**Über Form‑Animation**](/slides/de/nodejs-java/shape-animation/). +{{% /alert %}} + +## **Animierte Diagramme** +Um animierte Diagramme zu erstellen, sollten Sie dieselben Klassen wie für Formen verwenden. Es ist jedoch möglich, PowerPoint‑Animationen nur auf Diagrammkategorien oder Diagrammreihen anzuwenden. Sie können den Animationseffekt auch auf ein Kategorie‑Element oder ein Reihen‑Element anwenden. + +{{% alert color="primary" %}} +Erfahren Sie mehr [**Über animierte Diagramme**](/slides/de/nodejs-java/animated-charts/). +{{% /alert %}} + +## **Animierter Text** +Neben animiertem Text ist es auch möglich, eine Animation auf einen Absatz anzuwenden. + +{{% alert color="primary" %}} +Erfahren Sie mehr [**Über animierten Text**](/slides/de/nodejs-java/animated-text/). +{{% /alert %}} + +## **FAQ** + +**Werden Animationen beim Exportieren nach PDF erhalten?** + +Nein. PDF ist ein statisches Format, sodass Animationen und [Folienübergänge](/slides/de/nodejs-java/slide-transition/) nicht abgespielt werden. Wenn Sie Bewegung benötigen, exportieren Sie stattdessen zu [HTML5](/slides/de/nodejs-java/export-to-html5/), [animiertem GIF](/slides/de/nodejs-java/convert-powerpoint-to-animated-gif/) oder [Video](/slides/de/nodejs-java/convert-powerpoint-to-video/). + +**Kann ich eine animierte Präsentation in ein Video umwandeln und Bildrate sowie Bildgröße steuern?** + +Ja. Sie können die Präsentation als Einzelbilder [rendern](/slides/de/nodejs-java/convert-powerpoint-to-video/) und diese mit einem Video (z. B. über ffmpeg) kodieren, wobei Sie Bildrate und Auflösung wählen. Animationen und Folienübergänge werden beim Rendern abgespielt. + +**Bleiben Animationen erhalten, wenn mit ODP (nicht nur PPTX) gearbeitet wird?** + +PPT, PPTX und ODP werden für das [Lesen](/slides/de/nodejs-java/open-presentation/) und [Schreiben](/slides/de/nodejs-java/save-presentation/) unterstützt, jedoch können aufgrund von Formatunterschieden bestimmte Effekte leicht anders aussehen oder sich anders verhalten. Validieren Sie kritische Fälle mit echten Beispielen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-comments/_index.md b/de/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..89da7eca85 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,228 @@ +--- +title: Präsentationskommentare +type: docs +weight: 100 +url: /de/nodejs-java/presentation-comments/ +keywords: "Kommentare, PowerPoint-Kommentare, PowerPoint-Präsentation, Java, Aspose.Slides für Node.js via Java" +description: "Kommentare und Antworten in PowerPoint-Präsentation in JavaScript hinzufügen" +--- + +In PowerPoint erscheint ein Kommentar als Notiz oder Anmerkung auf einer Folie. Wenn ein Kommentar angeklickt wird, werden dessen Inhalt oder Nachrichten angezeigt. + +## **Warum Kommentare zu Präsentationen hinzufügen?** + +Sie können Kommentare verwenden, um Feedback zu geben oder mit Ihren Kollegen beim Überprüfen von Präsentationen zu kommunizieren. + +Um Ihnen die Verwendung von Kommentaren in PowerPoint‑Präsentationen zu ermöglichen, bietet Aspose.Slides for Node.js via Java + +* Die [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)-Klasse, die die Sammlungen von Autoren (aus der [CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection)-Klasse) enthält. Die Autoren fügen Folien Kommentare hinzu. +* Die [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection)-Klasse, die die Sammlung von Kommentaren für einzelne Autoren enthält. +* Die [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)-Klasse, die Informationen zu Autoren und deren Kommentaren enthält: wer den Kommentar hinzugefügt hat, wann der Kommentar hinzugefügt wurde, die Position des Kommentars usw. +* Die [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor)-Klasse, die Informationen zu einzelnen Autoren enthält: Name des Autors, seine Initialen, dem Autor zugeordnete Kommentare usw. + +## **Folienkommentar hinzufügen** +Dieses JavaScript‑Beispiel zeigt, wie Sie einer Folie in einer PowerPoint‑Präsentation einen Kommentar hinzufügen: +```javascript +// Instanziiert die Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine leere Folie hinzu + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // Fügt einen Autor hinzu + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // Setzt die Position für Kommentare + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // Fügt einen Folienkommentar für einen Autor auf Folie 1 hinzu + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // Fügt einen Folienkommentar für einen Autor auf Folie 2 hinzu + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // Greift auf ISlide 1 zu + var slide = pres.getSlides().get_Item(0); + // Wenn null als Argument übergeben wird, werden Kommentare aller Autoren zur ausgewählten Folie gebracht + var Comments = slide.getSlideComments(author); + // Greift auf den Kommentar an Index 0 für Folie 1 zu + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // Wählt die Kommentarensammlung des Autors an Index 0 aus + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Folienkommentare abrufen** +Dieses JavaScript‑Beispiel zeigt, wie Sie auf einen vorhandenen Kommentar einer Folie in einer PowerPoint‑Präsentation zugreifen: +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Kommentarantworten** +Ein übergeordneter Kommentar ist der oberste bzw. ursprüngliche Kommentar in einer Hierarchie von Kommentaren oder Antworten. Mit den Methoden [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) bzw. [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) (aus der [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)-Klasse) können Sie einen übergeordneten Kommentar setzen oder abrufen. + +Dieses JavaScript‑Beispiel zeigt, wie Sie Kommentare hinzufügen und Antworten darauf erhalten: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt einen Kommentar hinzu + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // Fügt eine Antwort zu Kommentar 1 hinzu + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // Fügt eine weitere Antwort zu Kommentar 1 hinzu + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // Fügt eine Antwort zu einer bestehenden Antwort hinzu + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // Zeigt die Kommentarhierarchie in der Konsole an + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // Entfernt Kommentar 1 und alle dazugehörigen Antworten + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Attention" %}} + +* Wenn die [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--)‑Methode (aus der [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)-Klasse) zum Löschen eines Kommentars verwendet wird, werden auch die Antworten auf diesen Kommentar gelöscht. +* Führt das Setzen von [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) zu einer zirkulären Referenz, wird eine [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException) ausgelöst. + +{{% /alert %}} + +## **Modernen Kommentar hinzufügen** + +Im Jahr 2021 führte Microsoft *moderne Kommentare* in PowerPoint ein. Die Funktion moderner Kommentare verbessert die Zusammenarbeit in PowerPoint erheblich. Durch moderne Kommentare können PowerPoint‑Benutzer Kommentare auflösen, Kommentare an Objekten und Texten verankern und viel einfacher interagieren als zuvor. + +In [Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/) haben wir die Unterstützung für moderne Kommentare implementiert, indem wir die [ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment)-Klasse hinzugefügt haben. Die Methoden [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) und [insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) wurden zur [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection)-Klasse hinzugefügt. + +Dieses JavaScript‑Beispiel zeigt, wie Sie einer Folie in einer PowerPoint‑Präsentation einen modernen Kommentar hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Kommentar entfernen** + +### **Alle Kommentare und Autoren löschen** + +Dieses JavaScript‑Beispiel zeigt, wie Sie alle Kommentare und Autoren in einer Präsentation entfernen: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Löscht alle Kommentare aus der Präsentation + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // Löscht alle Autoren + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Spezifische Kommentare löschen** + +Dieses JavaScript‑Beispiel zeigt, wie Sie bestimmte Kommentare auf einer Folie löschen: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // Kommentare hinzufügen... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // Entfernt alle Kommentare, die den Text "comment 1" enthalten + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Unterstützt Aspose.Slides einen Status wie "gelöst" für moderne Kommentare?** + +Ja. [Modern comments](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) bieten die Methoden [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) und [setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/); Sie können den [Zustand eines Kommentars](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncommentstatus/) lesen und setzen (z. B. ihn als gelöst markieren). Dieser Zustand wird in der Datei gespeichert und von PowerPoint erkannt. + +**Werden verschachtelte Diskussionen (Antwortketten) unterstützt und gibt es ein Nesting‑Limit?** + +Ja. Jeder Kommentar kann auf seinen [parent comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/) verweisen, wodurch beliebig tiefe Antwortketten ermöglicht werden. Die API definiert kein konkretes Verschachtelungstiefe‑Limit. + +**In welchem Koordinatensystem ist die Position eines Kommentarmarkers auf einer Folie definiert?** + +Die Position wird als Gleitkommapunkt im Koordinatensystem der Folie gespeichert. Dadurch können Sie den Kommentarmarker exakt dort platzieren, wo Sie ihn benötigen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..a5fb8e13fb --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,217 @@ +--- +title: Blob verwalten +type: docs +weight: 10 +url: /de/nodejs-java/manage-blob/ +description: Verwalten Sie Blob in PowerPoint-Präsentationen mit JavaScript. Verwenden Sie Blob, um den Speicherverbrauch in PowerPoint-Präsentationen mit JavaScript zu reduzieren. Große Dateien über Blob zu einer PowerPoint-Präsentation mit JavaScript hinzufügen. Große Dateien über Blob aus einer PowerPoint-Präsentation mit JavaScript exportieren. Eine große PowerPoint-Präsentation als Blob mit JavaScript laden. +--- + +## **Über BLOB** + +**BLOB** (**Binary Large Object**) ist normalerweise ein großes Element (Foto, Präsentation, Dokument oder Medium), das in binären Formaten gespeichert wird. + +Aspose.Slides for Node.js via Java ermöglicht es Ihnen, BLOBs für Objekte zu verwenden, wodurch der Speicherverbrauch reduziert wird, wenn große Dateien beteiligt sind. + +{{% alert title="Info" color="info" %}} +Um bestimmte Einschränkungen beim Umgang mit Streams zu umgehen, kann Aspose.Slides den Inhalt des Streams kopieren. Das Laden einer großen Präsentation über ihren Stream führt zum Kopieren des Inhalts der Präsentation und verursacht ein langsames Laden. Daher empfehlen wir dringend, beim Laden einer großen Präsentation den Pfad zur Präsentationsdatei und nicht den Stream zu verwenden. +{{% /alert %}} + +## **BLOB verwenden, um den Speicherverbrauch zu reduzieren** + +### **Große Datei über BLOB zu einer Präsentation hinzufügen** + +[Aspose.Slides](/slides/de/nodejs-java/) for Node.js via Java ermöglicht es Ihnen, große Dateien (in diesem Fall eine große Videodatei) über einen BLOB‑basierten Prozess hinzuzufügen, um den Speicherverbrauch zu reduzieren. + +Dieser JavaScript‑Code zeigt, wie Sie eine große Videodatei über den BLOB‑Prozess zu einer Präsentation hinzufügen: +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// Erstellt eine neue Präsentation, zu der das Video hinzugefügt wird +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // Lassen Sie uns das Video zur Präsentation hinzufügen - wir haben das KeepLocked-Verhalten gewählt, weil wir + // nicht beabsichtigen, auf die Datei "veryLargeVideo.avi" zuzugreifen. + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // Speichert die Präsentation. Während eine große Präsentation ausgegeben wird, bleibt der Speicherverbrauch + // während des gesamten Lebenszyklus des pres-Objekts niedrig. + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Große Datei über BLOB aus einer Präsentation exportieren** + +Aspose.Slides for Node.js via Java ermöglicht es Ihnen, große Dateien (in diesem Fall eine Audio‑ oder Videodatei) über einen BLOB‑basierten Prozess aus Präsentationen zu exportieren. Zum Beispiel müssen Sie möglicherweise eine große Mediendatei aus einer Präsentation extrahieren, möchten aber nicht, dass die Datei in den Speicher Ihres Computers geladen wird. Durch den Export der Datei über den BLOB‑Prozess bleibt der Speicherverbrauch gering. + +Dieser JavaScript‑Code demonstriert die beschriebene Vorgangsweise: +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// Locks the source file and does NOT load it into memory +// Sperrt die Quelldatei und lädt sie NICHT in den Speicher +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// create the Presentation's instance, lock the "hugePresentationWithAudiosAndVideos.pptx" file. + // Erstelle die Instanz der Präsentation und sperre die Datei "hugePresentationWithAudiosAndVideos.pptx". +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // Let's save each video to a file. To prevent high memory usage, we need a buffer that will be used + // Speichern wir jedes Video in einer Datei. Um hohen Speicherverbrauch zu vermeiden, benötigen wir einen Puffer, der verwendet wird + // to transfer the data from the presentation's video stream to a stream for a newly created video file. + // um die Daten vom Videostream der Präsentation zu einem Stream für eine neu erstellte Videodatei zu übertragen. + var buffer = new byte[8 * 1024]; + // Iterates through the videos + // Durchläuft die Videos + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // Opens the presentation video stream. Please, note that we intentionally avoided accessing properties + // Öffnet den Videostream der Präsentation. Bitte beachten Sie, dass wir absichtlich das Zugreifen auf Eigenschaften vermieden haben + // like video.BinaryData - because this property returns a byte array containing a full video, which then + // wie video.BinaryData - weil diese Eigenschaft ein Byte‑Array mit dem gesamten Video zurückgibt, was dann + // causes bytes to be loaded into memory. We use video.GetStream, which will return Stream - and does NOT + // dazu führt, dass Bytes in den Speicher geladen werden. Wir verwenden video.GetStream, das einen Stream zurückgibt – und NICHT + // require us to load the whole video into the memory. + // erfordert, dass wir das gesamte Video in den Speicher laden. + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // Memory consumption will remain low regardless of the size of the video or presentation. + // Der Speicherverbrauch bleibt niedrig, unabhängig von der Größe des Videos oder der Präsentation. + } + // If necessary, you can apply the same steps for audio files. + // Bei Bedarf können Sie die gleichen Schritte für Audiodateien anwenden. +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **Bild als BLOB in einer Präsentation hinzufügen** + +Mit Methoden der Klasse [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) und der Klasse [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) können Sie ein großes Bild als Stream hinzufügen, sodass es als BLOB behandelt wird. + +Dieser JavaScript‑Code zeigt, wie Sie ein großes Bild über den BLOB‑Prozess hinzufügen: +```javascript +var pathToLargeImage = "large_image.jpg"; +// erstellt eine neue Präsentation, zu der das Bild hinzugefügt wird. +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // Lassen Sie uns das Bild zur Präsentation hinzufügen - wir wählen das KeepLocked-Verhalten, weil wir + // nicht beabsichtigen, auf die Datei "largeImage.png" zuzugreifen. + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // Speichert die Präsentation. Während eine große Präsentation ausgegeben wird, bleibt der Speicherverbrauch + // während des gesamten Lebenszyklus des pres-Objekts niedrig. + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Speicher und große Präsentationen** + +In der Regel benötigen Computer zum Laden einer großen Präsentation viel temporären Speicher. Der gesamte Inhalt der Präsentation wird in den Speicher geladen und die Datei (aus der die Präsentation geladen wurde) wird nicht mehr verwendet. + +Betrachten Sie eine große PowerPoint‑Präsentation (large.pptx), die eine 1,5 GB‑Videodatei enthält. Die Standardmethode zum Laden der Präsentation wird in diesem JavaScript‑Code beschrieben: +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Diese Methode verbraucht jedoch etwa 1,6 GB temporären Speicher. + +### **Große Präsentation als BLOB laden** + +Durch den BLOB‑basierten Prozess können Sie eine große Präsentation mit geringem Speicherverbrauch laden. Dieser JavaScript‑Code beschreibt die Implementierung, bei der der BLOB‑Prozess zum Laden einer großen Präsentationsdatei (large.pptx) verwendet wird: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Ordner für temporäre Dateien ändern** + +Wenn der BLOB‑Prozess verwendet wird, erstellt Ihr Computer temporäre Dateien im Standard‑Ordner für temporäre Dateien. Wenn Sie die temporären Dateien in einem anderen Ordner speichern möchten, können Sie die Speicher‑Einstellungen mit `setTempFilesRootPath` ändern: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Info" color="info" %}} +Wenn Sie `setTempFilesRootPath` verwenden, erstellt Aspose.Slides keinen Ordner zum Speichern temporärer Dateien automatisch. Sie müssen den Ordner manuell erstellen. +{{% /alert %}} + +## **FAQ** + +**Welche Daten in einer Aspose.Slides‑Präsentation werden als BLOB behandelt und von BLOB‑Optionen gesteuert?** + +Große Binärobjekte wie Bilder, Audio‑ und Videodateien werden als BLOB behandelt. Auch die gesamte Präsentationsdatei wird beim Laden oder Speichern mittels BLOB‑Verarbeitung behandelt. Diese Objekte werden von BLOB‑Richtlinien gesteuert, die es ermöglichen, die Speichernutzung zu verwalten und bei Bedarf in temporäre Dateien auszulagern. + +**Wo konfiguriere ich die BLOB‑Verarbeitungsregeln beim Laden einer Präsentation?** + +Verwenden Sie [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) zusammen mit [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/). Dort legen Sie das In‑Memory‑Limit für BLOBs fest, erlauben oder verbieten temporäre Dateien, wählen den Stamm‑Pfad für temporäre Dateien und bestimmen das Verhalten beim Sperren der Quelle. + +**Beeinflussen BLOB‑Einstellungen die Leistung und wie balanciere ich Geschwindigkeit gegenüber Speicher?** + +Ja. Das Halten von BLOBs im Speicher maximiert die Geschwindigkeit, erhöht jedoch den RAM‑Verbrauch; eine niedrigere Speichergrenze verlagert mehr Arbeit auf temporäre Dateien, reduziert den RAM‑Verbrauch, verursacht jedoch zusätzlichen I/O‑Aufwand. Verwenden Sie die Methode [setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/), um das richtige Gleichgewicht für Ihre Arbeitslast und Umgebung zu finden. + +**Helfen BLOB‑Optionen beim Öffnen extrem großer Präsentationen (z. B. mehrere Gigabyte)?** + +Ja. [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) sind für solche Szenarien konzipiert: Das Aktivieren temporärer Dateien und die Verwendung von Source‑Locking können den Spitzen‑RAM‑Verbrauch erheblich reduzieren und die Verarbeitung sehr großer Decks stabilisieren. + +**Kann ich BLOB‑Richtlinien beim Laden von Streams statt von Dateien auf der Festplatte verwenden?** + +Ja. Die gleichen Regeln gelten für Streams: Die Präsentationsinstanz kann den Eingabestream besitzen und sperren (abhängig vom gewählten Sperrmodus), und temporäre Dateien werden verwendet, wenn dies erlaubt ist, wodurch der Speicherverbrauch während der Verarbeitung vorhersehbar bleibt. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..693cad1dc5 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,309 @@ +--- +title: Hyperlinks verwalten +type: docs +weight: 20 +url: /de/nodejs-java/manage-hyperlinks/ +keywords: "PowerPoint-Hyperlink, Text-Hyperlink, Folien-Hyperlink, Formen-Hyperlink, Bild-Hyperlink, Video-Hyperlink, Java" +description: "Wie man in JavaScript einen Hyperlink zu einer PowerPoint-Präsentation hinzufügt" +--- + +Ein Hyperlink ist eine Referenz zu einem Objekt, Daten oder einem Ort in etwas. Dies sind gängige Hyperlinks in PowerPoint‑Präsentationen: + +* Links zu Websites in Texten, Formen oder Medien +* Links zu Folien + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, viele Aufgaben im Zusammenhang mit Hyperlinks in Präsentationen auszuführen. + +{{% alert color="primary" %}} +Vielleicht möchten Sie sich Aspose Simple, [kostenlosen Online‑PowerPoint‑Editor.](https://products.aspose.app/slides/editor) ansehen. +{{% /alert %}} + +## **Hinzufügen von URL‑Hyperlinks** + +### **Hinzufügen von URL‑Hyperlinks zu Texten** + +Dieser JavaScript‑Code zeigt, wie Sie einem Text einen Website‑Hyperlink hinzufügen: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Hinzufügen von URL‑Hyperlinks zu Formen oder Rahmen** + +Dieser Beispielcode in JavaScript zeigt, wie Sie einer Form einen Website‑Hyperlink hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Hinzufügen von URL‑Hyperlinks zu Medien** + +Aspose.Slides ermöglicht das Hinzufügen von Hyperlinks zu Bild‑, Audio‑ und Videodateien. + +Dieser Beispielcode zeigt, wie Sie einem **Bild** einen Hyperlink hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt ein Bild zur Präsentation hinzu + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // Erstellt einen Bildrahmen auf Folie 1 basierend auf dem zuvor hinzugefügten Bild + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Dieser Beispielcode zeigt, wie Sie einer **Audiodatei** einen Hyperlink hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Dieser Beispielcode zeigt, wie Sie einem **Video** einen Hyperlink hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Vielleicht möchten Sie *[OLE verwalten](/slides/de/nodejs-java/manage-ole/)* sehen. +{{% /alert %}} + +## **Verwendung von Hyperlinks zum Erstellen eines Inhaltsverzeichnisses** + +Da Hyperlinks es ermöglichen, Referenzen zu Objekten oder Orten hinzuzufügen, können Sie sie zum Erstellen eines Inhaltsverzeichnisses verwenden. + +Dieser Beispielcode zeigt, wie Sie ein Inhaltsverzeichnis mit Hyperlinks erstellen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Formatieren von Hyperlinks** + +### **Farbe** + +Mit der Methode [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) in der Klasse [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) können Sie die Farbe für Hyperlinks festlegen und auch die Farbinformation von Hyperlinks abrufen. Die Funktion wurde erstmals in PowerPoint 2019 eingeführt, sodass Änderungen an der Eigenschaft nicht für ältere PowerPoint‑Versionen gelten. + +Dieser Beispielcode demonstriert einen Vorgang, bei dem Hyperlinks mit unterschiedlichen Farben zur selben Folie hinzugefügt wurden: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Entfernen von Hyperlinks in Präsentationen** + +### **Entfernen von Hyperlinks aus Texten** + +Dieser JavaScript‑Code zeigt, wie Sie den Hyperlink aus einem Text in einer Präsentationsfolie entfernen: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // Überprüft, ob das Shape einen Textrahmen unterstützt (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Iteriert über Absätze im Textrahmen + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // Iteriert über jeden Abschnitt im Absatz + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// Ändert Text + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Ändert Formatierung + } + } + } + } + } + // Speichert die geänderte Präsentation + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Entfernen von Hyperlinks aus Formen oder Rahmen** + +Dieser JavaScript‑Code zeigt, wie Sie den Hyperlink aus einer Form in einer Präsentationsfolie entfernen: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Veränderbarer Hyperlink** + +Die Klasse [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) ist veränderbar. Mit dieser Klasse können Sie die Werte für die folgenden Eigenschaften ändern: + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +Das Code‑Snippet zeigt, wie Sie einer Folie einen Hyperlink hinzufügen und dessen Tooltip später bearbeiten: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Unterstützte Eigenschaften in IHyperlinkQueries** + +Sie können [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) aus einer Präsentation, Folie oder einem Text, für den der Hyperlink definiert ist, abrufen. + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +Die Klasse [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) unterstützt diese Methoden und Eigenschaften: + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **FAQ** + +**Wie kann ich eine interne Navigation nicht nur zu einer Folie, sondern zu einem „Abschnitt“ oder zur ersten Folie eines Abschnitts erstellen?** + +Abschnitte in PowerPoint sind Gruppierungen von Folien; die Navigation zielt technisch auf eine bestimmte Folie. Um „zu einem Abschnitt zu navigieren“, verlinken Sie in der Regel zu dessen erster Folie. + +**Kann ich einen Hyperlink an Elementen der Masterfolie anhängen, sodass er auf allen Folien funktioniert?** + +Ja. Master‑Folien‑ und Layout‑Elemente unterstützen Hyperlinks. Diese Links erscheinen auf den Unterfolien und sind während der Bildschirmpräsentation anklickbar. + +**Werden Hyperlinks beim Exportieren zu PDF, HTML, Bildern oder Video erhalten bleiben?** + +In [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/) und [HTML](/slides/de/nodejs-java/convert-powerpoint-to-html/) ja – Links werden im Allgemeinen beibehalten. Beim Exportieren zu [Bildern](/slides/de/nodejs-java/convert-powerpoint-to-png/) und [Video](/slides/de/nodejs-java/convert-powerpoint-to-video/) bleibt die Anklickbarkeit nicht erhalten, da diese Formate (Raster‑Frames/Video) keine Hyperlinks unterstützen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..b66aded1ca --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,238 @@ +--- +title: Audio in Präsentationen mit JavaScript verwalten +linktitle: Audio-Frame +type: docs +weight: 10 +url: /de/nodejs-java/audio-frame/ +keywords: +- Audio +- Audio-Frame +- Vorschaubild +- Audio hinzufügen +- Audioeigenschaften +- Audiooptionen +- Audio extrahieren +- Node.js +- JavaScript +- Aspose.Slides +description: "Audio-Frames in Aspose.Slides für Node.js erstellen und steuern — JavaScript‑Beispiele zum Einbetten, Trimmen, Schleifen und Konfigurieren der Wiedergabe in PPT-, PPTX‑ und ODP‑Präsentationen." +--- + +## **Audio-Frames erstellen** + +Aspose.Slides für Node.js via Java ermöglicht das Hinzufügen von Audiodateien zu Folien. Die Audiodateien werden in den Folien als Audio-Frames eingebettet. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Rufen Sie die Referenz einer Folie über ihren Index ab. +3. Laden Sie den Audio-Dateistream, den Sie in die Folie einbetten möchten. +4. Fügen Sie den eingebetteten Audio-Frame (der die Audiodatei enthält) zur Folie hinzu. +5. Setzen Sie [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) und `Volume`, die vom [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame) Objekt bereitgestellt werden. +6. Speichern Sie die geänderte Präsentation. + +```javascript +// Instanziert eine Presentation-Klasse, die eine Präsentationsdatei repräsentiert +const pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie + const sld = pres.getSlides().get_Item(0); + // Lädt die wav-Audiodatei in einen Stream + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // Fügt den Audio-Frame hinzu + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // Setzt den Wiedergabemodus und die Lautstärke des Audios + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // Schreibt die PowerPoint-Datei auf die Festplatte + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Audio-Frame-Vorschaubild ändern** + +Wenn Sie einer Präsentation eine Audiodatei hinzufügen, erscheint das Audio als Frame mit einem standardmäßigen Standardbild (siehe das Bild im folgenden Abschnitt). Sie ändern das Vorschaubild des Audio-Frames (setzen Sie Ihr bevorzugtes Bild). + +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // Fügt der Folie einen Audio-Frame an einer angegebenen Position und Größe hinzu. + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // Fügt ein Bild zu den Präsentationsressourcen hinzu. + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Setzt das Bild für den Audio-Frame. + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // Speichert die modifizierte Präsentation auf der Festplatte + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Audio-Wiedergabeoptionen ändern** + +Aspose.Slides für Node.js via Java ermöglicht das Ändern von Optionen, die die Wiedergabe oder Eigenschaften eines Audios steuern. Sie können beispielsweise die Lautstärke eines Audios anpassen, das Audio in einer Schleife abspielen lassen oder sogar das Audiosymbol ausblenden. + +Das **Audio Options**‑Fenster in Microsoft PowerPoint: + +![example1_image](audio_frame_0.png) + +PowerPoint **Audio Options**, die den Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) Eigenschaften entsprechen: + +- **Start**‑Dropdown-Liste entspricht der Methode [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode) +- **Volume** entspricht der Methode [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume) +- **Play Across Slides** entspricht der Methode [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides) +- **Loop until Stopped** entspricht der Methode [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode) +- **Hide During Show** entspricht der Methode [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing) +- **Rewind after Playing** entspricht der Methode [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio) + +PowerPoint **Editing**‑Optionen, die den Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) Eigenschaften entsprechen: + +- **Fade In** entspricht der Methode [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration) +- **Fade Out** entspricht der Methode [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration) +- **Trim Audio Start Time** entspricht der Methode [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart) +- **Trim Audio End Time**‑Wert entspricht der Audiodauer minus dem Wert der Methode [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd) + +Die PowerPoint **Volume controll** im Audiosteuerfeld entspricht der Methode [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue). Sie ermöglicht das Ändern der Lautstärke des Audios als Prozentsatz. + +So ändern Sie die Audio‑Wiedergabeoptionen: + +1. [Сreate](#create-audio-frame) oder holen Sie den Audio-Frame. +2. Setzen Sie neue Werte für die Audio-Frame‑Eigenschaften, die Sie anpassen möchten. +3. Speichern Sie die geänderte PowerPoint‑Datei. + +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // Holt das AudioFrame-Shape + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // Setzt den Wiedergabemodus auf Klick abspielen + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // Setzt die Lautstärke auf leise + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // Setzt das Audio so, dass es über Folien hinweg abgespielt wird + audioFrame.setPlayAcrossSlides(true); + // Deaktiviert die Wiederholung für das Audio + audioFrame.setPlayLoopMode(false); + // Blendet das AudioFrame während der Vorführung aus + audioFrame.setHideAtShowing(true); + // Spult das Audio nach dem Abspielen zum Anfang zurück + audioFrame.setRewindAudio(true); + // Speichert die PowerPoint-Datei auf der Festplatte + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Dieser JavaScript‑Code zeigt eine Operation, bei der die Optionen eines Audios angepasst werden: +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // Setzt den Trimmstart‑Versatz auf 1,5 Sekunden + audioFrame.setTrimFromStart(1500); + // Setzt den Trimmen‑Endversatz auf 2 Sekunden + audioFrame.setTrimFromEnd(2000); + + // Setzt die Einblenddauer (Fade‑In) auf 200 ms + audioFrame.setFadeInDuration(200); + // Setzt die Ausblenddauer (Fade‑Out) auf 500 ms + audioFrame.setFadeOutDuration(500); + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +Das folgende Codebeispiel zeigt, wie Sie einen Audio‑Frame mit eingebettetem Audio abrufen und dessen Lautstärke auf 85 % setzen: +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // Ruft ein Audio-Frame-Shape ab + const audioFrame = slide.getShapes().get_Item(0); + + // Setzt die Audio-Lautstärke auf 85% + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **Audio extrahieren** + +Aspose.Slides für Node.js via Java ermöglicht das Extrahieren des in Folienübergängen verwendeten Tons. Sie können beispielsweise den Ton einer bestimmten Folie extrahieren. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) und laden Sie die Präsentation, die das Audio enthält. +2. Rufen Sie die Referenz der entsprechenden Folie über deren Index ab. +3. Greifen Sie auf die [slideshow transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--) der Folie zu. +4. Extrahieren Sie den Ton als Byte‑Daten. + +```javascript +// Instanziert eine Presentation-Klasse, die eine Präsentationsdatei repräsentiert +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // Greift auf die gewünschte Folie zu + const slide = pres.getSlides().get_Item(0); + // Holt die Folienübergangseffekte für die Folie + const transition = slide.getSlideShowTransition(); + // Extrahiert den Ton als Byte-Array + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich dasselbe Audio‑Asset auf mehreren Folien wiederverwenden, ohne die Dateigröße zu erhöhen?** + +Ja. Fügen Sie das Audio einmal zur geteilten [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) der Präsentation hinzu und erstellen Sie weitere Audio‑Frames, die auf dieses vorhandene Asset verweisen. Dadurch wird eine Duplizierung von Mediendaten vermieden und die Präsentationsgröße bleibt kontrollierbar. + +**Kann ich den Ton in einem bestehenden Audio‑Frame ersetzen, ohne die Form neu zu erstellen?** + +Ja. Für einen verknüpften Ton aktualisieren Sie den [link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) sodass er auf die neue Datei verweist. Für einen eingebetteten Ton tauschen Sie das [embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) Objekt gegen ein anderes aus der [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) der Präsentation aus. Die Formatierung des Frames und die meisten Wiedergabeeinstellungen bleiben erhalten. + +**Ändert das Trimmen die zugrunde liegenden Audiodaten, die in der Präsentation gespeichert sind?** + +Nein. Trimmen passt lediglich die Wiedergabegrenzen an. Die ursprünglichen Audiodaten bleiben unverändert und sind über das eingebettete Audio oder die Audio‑Collection der Präsentation zugänglich. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..06f8572a6b --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: Flash +type: docs +weight: 10 +url: /de/nodejs-java/flash/ +description: Extrahieren von Flash-Objekten aus PowerPoint-Präsentationen mit JavaScript +--- + +## **Flash-Objekte aus Präsentation extrahieren** + +Aspose.Slides für Node.js über Java bietet eine Möglichkeit, Flash-Objekte aus einer Präsentation zu extrahieren. Sie können die Flash-Steuerung per Name zugreifen und sie aus der Präsentation extrahieren sowie die SWF-Objektdaten speichern. +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Welche Präsentationsformate werden beim Extrahieren von Flash-Inhalten unterstützt?** + +[Aspose.Slides supports](/slides/de/nodejs-java/supported-file-formats/) die wichtigsten PowerPoint-Formate wie PPT und PPTX, da es diese Container laden und auf deren Steuerelemente zugreifen kann, einschließlich Flash-bezogener ActiveX-Elemente. + +**Kann ich eine Präsentation mit Flash nach HTML5 konvertieren und die Flash-Interaktivität beibehalten?** + +Nein. Aspose.Slides führt keinen SWF-Inhalt aus und konvertiert die Interaktivität nicht. Zwar wird der Export zu [HTML](/slides/de/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/de/nodejs-java/export-to-html5/) unterstützt, Flash wird jedoch in modernen Browsern aufgrund des Endes der Unterstützung nicht abgespielt. Der empfohlene Ansatz ist, Flash vor dem Export durch Alternativen wie Video oder HTML5-Animationen zu ersetzen. + +**Führt Aspose.Slides aus Sicherheitsgründen SWF-Dateien beim Einlesen einer Präsentation aus?** + +Nein. Aspose.Slides behandelt Flash als binäre Daten, die in die Datei eingebettet sind, und führt während der Verarbeitung keinen SWF-Inhalt aus. + +**Wie sollte ich mit Präsentationen umgehen, die Flash zusammen mit anderen eingebetteten Dateien über OLE enthalten?** + +Aspose.Slides unterstützt das [extracting embedded OLE objects](/slides/de/nodejs-java/manage-ole/), sodass Sie alle zugehörigen eingebetteten Inhalte in einem Durchgang verarbeiten können, indem Sie Flash-Steuerelemente und andere OLE-eingebettete Dokumente gemeinsam handhaben. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..c2c265faf8 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,294 @@ +--- +title: Bild +type: docs +weight: 10 +url: /de/nodejs-java/image/ +keywords: +- Bild hinzufügen +- Bild hinzufügen +- Bitmap hinzufügen +- Bild ersetzen +- Bild ersetzen +- aus dem Web +- Hintergrund +- PNG hinzufügen +- JPG hinzufügen +- SVG hinzufügen +- EMF hinzufügen +- WMF hinzufügen +- TIFF hinzufügen +- PowerPoint +- OpenDocument +- Präsentation +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "Optimieren Sie die Bildverwaltung in PowerPoint und OpenDocument mit Aspose.Slides für Node.js, verbessern Sie die Leistung und automatisieren Sie Ihren Workflow." +--- + +## **Bilder in Folien von Präsentationen** + +Bilder machen Präsentationen ansprechender und interessanter. In Microsoft PowerPoint können Sie Bilder aus einer Datei, dem Internet oder anderen Quellen in Folien einfügen. Ebenso ermöglicht Aspose.Slides das Hinzufügen von Bildern zu Folien in Ihren Präsentationen über verschiedene Verfahren. + +{{% alert title="Tip" color="primary" %}} +Aspose bietet kostenlose Konverter—[JPEG nach PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) und [PNG nach PowerPoint](https://products.aspose.app/slides/import/png-to-ppt) — mit denen Sie schnell Präsentationen aus Bildern erstellen können. +{{% /alert %}} + +{{% alert title="Info" color="info" %}} +Wenn Sie ein Bild als Rahmenobjekt hinzufügen möchten — insbesondere, wenn Sie Standardformatierungsoptionen nutzen wollen, um Größe, Effekte usw. zu ändern — sehen Sie sich [Bildrahmen](https://docs.aspose.com/slides/nodejs-java/picture-frame/) an. +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} +Sie können Ein- und Ausgabevorgänge mit Bildern und PowerPoint‑Präsentationen manipulieren, um ein Bild von einem Format in ein anderes zu konvertieren. Siehe diese Seiten: Konvertieren Sie [Bild zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); konvertieren Sie [JPG zu Bild](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); konvertieren Sie [JPG zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), konvertieren Sie [PNG zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); konvertieren Sie [PNG zu SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), konvertieren Sie [SVG zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). +{{% /alert %}} + +Aspose.Slides unterstützt Vorgänge mit Bildern in diesen gängigen Formaten: JPEG, PNG, GIF und weitere. + +## **Lokale Bilder zu Folien hinzufügen** + +Sie können ein oder mehrere Bilder von Ihrem Computer zu einer Folie einer Präsentation hinzufügen. Der folgende Beispielcode in JavaScript zeigt, wie Sie ein Bild zu einer Folie hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Bilder aus einem Stream zu Folien hinzufügen** + +Wenn das Bild, das Sie zu einer Folie hinzufügen möchten, nicht auf Ihrem Computer verfügbar ist, können Sie das Bild direkt aus dem Web hinzufügen. + +Der folgende Beispielcode zeigt, wie Sie ein Bild aus dem Web zu einer Folie in JavaScript hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Greift auf die erste Folie zu + var sld = pres.getSlides().get_Item(0); + // Lädt eine Excel-Datei in einen Stream + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // Erstellt ein Datenobjekt zum Einbetten + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // Fügt ein Ole Object Frame Shape hinzu + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // Schreibt die PPTX-Datei auf die Festplatte + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Bilder zu Folienmaster hinzufügen** + +Ein Folienmaster ist die übergeordnete Folie, die Informationen (Design, Layout usw.) für alle darunterliegenden Folien speichert und steuert. Wenn Sie also ein Bild zu einem Folienmaster hinzufügen, erscheint dieses Bild auf jeder Folie, die diesen Folienmaster verwendet. + +Der folgende JavaScript‑Beispielcode zeigt, wie Sie ein Bild zu einem Folienmaster hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Bilder als Folienhintergrund hinzufügen** + +Sie können ein Bild als Hintergrund für eine bestimmte Folie oder mehrere Folien verwenden. In diesem Fall sollten Sie *[Bilder als Hintergrund für Folien festlegen](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)* ansehen. + +## **SVG zu Präsentationen hinzufügen** +Sie können jedes Bild in eine Präsentation einfügen, indem Sie die Methode [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) der Klasse [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) verwenden. + +Um ein Bildobjekt auf Basis einer SVG‑Datei zu erstellen, gehen Sie wie folgt vor: + +1. Erstellen Sie ein SvgImage‑Objekt, um es in die ImageShapeCollection einzufügen. +2. Erstellen Sie ein PPImage‑Objekt aus dem ISvgImage. +3. Erstellen Sie ein PictureFrame‑Objekt mithilfe der PPImage‑Klasse. + +Der folgende Beispielcode zeigt, wie Sie die oben genannten Schritte umsetzen, um ein SVG‑Bild in eine Präsentation einzufügen: +```javascript +// Instanziiere die Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **SVG in ein Satz von Formen konvertieren** +Die SVG‑Konvertierung von Aspose.Slides in einen Satz von Formen entspricht der PowerPoint‑Funktionalität zum Arbeiten mit SVG‑Bildern: + +![PowerPoint Popup-Menü](img_01_01.png) + +Die Funktion wird von einer der Überladungen der Methode [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) der Klasse [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) bereitgestellt, die ein [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage)‑Objekt als erstes Argument akzeptiert. + +Der folgende Beispielcode zeigt, wie Sie die beschriebene Methode verwenden, um eine SVG‑Datei in einen Satz von Formen zu konvertieren: +```javascript +// Neue Präsentation erstellen +var presentation = new aspose.slides.Presentation(); +try { + // SVG-Dateiinhalt lesen + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // SvgImage-Objekt erstellen + var svgImage = new aspose.slides.SvgImage(svgContent); + // Foliengröße abrufen + var slideSize = presentation.getSlideSize().getSize(); + // SVG-Bild in Gruppe von Formen konvertieren und auf Foliengröße skalieren + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // Präsentation im PPTX-Format speichern + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Bilder als EMF in Folien hinzufügen** +Aspose.Slides für Node.js via Java ermöglicht das Erzeugen von EMF‑Bildern aus Excel‑Tabellen und das Hinzufügen dieser Bilder als EMF in Folien mit Aspose.Cells. + +Der folgende Beispielcode zeigt, wie Sie die beschriebene Aufgabe ausführen: +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); +// Save the workbook to stream +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Bilder in der Bildsammlung ersetzen** + +Aspose.Slides erlaubt das Ersetzen von Bildern, die in der Bildsammlung einer Präsentation gespeichert sind (einschließlich der von Folienformen verwendeten Bilder). Dieser Abschnitt zeigt mehrere Ansätze zum Aktualisieren von Bildern in der Sammlung. Die API bietet unkomplizierte Methoden, um ein Bild mithilfe von rohen Byte‑Daten, einer [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/)-Instanz oder einem anderen bereits in der Sammlung vorhandenen Bild zu ersetzen. + +Befolgen Sie die folgenden Schritte: + +1. Laden Sie die Präsentationsdatei, die Bilder enthält, mit der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) . +2. Laden Sie ein neues Bild aus einer Datei in ein Byte‑Array. +3. Ersetzen Sie das Zielbild durch das neue Bild mithilfe des Byte‑Arrays. +4. Im zweiten Ansatz laden Sie das Bild in ein [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/)-Objekt und ersetzen das Zielbild durch dieses Objekt. +5. Im dritten Ansatz ersetzen Sie das Zielbild durch ein Bild, das bereits in der Bildsammlung der Präsentation existiert. +6. Schreiben Sie die geänderte Präsentation als PPTX‑Datei. +```js +// Instanziiere die Presentation-Klasse, die eine Präsentationsdatei darstellt. +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // Der erste Weg. + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // Der zweite Weg. + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // Der dritte Weg. + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // Speichere die Präsentation in einer Datei. + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Mit dem kostenlosen Aspose FREE‑Konverter [Text nach GIF](https://products.aspose.app/slides/text-to-gif) können Sie Texte leicht animieren, GIFs aus Texten erstellen usw. +{{% /alert %}} + +## **FAQ** + +**Bleibt die ursprüngliche Bildauflösung nach dem Einfügen erhalten?** +Ja. Die Quellpixel werden beibehalten, jedoch hängt das endgültige Erscheinungsbild davon ab, wie das [Bild](/slides/de/nodejs-java/picture-frame/) auf der Folie skaliert wird und welche Kompression beim Speichern angewendet wird. + +**Wie ersetze ich dasselbe Logo gleichzeitig auf Dutzenden von Folien?** +Platzieren Sie das Logo auf dem Master‑Slide oder einem Layout und ersetzen Sie es in der Bildsammlung der Präsentation — die Änderungen werden auf alle Elemente übertragen, die diese Ressource nutzen. + +**Kann ein eingefügtes SVG in editierbare Formen konvertiert werden?** +Ja. Sie können ein SVG in eine Gruppe von Formen konvertieren; danach können einzelne Teile mit den Standard‑Formeigenschaften bearbeitet werden. + +**Wie setze ich ein Bild als Hintergrund für mehrere Folien gleichzeitig?** +[Weisen Sie das Bild als Hintergrund](/slides/de/nodejs-java/presentation-background/) dem Master‑Slide oder dem entsprechenden Layout zu — alle Folien, die diesen Master/Layout verwenden, erben den Hintergrund. + +**Wie verhindere ich, dass die Präsentation durch zu viele Bilder stark anwächst?** +Verwenden Sie ein einzelnes Bild mehrfach anstatt Duplikaten, wählen Sie angemessene Auflösungen, aktivieren Sie Kompression beim Speichern und platzieren Sie wiederkehrende Grafiken nach Möglichkeit im Master. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..c60ef26539 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,443 @@ +--- +title: Bildrahmen +type: docs +weight: 10 +url: /de/nodejs-java/picture-frame/ +keywords: +- Bildrahmen +- Bildrahmen hinzufügen +- Bildrahmen erstellen +- Bild hinzufügen +- Bild erstellen +- Bild extrahieren +- Bild zuschneiden +- StretchOff-Eigenschaft +- Bildrahmen-Formatierung +- Bildrahmen-Eigenschaften +- Bildeffekt +- Seitenverhältnis +- PowerPoint +- Präsentation +- Node.js +- JavaScript +- Aspose.Slides für Node.js via Java +description: "Ein Bildrahmen zu einer PowerPoint-Präsentation in JavaScript hinzufügen" +--- + +Ein Bildrahmen ist eine Form, die ein Bild enthält – er ist wie ein Bild in einem Rahmen. + +Sie können einem Folie ein Bild über einen Bildrahmen hinzufügen. Auf diese Weise können Sie das Bild formatieren, indem Sie den Bildrahmen formatieren. + +{{% alert title="Tip" color="primary" %}} + +Aspose bietet kostenlose Konverter—[JPEG nach PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) und [PNG nach PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)—die es ermöglichen, schnell Präsentationen aus Bildern zu erstellen. + +{{% /alert %}} + +## **Bildrahmen erstellen** + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie über ihren Index. +3. Erstellen Sie ein `PPImage`-Objekt, indem Sie ein Bild zur [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) hinzufügen, die dem Präsentationsobjekt zugeordnet ist und zum Füllen der Form verwendet wird. +4. Geben Sie die Breite und Höhe des Bildes an. +5. Erstellen Sie ein [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) basierend auf der Breite und Höhe des Bildes, über die Methode `addPictureFrame`, die vom Form-Objekt bereitgestellt wird, das mit der referenzierten Folie verknüpft ist. +6. Fügen Sie der Folie einen Bildrahmen (der das Bild enthält) hinzu. +7. Speichern Sie die modifizierte Präsentation als PPTX-Datei. + +Dieses JavaScript‑Codebeispiel zeigt, wie Sie einen Bildrahmen erstellen: +```javascript +// Instanziiert die Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Liest die erste Folie + var sld = pres.getSlides().get_Item(0); + // Instanziiert die Image-Klasse + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Fügt einen Bildrahmen mit der entsprechenden Höhe und Breite des Bildes hinzu + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Schreibt die PPTX-Datei auf die Festplatte + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" %}} + +Bildrahmen ermöglichen es Ihnen, schnell Präsentationsfolien auf Basis von Bildern zu erstellen. Wenn Sie den Bildrahmen mit den Speicheroptionen von Aspose.Slides kombinieren, können Sie Ein‑ und Ausgabevorgänge steuern, um Bilder von einem Format in ein anderes zu konvertieren. Möglicherweise möchten Sie diese Seiten ansehen: konvertieren [Bild zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); konvertieren [JPG zu Bild](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); konvertieren [JPG zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), konvertieren [PNG zu JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); konvertieren [PNG zu SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), konvertieren [SVG zu PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Bildrahmen mit relativer Skalierung erstellen** + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie über ihren Index. +3. Fügen Sie ein Bild zur Bildsammlung der Präsentation hinzu. +4. Erstellen Sie ein [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage)-Objekt, indem Sie ein Bild zur [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) hinzufügen, die dem Präsentationsobjekt zugeordnet ist und zum Füllen der Form verwendet wird. +5. Geben Sie die relative Breite und Höhe des Bildes im Bildrahmen an. +6. Speichern Sie die modifizierte Präsentation als PPTX-Datei. + +Dieses JavaScript‑Codebeispiel zeigt, wie Sie einen Bildrahmen mit relativer Skalierung erstellen: +```javascript +// Instanziere die Presentation-Klasse, die die PPTX darstellt +var pres = new aspose.slides.Presentation(); +try { + // Hole die erste Folie + var sld = pres.getSlides().get_Item(0); + // Instanziere die Image-Klasse + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Füge einen Bildrahmen mit Höhe und Breite des Bildes hinzu + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Relative Skalierung von Breite und Höhe festlegen + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // Schreibe die PPTX-Datei auf die Festplatte + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Rasterbilder aus Bildrahmen extrahieren** + +Sie können Rasterbilder aus [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame)-Objekten extrahieren und in PNG, JPG und anderen Formaten speichern. Das untenstehende Codebeispiel zeigt, wie Sie ein Bild aus dem Dokument „sample.pptx“ extrahieren und im PNG-Format speichern. +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **SVG‑Bilder aus Bildrahmen extrahieren** + +Wenn eine Präsentation SVG‑Grafiken enthält, die in [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/)-Formen platziert sind, ermöglicht Aspose.Slides für Node.js über Java das Abrufen der ursprünglichen Vektorbilder mit voller Treue. Durch Durchlaufen der Formensammlung der Folie können Sie jedes [PictureFrame]‑Objekt identifizieren, prüfen, ob das zugrunde liegende [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) SVG‑Inhalte enthält, und das Bild anschließend auf dem Datenträger oder in einem Stream im nativen SVG‑Format speichern. + +Der folgende Code demonstriert, wie ein SVG‑Bild aus einem Bildrahmen extrahiert wird: +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Transparenz eines Bildes erhalten** + +Aspose.Slides ermöglicht es Ihnen, den auf ein Bild angewendeten Transparenzeffekt abzurufen. Dieser JavaScript‑Code demonstriert die Vorgehensweise: +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **Bildrahmenformatierung** + +Aspose.Slides bietet zahlreiche Formatierungsoptionen, die auf einen Bildrahmen angewendet werden können. Mit diesen Optionen können Sie einen Bildrahmen anpassen, um spezifische Anforderungen zu erfüllen. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie über ihren Index. +3. Erstellen Sie ein [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage)-Objekt, indem Sie ein Bild zur [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) hinzufügen, die dem Präsentationsobjekt zugeordnet ist und zum Füllen der Form verwendet wird. +4. Geben Sie die Breite und Höhe des Bildes an. +5. Erstellen Sie ein `PictureFrame` basierend auf der Breite und Höhe des Bildes über die Methode [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) , die vom [Shapes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection)-Objekt bereitgestellt wird, das mit der referenzierten Folie verknüpft ist. +6. Fügen Sie den Bildrahmen (der das Bild enthält) der Folie hinzu. +7. Legen Sie die Linienfarbe des Bildrahmens fest. +8. Legen Sie die Linienbreite des Bildrahmens fest. +9. Rotieren Sie den Bildrahmen, indem Sie ihm einen positiven oder negativen Wert zuweisen. + * Ein positiver Wert dreht das Bild im Uhrzeigersinn. + * Ein negativer Wert dreht das Bild gegen den Uhrzeigersinn. +10. Fügen Sie den Bildrahmen (der das Bild enthält) der Folie hinzu. +11. Speichern Sie die modifizierte Präsentation als PPTX-Datei. + +Dieser JavaScript‑Code demonstriert den Bildrahmenformatierungsprozess: +```javascript +// Instanziert die Presentation-Klasse, die die PPTX darstellt +var pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie + var sld = pres.getSlides().get_Item(0); + // Instanziert die Image-Klasse + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Fügt einen Bildrahmen mit Höhe und Breite des Bildes hinzu + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Wendet einige Formatierungen auf PictureFrameEx an + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // Schreibt die PPTX-Datei auf die Festplatte + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose hat kürzlich einen [kostenlosen Collage‑Maker](https://products.aspose.app/slides/collage) entwickelt. Wenn Sie jemals [JPG/JPEG zusammenführen](https://products.aspose.app/slides/collage/jpg) oder PNG‑Bilder, [Raster aus Fotos erstellen](https://products.aspose.app/slides/collage/photo-grid), benötigen, können Sie diesen Dienst nutzen. + +{{% /alert %}} + +## **Bild als Link hinzufügen** + +Um große Präsentationsgrößen zu vermeiden, können Sie Bilder (oder Videos) über Links hinzufügen, anstatt die Dateien direkt in die Präsentation einzubetten. Dieser JavaScript‑Code zeigt, wie Sie ein Bild und ein Video in einen Platzhalter einfügen: +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Bild zuschneiden** + +Dieser JavaScript‑Code zeigt, wie Sie ein vorhandenes Bild auf einer Folie zuschneiden: +```javascript +var pres = new aspose.slides.Presentation(); +// Erstellt ein neues Bildobjekt +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Fügt einen Bildrahmen zu einer Folie hinzu + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // Schneidet das Bild zu (Prozentwerte) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // Speichert das Ergebnis + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zugeschnittene Bereiche des Bildes löschen** + +Wenn Sie die zugeschnittenen Bereiche eines Bildes, das in einem Rahmen enthalten ist, löschen möchten, können Sie die Methode [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) verwenden. Diese Methode gibt das zugeschnittene Bild zurück oder das Originalbild, falls ein Zuschnitt nicht erforderlich ist. + +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // Holt den Bildrahmen von der ersten Folie + var picFrame = slide.getShapes().get_Item(0); + // Löscht zugeschnittene Bereiche des Bildes im Bildrahmen und gibt das zugeschnittene Bild zurück + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // Speichert das Ergebnis + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +Die Methode [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) fügt das zugeschnittene Bild zur Bildsammlung der Präsentation hinzu. Wird das Bild nur im verarbeiteten [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) verwendet, kann diese Vorgehensweise die Präsentationsgröße reduzieren. Andernfalls erhöht sich die Anzahl der Bilder in der resultierenden Präsentation. + +Diese Methode konvertiert WMF/EMF‑Metadateien im Zuschnittsvorgang in ein rasterisiertes PNG‑Bild. + +{{% /alert %}} + +## **Seitenverhältnis sperren** + +Wenn Sie möchten, dass eine Form, die ein Bild enthält, ihr Seitenverhältnis beibehält, selbst wenn Sie die Bildabmessungen ändern, können Sie die Methode [setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-) verwenden, um die Einstellung *Seitenverhältnis sperren* zu aktivieren. + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // Form so einstellen, dass das Seitenverhältnis beim Skalieren beibehalten wird + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +Diese Einstellung *Seitenverhältnis sperren* bewahrt nur das Seitenverhältnis der Form, nicht jedoch das darin enthaltene Bild. +{{% /alert %}} + +## **StretchOff‑Eigenschaft verwenden** + +Durch die Verwendung der Methoden [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-), [setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--), [setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) und [setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) aus der Klasse [PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat) können Sie ein Füllrechteck festlegen. + +Wenn ein Bild gestreckt werden soll, wird ein Quellrechteck so skaliert, dass es in das angegebene Füllrechteck passt. Jede Kante des Füllrechtecks wird durch einen prozentualen Versatz von der entsprechenden Kante der Begrenzungsbox der Form definiert. Ein positiver Prozentsatz bedeutet eine Einbuchtung, ein negativer Prozentsatz bedeutet ein Aufsatz. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio). +2. Holen Sie sich die Referenz einer Folie über ihren Index. +3. Fügen Sie ein Rechteck `AutoShape` hinzu. +4. Erstellen Sie ein Bild. +5. Legen Sie den Fülltyp der Form fest. +6. Legen Sie den Bildfüllmodus der Form fest. +7. Fügen Sie ein festgelegtes Bild hinzu, um die Form zu füllen. +8. Geben Sie Bildversätze von der entsprechenden Kante der Begrenzungsbox der Form an. +9. Speichern Sie die modifizierte Präsentation als PPTX-Datei. + +Dieser JavaScript‑Code demonstriert einen Prozess, in dem eine StretchOff‑Eigenschaft verwendet wird: +```javascript +// Instanziert die Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie + var slide = pres.getSlides().get_Item(0); + // Instanziert die ImageEx-Klasse + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Fügt eine AutoShape vom Typ Rechteck hinzu + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Setzt den Fülltyp der Form + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // Setzt den Bildfüllmodus der Form + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // Setzt das Bild zum Füllen der Form + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // Gibt die Bildversätze relativ zur entsprechenden Kante des Begrenzungsrahmens der Form an + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // Schreibt die PPTX-Datei auf die Festplatte + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Wie kann ich herausfinden, welche Bildformate für PictureFrame unterstützt werden?** + +Aspose.Slides unterstützt sowohl Rasterbilder (PNG, JPEG, BMP, GIF usw.) als auch Vektorbilder (z. B. SVG) über das Bildobjekt, das einem [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) zugewiesen wird. Die Liste der unterstützten Formate überschneidet sich im Allgemeinen mit den Fähigkeiten der Folien‑ und Bildkonvertierungs‑Engine. + +**Wie wirkt sich das Hinzufügen Dutzender großer Bilder auf die PPTX‑Größe und die Leistung aus?** + +Das Einbetten großer Bilder vergrößert die Dateigröße und den Speicherverbrauch; das Verlinken von Bildern hilft, die Präsentationsgröße klein zu halten, erfordert jedoch, dass die externen Dateien weiterhin zugänglich sind. Aspose.Slides bietet die Möglichkeit, Bilder per Link hinzuzufügen, um die Dateigröße zu reduzieren. + +**Wie kann ich ein Bildobjekt vor versehentlichem Verschieben/Größenändern sperren?** + +Verwenden Sie [Shape‑Locks](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/) für ein [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) (z. B. zum Deaktivieren von Verschieben oder Größentransformation). Der Sperrmechanismus wird für Formen in einem separaten [Schutz‑Artikel](/slides/de/nodejs-java/applying-protection-to-presentation/) beschrieben und wird für verschiedene Formtypen, einschließlich [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), unterstützt. + +**Wird die Vektor‑Treue von SVG beim Export einer Präsentation nach PDF/Bildern beibehalten?** + +Aspose.Slides ermöglicht das Extrahieren eines SVGs aus einem [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) als ursprünglichen Vektor. Beim [Export nach PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/) oder in [Rasterformate](/slides/de/nodejs-java/convert-powerpoint-to-png/) kann das Ergebnis je nach Exporteinstellungen rasterisiert werden; die Tatsache, dass das ursprüngliche SVG als Vektor gespeichert ist, wird durch das Extraktionsverhalten bestätigt. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..63bdeebed0 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,176 @@ +--- +title: Video-Frame +type: docs +weight: 10 +url: /de/nodejs-java/video-frame/ +keywords: "Video hinzufügen, Video-Frame erstellen, Video extrahieren, PowerPoint-Präsentation, Java, Aspose.Slides für Node.js via Java" +description: "Video-Frame zu einer PowerPoint-Präsentation in JavaScript hinzufügen" +--- + +Ein gut platziertes Video in einer Präsentation kann Ihre Botschaft überzeugender machen und das Engagement Ihres Publikums steigern. + +PowerPoint ermöglicht es Ihnen, Videos auf einer Folie in einer Präsentation auf zwei Arten hinzuzufügen: + +* Ein lokales Video hinzufügen oder einbetten (auf Ihrem Rechner gespeichert) +* Ein Online‑Video hinzufügen (aus einer Webquelle wie YouTube). + +Um Ihnen das Hinzufügen von Videos (Video‑Objekten) zu einer Präsentation zu ermöglichen, stellt Aspose.Slides die Klasse [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) , die Klasse [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) und weitere relevante Typen zur Verfügung. + +## **Eingebetteten Video‑Frame erstellen** + +Wenn die Videodatei, die Sie Ihrer Folie hinzufügen möchten, lokal gespeichert ist, können Sie einen Video‑Frame erstellen, um das Video in Ihre Präsentation einzubetten. + +1. Erstellen Sie eine Instanz der Klasse [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)class. +2. Holen Sie sich die Referenz einer Folie über deren Index. +3. Fügen Sie ein [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)-Objekt hinzu und übergeben Sie den Pfad zur Videodatei, um das Video in die Präsentation einzubetten. +4. Fügen Sie ein [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)-Objekt hinzu, um einen Frame für das Video zu erstellen. +5. Speichern Sie die geänderte Präsentation. + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie ein lokal gespeichertes Video zu einer Präsentation hinzufügen: +```javascript +// Instanziiert die Presentation-Klasse +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Lädt das Video + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // Holt die erste Folie und fügt einen Video-Frame hinzu + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // Speichert die Präsentation auf dem Datenträger + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Alternativ können Sie ein Video hinzufügen, indem Sie den Dateipfad direkt an die Methode [addVideoFrame(float x, float y, float width, float height, IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-) übergeben: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Video‑Frame mit Video aus Web‑Quelle erstellen** + +Microsoft [PowerPoint 2013 und neuer](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us) unterstützt YouTube‑Videos in Präsentationen. Wenn das Video, das Sie verwenden möchten, online verfügbar ist (z. B. auf YouTube), können Sie es über seinen Weblink zu Ihrer Präsentation hinzufügen. + +1. Erstellen Sie eine Instanz der [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)class +2. Holen Sie sich die Referenz einer Folie über deren Index. +3. Fügen Sie ein [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)-Objekt hinzu und übergeben Sie den Link zum Video. +4. Legen Sie ein Thumbnail für den Video‑Frame fest. +5. Speichern Sie die Präsentation. + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie ein Video aus dem Web zu einer Folie in einer PowerPoint‑Präsentation hinzufügen: +```javascript +// Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **Video von Folie extrahieren** + +Neben dem Hinzufügen von Videos zu Folien ermöglicht Aspose.Slides das Extrahieren von in Präsentationen eingebetteten Videos. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) class, um die Präsentation zu laden, die das Video enthält. +2. Durchlaufen Sie alle [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/)-Objekte. +3. Durchlaufen Sie alle [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/)-Objekte, um ein [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) zu finden. +4. Speichern Sie das Video auf dem Datenträger. + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie das Video einer Präsentationsfolie extrahieren: +```javascript +// Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // Ermittelt die Dateierweiterung + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Welche Wiedergabeparameter können für einen VideoFrame geändert werden?** +Sie können den [Wiedergabemodus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/) (automatisch oder bei Klick) und das [Looping](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/) steuern. Diese Optionen sind über die Eigenschaften des [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)-Objekts verfügbar. + +**Hat das Hinzufügen eines Videos Auswirkungen auf die PPTX-Dateigröße?** +Ja. Wenn Sie ein lokales Video einbetten, werden die Binärdaten in das Dokument aufgenommen, sodass die Präsentationsgröße proportional zur Dateigröße zunimmt. Wenn Sie ein Online‑Video hinzufügen, werden nur ein Link und ein Thumbnail eingebettet, wodurch die Größensteigerung geringer ausfällt. + +**Kann ich das Video in einem bestehenden VideoFrame ersetzen, ohne Position und Größe zu ändern?** +Ja. Sie können den [Video‑Inhalt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/) im Frame austauschen, während die Geometrie der Form erhalten bleibt; dies ist ein häufiges Szenario zum Aktualisieren von Medien in einem bestehenden Layout. + +**Kann der Content‑Typ (MIME) eines eingebetteten Videos ermittelt werden?** +Ja. Ein eingebettetes Video verfügt über einen [Content‑Typ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/), den Sie auslesen und beispielsweise beim Speichern auf dem Datenträger verwenden können. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..83f9594f85 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,332 @@ +--- +title: OLE in Präsentationen mit JavaScript verwalten +linktitle: OLE verwalten +type: docs +weight: 40 +url: /de/nodejs-java/manage-ole/ +keywords: +- OLE-Objekt +- Objektverknüpfung & Einbettung +- OLE hinzufügen +- OLE einbetten +- Objekt hinzufügen +- Objekt einbetten +- Datei hinzufügen +- Datei einbetten +- verknüpftes Objekt +- verknüpfte Datei +- OLE ändern +- OLE-Symbol +- OLE-Titel +- OLE extrahieren +- Objekt extrahieren +- Datei extrahieren +- PowerPoint +- Präsentation +- Node.js +- JavaScript +- Aspose.Slides +description: "Optimieren Sie die Verwaltung von OLE-Objekten in PowerPoint- und OpenDocument-Dateien mit Aspose.Slides für Node.js. Betten Sie OLE-Inhalte nahtlos ein, aktualisieren Sie sie und exportieren Sie sie." +--- + +{{% alert color="primary" %}} + +OLE (Object Linking & Embedding) ist eine Microsoft‑Technologie, die es ermöglicht, Daten und Objekte, die in einer Anwendung erstellt wurden, durch Verknüpfung oder Einbettung in einer anderen Anwendung zu platzieren. + +{{% /alert %}} + +Betrachten Sie ein in MS Excel erstelltes Diagramm. Das Diagramm wird dann in eine PowerPoint‑Folienfolie eingefügt. Dieses Excel‑Diagramm gilt als OLE‑Objekt. + +- Ein OLE‑Objekt kann als Symbol angezeigt werden. In diesem Fall wird beim Doppelklick auf das Symbol das Diagramm in der zugehörigen Anwendung (Excel) geöffnet, oder es wird nach einer Anwendung zum Öffnen bzw. Bearbeiten des Objekts gefragt. +- Ein OLE‑Objekt kann seine tatsächlichen Inhalte anzeigen, z. B. den Inhalt eines Diagramms. In diesem Fall wird das Diagramm in PowerPoint aktiviert, die Diagrammschnittstelle wird geladen und Sie können die Diagrammdaten innerhalb von PowerPoint ändern. + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) ermöglicht das Einfügen von OLE‑Objekten in Folien als OLE‑Objekt‑Frames ([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)). + +## **Hinzufügen von OLE‑Objekt‑Frames zu Folien** + +Angenommen, Sie haben bereits ein Diagramm in Microsoft Excel erstellt und möchten es mit Aspose.Slides for Node.js via Java als OLE‑Objekt‑Frame in eine Folie einbetten, so gehen Sie vor: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +2. Holen Sie sich die Referenz einer Folie über ihren Index. +3. Lesen Sie die Excel‑Datei als Byte‑Array. +4. Fügen Sie der Folie das [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) hinzu, das das Byte‑Array und weitere Informationen über das OLE‑Objekt enthält. +5. Schreiben Sie die modifizierte Präsentation als PPTX‑Datei. + +Im nachfolgenden Beispiel haben wir ein Diagramm aus einer Excel‑Datei als OLE‑Objekt‑Frame zu einer Folie hinzugefügt, wobei Aspose.Slides for Node.js via Java verwendet wurde. +**Hinweis**: Der Konstruktor von [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) akzeptiert als zweiten Parameter eine Erweiterung des einbettbaren Objekts. Diese Erweiterung ermöglicht es PowerPoint, den Dateityp korrekt zu interpretieren und die richtige Anwendung zum Öffnen dieses OLE‑Objekts auszuwählen. +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// Daten für das OLE-Objekt vorbereiten. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// OLE-Objekt-Frame zur Folie hinzufügen. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **Hinzufügen verknüpfter OLE‑Objekt‑Frames** + +Aspose.Slides for Node.js via Java ermöglicht das Hinzufügen eines [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame), bei dem keine Daten eingebettet, sondern nur ein Link zur Datei verwendet wird. + +Dieser JavaScript‑Code zeigt, wie Sie ein [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) mit einer verknüpften Excel‑Datei zu einer Folie hinzufügen: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// OLE-Objekt-Frame mit verknüpfter Excel-Datei hinzufügen. +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Zugriff auf OLE‑Objekt‑Frames** + +Wenn ein OLE‑Objekt bereits in einer Folie eingebettet ist, können Sie es auf folgende Weise leicht finden oder darauf zugreifen: + +1. Laden Sie eine Präsentation mit dem eingebetteten OLE‑Objekt, indem Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse erstellen. +2. Holen Sie sich die Referenz der Folie über ihren Index. +3. Greifen Sie auf die [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)‑Form zu. In unserem Beispiel haben wir die zuvor erstellte PPTX-Datei verwendet, die auf der ersten Folie nur eine Form enthält. +4. Sobald der OLE‑Objekt‑Frame zugänglich ist, können Sie beliebige Operationen darauf ausführen. + +Im nachfolgenden Beispiel wird ein OLE‑Objekt‑Frame (ein in einer Folie eingebettetes Excel‑Diagramm‑Objekt) und seine Dateidaten abgerufen. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Eingebettete Dateidaten abrufen. + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + + // Erweiterung der eingebetteten Datei abrufen. + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + // ... +} +``` + + +### **Zugriff auf Eigenschaften verknüpfter OLE‑Objekt‑Frames** + +Aspose.Slides ermöglicht den Zugriff auf die Eigenschaften verknüpfter OLE‑Objekt‑Frames. + +Dieser JavaScript‑Code zeigt, wie Sie prüfen können, ob ein OLE‑Objekt verknüpft ist, und anschließend den Pfad zur verknüpften Datei ermitteln: +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Überprüfen, ob das OLE-Objekt verlinkt ist. + if (oleFrame.isObjectLink()) { + // Gibt den vollständigen Pfad zur verlinkten Datei aus. + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // Gibt den relativen Pfad zur verlinkten Datei aus, falls vorhanden. + // Nur PPT-Präsentationen können den relativen Pfad enthalten. + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **Ändern von OLE‑Objektdaten** + +{{% alert color="primary" %}} + +In diesem Abschnitt verwendet das nachstehende Code‑Beispiel [Aspose.Cells for Java](/cells/java/). + +{{% /alert %}} + +1. Laden Sie eine Präsentation mit dem eingebetteten OLE‑Objekt, indem Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse erstellen. +2. Holen Sie sich die Referenz der Folie über ihren Index. +3. Greifen Sie auf die OLE‑Objekt‑Frame‑Form zu. In unserem Beispiel haben wir die zuvor erstellte PPTX‑Datei verwendet, die auf der ersten Folie eine Form enthält. +4. Sobald der OLE‑Objekt‑Frame zugänglich ist, können Sie beliebige Operationen darauf ausführen. +5. Erstellen Sie ein `Workbook`‑Objekt und greifen Sie auf die OLE‑Daten zu. +6. Greifen Sie auf das gewünschte `Worksheet` zu und ändern Sie die Daten. +7. Speichern Sie das aktualisierte `Workbook` in einem Stream. +8. Ändern Sie die OLE‑Objektdaten aus dem Stream. + +Im nachfolgenden Beispiel wird ein OLE‑Objekt‑Frame (ein in einer Folie eingebettetes Excel‑Diagramm‑Objekt) abgerufen und seine Dateidaten werden geändert, um die Diagrammdaten zu aktualisieren. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // OLE-Objektdaten als Workbook-Objekt lesen. + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // Die Workbook-Daten ändern. + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // OLE-Frame-Objektdaten ändern. + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Einbetten anderer Dateitypen in Folien** + +Neben Excel‑Diagrammen ermöglicht Aspose.Slides for Node.js via Java das Einbetten anderer Dateitypen in Folien. Beispielsweise können Sie HTML-, PDF- und ZIP‑Dateien als Objekte einfügen. Wenn ein Benutzer das eingefügte Objekt doppelklickt, wird es automatisch im entsprechenden Programm geöffnet oder der Benutzer wird aufgefordert, ein geeignetes Programm zum Öffnen auszuwählen. + +Dieser JavaScript‑Code zeigt, wie Sie HTML und ZIP in eine Folie einbetten: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Festlegen von Dateitypen für eingebettete Objekte** + +Beim Arbeiten mit Präsentationen kann es nötig sein, alte OLE‑Objekte durch neue zu ersetzen oder ein nicht unterstütztes OLE‑Objekt durch ein unterstütztes zu ersetzen. Aspose.Slides for Node.js via Java ermöglicht das Festlegen des Dateityps für ein eingebettetes Objekt, sodass Sie die OLE‑Frame‑Daten oder dessen Erweiterung aktualisieren können. + +Dieser JavaScript‑Code zeigt, wie Sie den Dateityp eines eingebetteten OLE‑Objekts auf `zip` setzen: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// Ändere den Dateityp zu ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Festlegen von Symbolbildern und Titeln für eingebettete Objekte** + +Nach dem Einbetten eines OLE‑Objekts wird automatisch eine Vorschau in Form eines Symbolbildes hinzugefügt. Diese Vorschau ist das, was Benutzer sehen, bevor sie das OLE‑Objekt öffnen oder darauf zugreifen. Wenn Sie ein bestimmtes Bild und einen Text als Elemente in der Vorschau verwenden möchten, können Sie das Symbolbild und den Titel mit Aspose.Slides for Node.js via Java festlegen. + +Dieser JavaScript‑Code zeigt, wie Sie das Symbolbild und den Titel für ein eingebettetes Objekt festlegen: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// Bild zu den Präsentationsressourcen hinzufügen. +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// Titel und Bild für die OLE‑Vorschau setzen. +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Verhindern, dass ein OLE‑Objekt‑Frame skaliert und neu positioniert wird** + +Nachdem Sie ein verknüpftes OLE‑Objekt zu einer Präsentationsfolie hinzugefügt haben, kann beim Öffnen der Präsentation in PowerPoint eine Meldung erscheinen, die Sie auffordert, die Verknüpfungen zu aktualisieren. Ein Klick auf die Schaltfläche „Update Links“ kann die Größe und Position des OLE‑Objekt‑Frames ändern, weil PowerPoint die Daten des verknüpften OLE‑Objekts aktualisiert und die Vorschau neu lädt. Um zu verhindern, dass PowerPoint zum Aktualisieren der Objektdaten auffordert, verwenden Sie die Methode `setUpdateAutomatic` der Klasse [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) mit dem Wert `false`: +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **Extrahieren eingebetteter Dateien** + +Aspose.Slides for Node.js via Java ermöglicht das Extrahieren der in Folien eingebetteten Dateien als OLE‑Objekte auf folgende Weise: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)‑Klasse, die die OLE‑Objekte enthält, die Sie extrahieren möchten. +2. Durchlaufen Sie alle Formen in der Präsentation und greifen Sie auf die [OLEObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)‑Formen zu. +3. Greifen Sie auf die Daten eingebetteter Dateien aus OLE‑Objekt‑Frames zu und schreiben Sie sie auf die Festplatte. + +Dieser JavaScript‑Code zeigt, wie Sie in einer Folie eingebettete Dateien als OLE‑Objekte extrahieren: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **FAQ** + +**Wird der OLE‑Inhalt beim Exportieren von Folien zu PDF/Bildern gerendert?** + +Was auf der Folie sichtbar ist, wird gerendert – das Symbol/Ersetzungbild (Vorschau). Der „Live‑“ OLE‑Inhalt wird beim Rendern nicht ausgeführt. Bei Bedarf können Sie ein eigenes Vorschau‑Bild festlegen, um das erwartete Aussehen im exportierten PDF zu gewährleisten. + +**Wie kann ich ein OLE‑Objekt auf einer Folie sperren, sodass Benutzer es in PowerPoint nicht verschieben/bearbeiten können?** + +Sperren Sie die Form: Aspose.Slides bietet [Form‑Sperren](/slides/de/nodejs-java/applying-protection-to-presentation/). Das ist keine Verschlüsselung, verhindert jedoch effektiv unbeabsichtigte Bearbeitungen und Verschiebungen. + +**Werden relative Pfade für verknüpfte OLE‑Objekte im PPTX‑Format beibehalten?** + +Im PPTX‑Format gibt es keine Informationen zu „relativen Pfaden“ – nur den vollständigen Pfad. Relative Pfade sind im älteren PPT‑Format zu finden. Für Portabilität sollten Sie zuverlässige absolute Pfade/zugängliche URIs oder das Einbetten bevorzugen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..e484e68ba2 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,65 @@ +--- +title: Animierter Text +type: docs +weight: 60 +url: /de/nodejs-java/animated-text/ +keywords: "Animierter Text in PowerPoint" +description: "Animierter Text in PowerPoint mit Java" +--- + +## **Animationseffekte zu Absätzen hinzufügen** + +Wir haben die [**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) Methode zu den Klassen [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) und [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) hinzugefügt. Diese Methode ermöglicht es Ihnen, Animations­effekte zu einem einzelnen Absatz hinzuzufügen. Dieses Beispiel‑Code zeigt, wie man einen Animations­effekt zu einem einzelnen Absatz hinzufügt: +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // Absatz auswählen, um einen Effekt hinzuzufügen + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // Fly-Animationseffekt zum ausgewählten Absatz hinzufügen + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Abrufen der Animations­effekte in Absätzen** + +Sie möchten möglicherweise die zu einem Absatz hinzugefügten Animations­effekte ermitteln – zum Beispiel, wenn Sie die Animations­effekte eines Absatzes benötigen, um sie auf einen anderen Absatz oder ein anderes Shape anzuwenden. + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, alle auf Absätze in einem Text‑Frame (Shape) angewendeten Animations­effekte abzurufen. Dieser Beispiel‑Code zeigt, wie man die Animations­effekte in einem Absatz erhält: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **FAQ** + +**Wie unterscheiden sich Textanimationen von Folienübergängen, und können sie kombiniert werden?** + +Textanimationen steuern das Verhalten von Objekten über die Zeit auf einer Folie, während [Übergänge](/slides/de/nodejs-java/slide-transition/) bestimmen, wie Folien wechseln. Sie sind unabhängig und können gemeinsam verwendet werden; die Wiedergabereihenfolge wird durch die Animations‑Zeitachse und die Übergangseinstellungen bestimmt. + +**Werden Textanimationen beim Exportieren in PDF oder Bilder beibehalten?** + +Nein. PDF‑ und Rasterbilder sind statisch, daher sehen Sie einen einzelnen Folienzustand ohne Bewegung. Um die Bewegung zu erhalten, verwenden Sie den Export als [Video](/slides/de/nodejs-java/convert-powerpoint-to-video/) oder [HTML](/slides/de/nodejs-java/export-to-html5/). + +**Funktionieren Textanimationen in Layouts und im Folienmaster?** + +Auf Layout‑/Master‑Objekte angewendete Effekte werden von den Folien geerbt, jedoch hängen deren Timing und Interaktion mit Folien‑Animationen von der endgültigen Reihenfolge auf der Folie ab. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..38e8734b90 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,112 @@ +--- +title: Text aus Präsentation extrahieren +type: docs +weight: 90 +url: /de/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +Es ist nicht ungewöhnlich, dass Entwickler den Text aus einer Präsentation extrahieren müssen. Dazu müssen Sie den Text aus allen Formen auf allen Folien einer Präsentation extrahieren. Dieser Artikel erklärt, wie man Text aus Microsoft PowerPoint PPTX‑Präsentationen mit Aspose.Slides extrahiert. + +{{% /alert %}} + +## **Text aus Folie extrahieren** + +Aspose.Slides für Node.js via Java stellt die Klasse [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil) bereit. Diese Klasse stellt eine Reihe überladener statischer Methoden zum Extrahieren des gesamten Textes aus einer Präsentation oder Folie bereit. Um den Text aus einer Folie in einer PPTX‑Präsentation zu extrahieren, verwenden Sie die überladene statische Methode [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) der Klasse [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Diese Methode akzeptiert das Slide Objekt als Parameter. +Bei der Ausführung scannt die Slide Methode den gesamten Text der als Parameter übergebenen Folie und gibt ein Array von [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) Objekten zurück. Das bedeutet, dass alle mit dem Text verbundenen Formatierungen verfügbar sind. Der folgende Code extrahiert den gesamten Text der ersten Folie der Präsentation: +```javascript +// Instanziiere die Presentation‑Klasse, die eine PPTX‑Datei darstellt +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // Erhalte ein Array von ITextFrame‑Objekten aus allen Folien der PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // Durchlaufe das Array von TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Durchlaufe Absätze im aktuellen ITextFrame + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Durchlaufe Abschnitte im aktuellen IParagraph + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Anzeige des Textes im aktuellen Abschnitt + console.log(port.getText()); + // Anzeige der Schriftgröße des Textes + console.log(port.getPortionFormat().getFontHeight()); + // Anzeige des Schriftartnamens des Textes + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); +} finally { + pres.dispose(); +} +``` + + +## **Text aus Präsentation extrahieren** + +Um den Text aus der gesamten Präsentation zu scannen, verwenden Sie die statische Methode [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) der Klasse SlideUtil. Sie nimmt zwei Parameter: + +1. Erstens ein [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) Objekt, das die Präsentation repräsentiert, aus der der Text extrahiert wird. +2. Zweitens ein boolescher Wert, der bestimmt, ob die Master‑Folien beim Scannen des Textes aus der Präsentation einbezogen werden sollen. +Die Methode gibt ein Array von [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) Objekten zurück, inklusive Textformatierungsinformationen. Der nachstehende Code scannt den Text und die Formatierungsinformationen aus einer Präsentation, einschließlich der Master‑Folien. +```javascript +// Instanziiere die Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // Erhalte ein Array von ITextFrame-Objekten aus allen Folien der PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // Durchlaufe das Array von TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Durchlaufe Absätze im aktuellen ITextFrame + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Durchlaufe Abschnitte im aktuellen IParagraph + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Gib den Text im aktuellen Abschnitt aus + console.log(port.getText()); + // Gib die Schriftgröße des Textes aus + console.log(port.getPortionFormat().getFontHeight()); + // Gib den Schriftartnamen des Textes aus + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **Kategorisierte und schnelle Texteextraktion** + +Die neue statische Methode getPresentationText wurde zur Klasse Presentation hinzugefügt. Es gibt drei Überladungen für diese Methode: +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + + +## **FAQ** + +**Wie schnell verarbeitet Aspose.Slides große Präsentationen bei der Texteextraktion?** + +Aspose.Slides ist für hohe Leistung optimiert und verarbeitet selbst große Präsentationen effizient, wodurch es sich für Echtzeit‑ oder Massenvorgänge eignet. + +**Kann Aspose.Slides Text aus Tabellen und Diagrammen innerhalb von Präsentationen extrahieren?** + +Ja, Aspose.Slides unterstützt das Extrahieren von Text aus Tabellen, Diagrammen und anderen komplexen Folienelementen vollständig, sodass Sie sämtlichen Textinhalt leicht zugreifen und analysieren können. + +**Benötige ich eine spezielle Aspose.Slides‑Lizenz, um Text aus Präsentationen zu extrahieren?** + +Sie können Text mit der kostenlosen Testversion von Aspose.Slides extrahieren, allerdings hat diese bestimmte Einschränkungen, z. B. die Verarbeitung nur einer begrenzten Anzahl von Folien. Für uneingeschränkten Einsatz und zur Verarbeitung größerer Präsentationen wird der Erwerb einer Volllizenz empfohlen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..56df4651a9 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,162 @@ +--- +title: Autofit-Einstellungen verwalten +type: docs +weight: 30 +url: /de/nodejs-java/manage-autofit-settings/ +keywords: "Textfeld, Autofit, PowerPoint-Präsentation, Java, Aspose.Slides für Node.js via Java" +description: "Legen Sie die Autofit-Einstellungen für Textfelder in PowerPoint in JavaScript fest" +--- + +Standardmäßig verwendet Microsoft PowerPoint, wenn Sie ein Textfeld hinzufügen, die Einstellung **Resize shape to fix text** für das Textfeld – es passt die Größe des Textfelds automatisch an, damit der Text immer hineinpasst. + +![textbox-in-powerpoint](textbox-in-powerpoint.png) + +* Wenn der Text im Textfeld länger oder größer wird, vergrößert PowerPoint das Textfeld automatisch – erhöht die Höhe – um mehr Text aufnehmen zu können. +* Wenn der Text im Textfeld kürzer oder kleiner wird, reduziert PowerPoint das Textfeld automatisch – verringert die Höhe – um überflüssigen Platz zu entfernen. + +In PowerPoint sind dies die 4 wichtigen Parameter oder Optionen, die das Autofit‑Verhalten für ein Textfeld steuern: + +* **Do not Autofit** +* **Shrink text on overflow** +* **Resize shape to fit text** +* **Wrap text in shape.** + +![autofit-options-powerpoint](autofit-options-powerpoint.png) + +Aspose.Slides for Node.js via Java bietet ähnliche Optionen – einige Eigenschaften der Klasse [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) – die es Ihnen ermöglichen, das Autofit‑Verhalten für Textfelder in Präsentationen zu steuern. + +## **Resize Shape to Fit Text** + +Wenn Sie möchten, dass der Text in einem Feld immer in dieses Feld passt, nachdem Änderungen am Text vorgenommen wurden, müssen Sie die Option **Resize shape to fix text** verwenden. Um diese Einstellung festzulegen, rufen Sie die Methode [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) der Klasse [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) mit dem Wert `Shape` auf. + +![alwaysfit-setting-powerpoint](alwaysfit-setting-powerpoint.png) + +Dieser JavaScript‑Code zeigt, wie Sie festlegen, dass ein Text immer in sein Feld in einer PowerPoint‑Präsentation passt: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Wenn der Text länger oder größer wird, wird das Textfeld automatisch vergrößert (Höhe erhöht), sodass der gesamte Text hineinpasst. Wird der Text kürzer, geschieht das Gegenteil. + +## **Do Not Autofit** + +Wenn Sie möchten, dass ein Textfeld oder eine Form ihre Abmessungen beibehält, unabhängig von Änderungen des enthaltenen Textes, müssen Sie die Option **Do not Autofit** verwenden. Um diese Einstellung festzulegen, rufen Sie die Methode [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) der Klasse [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) mit dem Wert `None` auf. + +![donotautofit-setting-powerpoint](donotautofit-setting-powerpoint.png) + +Dieser JavaScript‑Code zeigt, wie Sie festlegen, dass ein Textfeld immer seine Abmessungen in einer PowerPoint‑Präsentation beibehält: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Wird der Text zu lang für sein Feld, fließt er heraus. + +## **Shrink Text on Overflow** + +Wenn ein Text zu lang für sein Feld wird, können Sie mit der Option **Shrink text on overflow** festlegen, dass Größe und Abstand des Textes reduziert werden, um in das Feld zu passen. Um diese Einstellung festzulegen, rufen Sie die Methode [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) der Klasse [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) mit dem Wert `Normal` auf. + +![shrinktextonoverflow-setting-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +Dieser JavaScript‑Code zeigt, wie Sie festlegen, dass ein Text bei Überlauf verkleinert wird in einer PowerPoint‑Präsentation: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} + +Wenn die Option **Shrink text on overflow** verwendet wird, wird die Einstellung nur angewendet, wenn der Text zu lang für sein Feld wird. + +{{% /alert %}} + +## **Wrap Text** + +Wenn Sie möchten, dass der Text in einer Form umbrochen wird, sobald er die Breite der Form überschreitet, verwenden Sie den Parameter **Wrap text in shape**. Um diese Einstellung festzulegen, rufen Sie die Methode [setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setWrapText) der Klasse [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) mit dem Wert `true` auf. + +Dieser JavaScript‑Code zeigt, wie Sie die Einstellung Wrap Text in einer PowerPoint‑Präsentation verwenden: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} + +Rufen Sie die Methode `setWrapText` mit dem Wert `False` für eine Form auf, wird der Text, wenn er länger als die Formbreite wird, über die Formgrenzen hinaus in einer einzigen Zeile erweitert. + +{{% /alert %}} + +## **FAQ** + +**Beeinflussen die internen Ränder des Textfelds das AutoFit?** + +Ja. Padding (interne Ränder) verringert den nutzbaren Textbereich, sodass AutoFit früher greift – die Schrift wird früher verkleinert oder die Form früher angepasst. Prüfen und passen Sie die Ränder an, bevor Sie AutoFit optimieren. + +**Wie interagiert AutoFit mit manuellen und weichen Zeilenumbrüchen?** + +Erzwungene Umbrüche bleiben erhalten, und AutoFit passt die Schriftgröße und den Abstand rund um diese an. Das Entfernen unnötiger Umbrüche reduziert oft, wie stark AutoFit den Text verkleinern muss. + +**Wirkt sich das Ändern der Design‑Schriftart oder das Auslösen einer Schriftart‑Ersetzung auf das AutoFit‑Ergebnis aus?** + +Ja. Das Ersetzen durch eine Schriftart mit anderen Glyph‑Metriken ändert Breite/Höhe des Textes, was die endgültige Schriftgröße und Zeilenumbrüche verändern kann. Nach jeder Schriftart‑Änderung oder -Ersetzung prüfen Sie die Folien erneut. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..e349a4dc9f --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,321 @@ +--- +title: Aufzählungen verwalten +type: docs +weight: 60 +url: /de/nodejs-java/manage-bullet/ +keywords: "Aufzählungszeichen, Aufzählungslisten, Zahlen, nummerierte Listen, Bildaufzählungen, mehrstufige Aufzählungen, PowerPoint-Präsentation, Java, Aspose.Slides für Node.js via Java" +description: "Erstellen Sie Aufzählungs- und nummerierte Listen in PowerPoint-Präsentationen in JavaScript" +--- + +In **Microsoft PowerPoint** können Sie Aufzählungs‑ und nummerierte Listen auf dieselbe Weise erstellen wie in Word und anderen Texteditoren. **Aspose.Slides for Node.js via Java** ermöglicht es Ihnen ebenfalls, Aufzählungszeichen und Nummern in Folien Ihrer Präsentationen zu verwenden. + +## **Warum Aufzählungslisten verwenden?** + +Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und zu präsentieren. + +**Beispiel für Aufzählungsliste** + +In den meisten Fällen erfüllt eine Aufzählungsliste diese drei Hauptfunktionen: + +- lenkt die Aufmerksamkeit Ihrer Leser oder Betrachter auf wichtige Informationen +- ermöglicht es Ihren Lesern oder Betrachtern, Schlüssel­punkte leicht zu überfliegen +- kommuniziert und liefert wichtige Details effizient. + +## **Warum nummerierte Listen verwenden?** + +Nummerierte Listen helfen ebenfalls beim Organisieren und Präsentieren von Informationen. Idealerweise sollten Sie Zahlen (anstelle von Aufzählungszeichen) verwenden, wenn die Reihenfolge der Einträge (zum Beispiel *Schritt 1, Schritt 2*, usw.) wichtig ist oder wenn ein Eintrag referenziert werden muss (zum Beispiel *siehe Schritt 3*). + +**Beispiel für nummerierte Liste** + +Dies ist eine Zusammenfassung der Schritte (Schritt 1 bis Schritt 15) im unten stehenden Verfahren **Bullets erstellen**: + +1. Erstellen Sie eine Instanz der Präsentationsklasse. +2. Führen Sie mehrere Aufgaben aus (Schritt 3 bis Schritt 14). +3. Speichern Sie die Präsentation. + +## **Bullets erstellen** + +Dieses Thema ist ebenfalls Teil der Themenreihe zur Verwaltung von Textabsätzen. Diese Seite zeigt, wie wir Absatz‑Aufzählungszeichen verwalten können. Aufzählungszeichen sind besonders nützlich, wenn etwas in Schritten beschrieben werden soll. Außerdem wirkt der Text durch die Verwendung von Aufzählungszeichen gut strukturiert. Aufgezählte Absätze sind immer leichter zu lesen und zu verstehen. Wir werden sehen, wie Entwickler diese kleine, aber leistungsstarke Funktion von Aspose.Slides for Node.js via Java nutzen können. Bitte folgen Sie den nachstehenden Schritten, um die Absatz‑Aufzählungszeichen mit Aspose.Slides for Node.js via Java zu verwalten: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Greifen Sie mit dem Objekt [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) auf die gewünschte Folie in der Folienkollektion zu. +1. Fügen Sie in der ausgewählten Folie ein [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) hinzu. +1. Greifen Sie auf den [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) der hinzugefügten Form zu. +1. Entfernen Sie den Standardsatz im TextFrame. +1. Erstellen Sie die erste Absatzinstanz mit der Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph). +1. Legen Sie den Aufzählungstyp des Absatzes fest. +1. Setzen Sie den Aufzählungstyp auf [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) und definieren Sie das Aufzählungszeichen. +1. Legen Sie den Absatztext fest. +1. Stellen Sie den Absatz‑Einzug ein, um das Aufzählungszeichen zu setzen. +1. Setzen Sie die Farbe des Aufzählungszeichens. +1. Stellen Sie die Höhe der Aufzählungszeichen ein. +1. Fügen Sie den erstellten Absatz in die Absatz‑Kollektion des TextFrames ein. +1. Fügen Sie den zweiten Absatz hinzu und wiederholen Sie den Vorgang aus den Schritten **7 bis 13**. +1. Speichern Sie die Präsentation. + +Dieser Beispielcode in Java – eine Umsetzung der obigen Schritte – zeigt, wie Sie eine Aufzählungsliste in einer Folie erstellen: +```javascript +// Instanziieren einer Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Hinzufügen und Zugriff auf ein Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Zugriff auf den Textrahmen des erstellten Autoshapes + var txtFrm = aShp.getTextFrame(); + // Entfernen des standardmäßigen vorhandenen Absatzes + txtFrm.getParagraphs().removeAt(0); + // Erstellen eines Absatzes + var para = new aspose.slides.Paragraph(); + // Festlegen des Aufzählungsstils und -symbols für den Absatz + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Festlegen des Absatztexts + para.setText("Welcome to Aspose.Slides"); + // Festlegen des Aufzählungseinzugs + para.getParagraphFormat().setIndent(25); + // Festlegen der Aufzählungsfarbe + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // IsBulletHardColor auf true setzen, um eine eigene Aufzählungsfarbe zu verwenden + para.getParagraphFormat().getBullet().isBulletHardColor(); + // Festlegen der Aufzählungshöhe + para.getParagraphFormat().getBullet().setHeight(100); + // Hinzufügen des Absatzes zum Textrahmen + txtFrm.getParagraphs().add(para); + // Speichern der Präsentation als PPTX-Datei + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +## **Bild‑Aufzählungszeichen erstellen** + +Aspose.Slides for Node.js via Java ermöglicht es Ihnen, die Aufzählungszeichen in Aufzählungslisten zu ändern. Sie können die Aufzählungszeichen durch benutzerdefinierte Symbole oder Bilder ersetzen. Wenn Sie einer Liste visuelles Interesse verleihen oder die Aufmerksamkeit noch stärker auf Einträge einer Liste lenken möchten, können Sie Ihr eigenes Bild als Aufzählungszeichen verwenden. + +{{% alert color="primary" %}} + +Idealerweise, wenn Sie das reguläre Aufzählungszeichen durch ein Bild ersetzen möchten, sollten Sie ein einfaches Grafikbild mit transparentem Hintergrund auswählen. Solche Bilder eignen sich am besten als benutzerdefinierte Aufzählungszeichen. + +In jedem Fall wird das von Ihnen gewählte Bild auf eine sehr kleine Größe reduziert, daher empfehlen wir dringend, ein Bild auszuwählen, das in einer Liste gut aussieht (als Ersatz für das Aufzählungszeichen). + +{{% /alert %}} + +Um ein Bild‑Aufzählungszeichen zu erstellen, gehen Sie wie folgt vor: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Greifen Sie mit dem Objekt [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) auf die gewünschte Folie in der Folienkollektion zu. +1. Fügen Sie in der ausgewählten Folie ein autoshape hinzu. +1. Greifen Sie auf den [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) der hinzugefügten Form zu. +1. Entfernen Sie den Standardsatz im [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Erstellen Sie die erste Absatzinstanz mit der Paragraph‑Klasse. +1. Laden Sie ein Bild von der Festplatte in [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage). +1. Setzen Sie den Aufzählungstyp auf Picture und legen Sie das Bild fest. +1. Legen Sie den Absatztext fest. +1. Stellen Sie den Absatz‑Einzug ein, um das Aufzählungszeichen zu setzen. +1. Setzen Sie die Farbe des Aufzählungszeichens. +1. Stellen Sie die Höhe der Aufzählungszeichen ein. +1. Fügen Sie den erstellten Absatz in die Absatz‑Kollektion des [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) ein. +1. Fügen Sie den zweiten Absatz hinzu und wiederholen Sie den Vorgang aus den vorherigen Schritten. +1. Speichern Sie die Präsentation. + +Dieser JavaScript‑Code zeigt, wie Sie ein Bild‑Aufzählungszeichen in einer Folie erstellen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Bild für Aufzählungszeichen erstellen + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Hinzufügen und Zugriff auf ein Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Zugriff auf den Textrahmen des erstellten Autoshapes + var txtFrm = aShp.getTextFrame(); + // Entfernen des standardmäßigen vorhandenen Absatzes + txtFrm.getParagraphs().removeAt(0); + // Neuen Absatz erstellen + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // Festlegen des Absatz-Aufzählungsstils und Bildes + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Festlegen der Aufzählungshöhe + para.getParagraphFormat().getBullet().setHeight(100); + // Absatz zum Textrahmen hinzufügen + txtFrm.getParagraphs().add(para); + // Präsentation als PPTX-Datei schreiben + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Mehrstufige Aufzählungszeichen erstellen** + +Um eine Aufzählungsliste zu erstellen, die Elemente auf verschiedenen Ebenen enthält – zusätzliche Listen unter der Haupt‑Aufzählungsliste – gehen Sie wie folgt vor: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Greifen Sie mit dem Objekt [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) auf die gewünschte Folie in der Folienkollektion zu. +1. Fügen Sie in der ausgewählten Folie ein autoshape hinzu. +1. Greifen Sie auf den [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) der hinzugefügten Form zu. +1. Entfernen Sie den Standardsatz im [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Erstellen Sie die erste Absatzinstanz mit der Paragraph‑Klasse und setzen Sie die Tiefe auf 0. +1. Erstellen Sie die zweite Absatzinstanz mit der Paragraph‑Klasse und setzen Sie die Tiefe auf 1. +1. Erstellen Sie die dritte Absatzinstanz mit der Paragraph‑Klasse und setzen Sie die Tiefe auf 2. +1. Erstellen Sie die vierte Absatzinstanz mit der Paragraph‑Klasse und setzen Sie die Tiefe auf 3. +1. Fügen Sie die erstellten Absätze in die Absatz‑Kollektion des [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) ein. +1. Speichern Sie die Präsentation. + +Dieser Code, der die obigen Schritte umsetzt, zeigt, wie Sie eine mehrstufige Aufzählungsliste in JavaScript erstellen: +```javascript +// Instanziieren einer Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Hinzufügen und Zugriff auf ein Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Zugriff auf den Textrahmen des erstellten Autoshapes + var txtFrm = aShp.addTextFrame(""); + // Entfernen des standardmäßigen vorhandenen Absatzes + txtFrm.getParagraphs().clear(); + // Erstellen des ersten Absatzes + var para1 = new aspose.slides.Paragraph(); + // Festlegen des Absatz-Aufzählungsstils und Symbols + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Festlegen der Aufzählungsebene + para1.getParagraphFormat().setDepth(0); + // Erstellen des zweiten Absatzes + var para2 = new aspose.slides.Paragraph(); + // Festlegen des Absatz-Aufzählungsstils und Symbols + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Festlegen der Aufzählungsebene + para2.getParagraphFormat().setDepth(1); + // Erstellen des dritten Absatzes + var para3 = new aspose.slides.Paragraph(); + // Festlegen des Absatz-Aufzählungsstils und Symbols + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Festlegen der Aufzählungsebene + para3.getParagraphFormat().setDepth(2); + // Erstellen des vierten Absatzes + var para4 = new aspose.slides.Paragraph(); + // Festlegen des Absatz-Aufzählungsstils und Symbols + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Festlegen der Aufzählungsebene + para4.getParagraphFormat().setDepth(3); + // Hinzufügen des Absatzes zum Textrahmen + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // Speichern der Präsentation als PPTX-Datei + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Benutzerdefinierte nummerierte Liste erstellen** + +Aspose.Slides for Node.js via Java bietet eine einfache API, um Absätze mit benutzerdefinierter Zahlenformatierung zu verwalten. Um einer Absatzliste eine benutzerdefinierte Nummerierung hinzuzufügen, folgen Sie bitte den nachstehenden Schritten: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Greifen Sie mit dem Objekt [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) auf die gewünschte Folie in der Folienkollektion zu. +1. Fügen Sie in der ausgewählten Folie ein autoshape hinzu. +1. Greifen Sie auf den [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) der hinzugefügten Form zu. +1. Entfernen Sie den Standardsatz im [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Erstellen Sie die erste Absatzinstanz mit der Paragraph‑Klasse und setzen Sie **NumberedBulletStartWith** auf 2. +1. Erstellen Sie die zweite Absatzinstanz mit der Paragraph‑Klasse und setzen Sie **NumberedBulletStartWith** auf 3. +1. Erstellen Sie die dritte Absatzinstanz mit der Paragraph‑Klasse und setzen Sie **NumberedBulletStartWith** auf 7. +1. Fügen Sie die erstellten Absätze in die Absatz‑Kollektion des [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) ein. +1. Speichern Sie die Präsentation. + +Dieser JavaScript‑Code zeigt, wie Sie eine nummerierte Liste in einer Folie erstellen: +```javascript +// Instanziieren einer Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Hinzufügen und Zugriff auf ein Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Zugriff auf den Textrahmen des erstellten Autoshapes + var txtFrm = aShp.addTextFrame(""); + // Entfernen des standardmäßigen vorhandenen Absatzes + txtFrm.getParagraphs().clear(); + // Erste Liste + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // Zweite Liste + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Können mit Aspose.Slides erstellte Aufzählungs‑ und Nummerierungslisten in andere Formate wie PDF oder Bilder exportiert werden?** + +Ja, Aspose.Slides bewahrt die Formatierung und Struktur von Aufzählungs‑ und Nummerierungslisten vollständig, wenn Präsentationen in Formate wie PDF, Bilder und andere exportiert werden, und sorgt dabei für konsistente Ergebnisse. + +**Ist es möglich, Aufzählungs‑ oder Nummerierungslisten aus vorhandenen Präsentationen zu importieren?** + +Ja, Aspose.Slides ermöglicht es, Aufzählungs‑ oder Nummerierungslisten aus bestehenden Präsentationen zu importieren und zu bearbeiten, wobei deren ursprüngliche Formatierung und Darstellung erhalten bleiben. + +**Unterstützt Aspose.Slides Aufzählungs‑ und Nummerierungslisten in Präsentationen, die in mehreren Sprachen erstellt wurden?** + +Ja, Aspose.Slides unterstützt mehrsprachige Präsentationen vollumfänglich und ermöglicht das Erstellen von Aufzählungs‑ und Nummerierungslisten in jeder Sprache, einschließlich der Verwendung spezieller oder nicht‑lateinischer Zeichen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..c9a8cee68c --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,700 @@ +--- +title: PowerPoint-Absätze in JavaScript verwalten +type: docs +weight: 40 +url: /de/nodejs-java/manage-paragraph/ +keywords: +- Text hinzufügen +- Absätze hinzufügen +- Text verwalten +- Absätze verwalten +- Absatzeinzug +- Absatz-Aufzählungszeichen +- Nummerierte Liste +- Absatzeigenschaften +- HTML importieren +- Text zu HTML +- Absatz zu HTML +- Absätze zu Bildern +- Absätze exportieren +- PowerPoint-Präsentation +- JavaScript +- Aspose.Slides für Node.js über Java +description: "Erstellen Sie Absätze und verwalten Sie Absatzeigenschaften in PowerPoint-Präsentationen in JavaScript" +--- + +Aspose.Slides stellt alle Klassen bereit, die Sie benötigen, um in Java mit PowerPoint-Texten, Absätzen und Portionen zu arbeiten. + +* Aspose.Slides stellt die Klasse [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) bereit, mit der Sie Objekte hinzufügen können, die einen Absatz darstellen. Ein `ITextFame`‑Objekt kann einen oder mehrere Absätze enthalten (jeder Absatz wird durch einen Zeilenumbruch erstellt). +* Aspose.Slides stellt die Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) bereit, mit der Sie Objekte hinzufügen können, die Portionen darstellen. Ein `IParagraph`‑Objekt kann einen oder mehrere Portionen (Sammlung von iPortions‑Objekten) enthalten. +* Aspose.Slides stellt die Klasse [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) bereit, mit der Sie Objekte hinzufügen können, die Texte und deren Formatierungseigenschaften darstellen. + +Ein `IParagraph`‑Objekt kann Texte mit unterschiedlichen Formatierungseigenschaften über seine zugrunde liegenden `IPortion`‑Objekte verarbeiten. + +## **Mehrere Absätze mit mehreren Portionen hinzufügen** + +Diese Schritte zeigen, wie Sie einen Textrahmen mit 3 Absätzen hinzufügen, wobei jeder Absatz 3 Portionen enthält: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +3. Fügen Sie der Folie ein Rechteck‑[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +4. Rufen Sie das mit dem [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) verbundene `ITextFrame` ab. +5. Erstellen Sie zwei [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/)-Objekte und fügen Sie sie der `IParagraphs`‑Sammlung des [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) hinzu. +6. Erstellen Sie für jedes neue `IParagraph` drei [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/)-Objekte (zwei Portion‑Objekte für einen Standard‑Paragraph) und fügen Sie jedes `IPortion`‑Objekt der IPortion‑Sammlung jedes `IParagraph` hinzu. +7. Setzen Sie für jede Portion einen Text. +8. Wenden Sie Ihre bevorzugten Formatierungsoptionen auf jede Portion an, indem Sie die vom `IPortion`‑Objekt bereitgestellten Formatierungseigenschaften nutzen. +9. Speichern Sie die geänderte Präsentation. + +```javascript +// Instanziieren einer Presentation‑Klasse, die eine PPTX‑Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // AutoShape vom Typ Rechteck hinzufügen + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // TextFrame des AutoShape abrufen + var tf = ashp.getTextFrame(); + // Absätze und Portionen mit verschiedenen Textformaten erstellen + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // PPTX auf Festplatte schreiben + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Absatzaufzählungen verwalten** + +Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und zu präsentieren. Aufgezählte Absätze sind stets leichter zu lesen und zu verstehen. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +3. Fügen Sie der ausgewählten Folie ein [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) des Autoshape zu. +5. Entfernen Sie den Standardabsatz im `TextFrame`. +6. Erstellen Sie die erste Absatz‑Instanz mit der Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Setzen Sie den Aufzählungs‑`Type` für den Absatz auf `Symbol` und legen Sie das Aufzählungszeichen fest. +8. Setzen Sie den Absatz‑`Text`. +9. Setzen Sie den Absatz‑`Indent` für die Aufzählung. +10. Legen Sie eine Farbe für die Aufzählung fest. +11. Legen Sie eine Höhe für die Aufzählung fest. +12. Fügen Sie den neuen Absatz der Absatz‑Sammlung des `TextFrame` hinzu. +13. Fügen Sie den zweiten Absatz hinzu und wiederholen Sie den Vorgang aus den Schritten 7 bis 13. +14. Speichern Sie die Präsentation. + +```javascript +// Instanziert eine Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Greift auf die erste Folie zu + var slide = pres.getSlides().get_Item(0); + // Fügt eine AutoShape hinzu und greift darauf zu + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Greift auf den Textrahmen der AutoShape zu + var txtFrm = aShp.getTextFrame(); + // Entfernt den Standardabsatz + txtFrm.getParagraphs().removeAt(0); + // Erstellt einen Absatz + var para = new aspose.slides.Paragraph(); + // Legt den Aufzählungsstil und das Symbol für den Absatz fest + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Setzt den Text des Absatzes + para.setText("Welcome to Aspose.Slides"); + // Legt den Einzug des Aufzählungszeichens fest + para.getParagraphFormat().setIndent(25); + // Legt die Farbe des Aufzählungszeichens fest + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True); // IsBulletHardColor auf true setzen, um eine eigene Aufzählungsfarbe zu verwenden + // Legt die Höhe des Aufzählungszeichens fest + para.getParagraphFormat().getBullet().setHeight(100); + // Fügt den Absatz dem Textrahmen hinzu + txtFrm.getParagraphs().add(para); + // Erstellt einen zweiten Absatz + var para2 = new aspose.slides.Paragraph(); + // Legt den Aufzählungstyp und -stil des Absatzes fest + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // Fügt den Absatztext hinzu + para2.setText("This is numbered bullet"); + // Legt den Einzug des Aufzählungszeichens fest + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True); // IsBulletHardColor auf true setzen, um eine eigene Aufzählungsfarbe zu verwenden + // Legt die Höhe des Aufzählungszeichens fest + para2.getParagraphFormat().getBullet().setHeight(100); + // Fügt den Absatz dem Textrahmen hinzu + txtFrm.getParagraphs().add(para2); + // Speichert die geänderte Präsentation + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + + +## **Bildaufzählungen verwalten** + +Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und zu präsentieren. Bildabsätze sind leicht zu lesen und zu verstehen. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +3. Fügen Sie der Folie ein [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) des Autoshape zu. +5. Entfernen Sie den Standardabsatz im `TextFrame`. +6. Erstellen Sie die erste Absatz‑Instanz mit der Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Laden Sie das Bild in [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/). +8. Setzen Sie den Aufzählungstyp auf [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) und legen Sie das Bild fest. +9. Setzen Sie den Absatz‑`Text`. +10. Setzen Sie den Absatz‑`Indent` für die Aufzählung. +11. Legen Sie eine Farbe für die Aufzählung fest. +12. Legen Sie eine Höhe für die Aufzählung fest. +13. Fügen Sie den neuen Absatz der Absatz‑Sammlung des `TextFrame` hinzu. +14. Fügen Sie den zweiten Absatz hinzu und wiederholen Sie den Vorgang basierend auf den vorherigen Schritten. +15. Speichern Sie die geänderte Präsentation. + +```javascript +// Instanziert eine Presentation-Klasse, die eine PPTX-Datei darstellt +var presentation = new aspose.slides.Presentation(); +try { + // Greift auf die erste Folie zu + var slide = presentation.getSlides().get_Item(0); + // Instanziert das Bild für Aufzählungszeichen + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Fügt eine AutoShape hinzu und greift darauf zu + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Greift auf das TextFrame der AutoShape zu + var textFrame = autoShape.getTextFrame(); + // Entfernt den Standard‑Absatz + textFrame.getParagraphs().removeAt(0); + // Erstellt einen neuen Absatz + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // Legt den Aufzählungsstil und das Bild des Absatzes fest + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Legt die Höhe des Aufzählungszeichens fest + paragraph.getParagraphFormat().getBullet().setHeight(100); + // Fügt den Absatz dem TextFrame hinzu + textFrame.getParagraphs().add(paragraph); + // Schreibt die Präsentation als PPTX‑Datei + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // Schreibt die Präsentation als PPT‑Datei + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Mehrstufige Aufzählungen verwalten** + +Aufzählungslisten helfen Ihnen, Informationen schnell und effizient zu organisieren und zu präsentieren. Mehrstufige Aufzählungen sind leicht zu lesen und zu verstehen. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +3. Fügen Sie in der neuen Folie ein [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) des Autoshape zu. +5. Entfernen Sie den Standardabsatz im `TextFrame`. +6. Erstellen Sie die erste Absatz‑Instanz über die Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) und setzen Sie die Tiefe auf 0. +7. Erstellen Sie die zweite Absatz‑Instanz über die Klasse `Paragraph` und setzen Sie die Tiefe auf 1. +8. Erstellen Sie die dritte Absatz‑Instanz über die Klasse `Paragraph` und setzen Sie die Tiefe auf 2. +9. Erstellen Sie die vierte Absatz‑Instanz über die Klasse `Paragraph` und setzen Sie die Tiefe auf 3. +10. Fügen Sie die neuen Absätze der Absatz‑Sammlung des `TextFrame` hinzu. +11. Speichern Sie die geänderte Präsentation. + +```javascript +// Instanziert eine Presentation-Klasse, die eine PPTX-Datei darstellt +var pres = new aspose.slides.Presentation(); +try { + // Greift auf die erste Folie zu + var slide = pres.getSlides().get_Item(0); + // Fügt eine AutoShape hinzu und greift darauf zu + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Greift auf den Textrahmen der erstellten AutoShape zu + var text = aShp.addTextFrame(""); + // Entfernt den Standardabsatz + text.getParagraphs().clear(); + // Fügt den ersten Absatz hinzu + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Legt die Aufzählungsebene fest + para1.getParagraphFormat().setDepth(0); + // Fügt den zweiten Absatz hinzu + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Legt die Aufzählungsebene fest + para2.getParagraphFormat().setDepth(1); + // Fügt den dritten Absatz hinzu + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Legt die Aufzählungsebene fest + para3.getParagraphFormat().setDepth(2); + // Fügt den vierten Absatz hinzu + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Legt die Aufzählungsebene fest + para4.getParagraphFormat().setDepth(3); + // Fügt Absätze zur Sammlung hinzu + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // Schreibt die Präsentation als PPTX-Datei + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Absatz mit benutzerdefinierter nummerierter Liste verwalten** + +Die Klasse [BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) stellt die Eigenschaft [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) und weitere bereit, mit denen Sie Absätze mit benutzerdefinierter Nummerierung oder Formatierung verwalten können. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Greifen Sie auf die Folie zu, die den Absatz enthält. +3. Fügen Sie der Folie ein [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) des Autoshape zu. +5. Entfernen Sie den Standardabsatz im `TextFrame`. +6. Erstellen Sie die erste Absatz‑Instanz über die Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) und setzen Sie [NumberedBulletStartWith] auf 2. +7. Erstellen Sie die zweite Absatz‑Instanz über die Klasse `Paragraph` und setzen Sie `NumberedBulletStartWith` auf 3. +8. Erstellen Sie die dritte Absatz‑Instanz über die Klasse `Paragraph` und setzen Sie `NumberedBulletStartWith` auf 7. +9. Fügen Sie die neuen Absätze der Absatz‑Sammlung des `TextFrame` hinzu. +10. Speichern Sie die geänderte Präsentation. + +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Greift auf den Textrahmen der erstellten AutoShape zu + var textFrame = shape.getTextFrame(); + // Entfernt den standardmäßig vorhandenen Absatz + textFrame.getParagraphs().removeAt(0); + // Erste Liste + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Absatzeinzug festlegen** + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +1. Fügen Sie der Folie ein Rechteck‑[autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +1. Fügen Sie dem Rechteck‑autoshape ein [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) mit drei Absätzen hinzu. +1. Blenden Sie die Rechtecklinien aus. +1. Setzen Sie den Einzug für jeden [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) über dessen BulletOffset‑Eigenschaft. +1. Schreiben Sie die geänderte Präsentation als PPT‑Datei. + +```javascript +// Instanziert die Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Greift auf die erste Folie zu + var sld = pres.getSlides().get_Item(0); + // Fügt ein Rechteck-Shape hinzu + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // Fügt dem Rechteck ein TextFrame hinzu + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // Setzt den Text, damit er in die Form passt + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Versteckt die Linien des Rechtecks + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // Holt den ersten Absatz im TextFrame und setzt dessen Einzug + var para1 = tf.getParagraphs().get_Item(0); + // Setzt den Aufzählungsstil und das Symbol des Absatzes + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // Holt den zweiten Absatz im TextFrame und setzt dessen Einzug + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // Holt den dritten Absatz im TextFrame und setzt dessen Einzug + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // Speichert die Präsentation auf die Festplatte + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Hängenden Einzug für Absatz festlegen** + +Dieser Javascript‑Code zeigt, wie Sie den hängenden Einzug für einen Absatz festlegen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **End‑Paragraph‑Run‑Eigenschaften für Absatz verwalten** + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Rufen Sie die Referenz der Folie, die den Absatz enthält, über deren Position ab. +1. Fügen Sie der Folie ein Rechteck‑[autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +1. Fügen Sie dem Rechteck ein [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) mit zwei Absätzen hinzu. +1. Setzen Sie `FontHeight` und die Schriftart für die Absätze. +1. Setzen Sie die End‑Eigenschaften für die Absätze. +1. Schreiben Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **HTML‑Text in Absätze importieren** + +Aspose.Slides bietet erweiterte Unterstützung für das Importieren von HTML‑Text in Absätze. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +3. Fügen Sie der Folie ein [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) hinzu. +4. Fügen Sie dem `autoshape` ein [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) hinzu und greifen Sie darauf zu. +5. Entfernen Sie den Standardabsatz im `ITextFrame`. +6. Lesen Sie die Quell‑HTML‑Datei mit einem TextReader. +7. Erstellen Sie die erste Absatz‑Instanz über die Klasse [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +8. Fügen Sie den im gelesenen TextReader enthaltenen HTML‑Dateiinhalt zur [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/) des TextFrame hinzu. +9. Speichern Sie die geänderte Präsentation. + +```javascript +// Erstelle leere Präsentationsinstanz +var pres = new aspose.slides.Presentation(); +try { + // Greift auf die standardmäßige erste Folie der Präsentation zu + var slide = pres.getSlides().get_Item(0); + // Fügt die AutoShape hinzu, um den HTML-Inhalt aufzunehmen + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Fügt dem Shape einen TextFrame hinzu + ashape.addTextFrame(""); + // Löscht alle Absätze im hinzugefügten TextFrame + ashape.getTextFrame().getParagraphs().clear(); + // Lädt die HTML-Datei mit einem StreamReader + var tr = java.newInstanceSync("StreamReader", "file.html"); + // Fügt Text aus dem HTML-StreamReader zum TextFrame hinzu + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // Speichert die Präsentation + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Absatztexte nach HTML exportieren** + +Aspose.Slides bietet erweiterte Unterstützung für das Exportieren von Texten (in Absätzen enthalten) nach HTML. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) und laden Sie die gewünschte Präsentation. +2. Greifen Sie über den Index auf die Referenz der entsprechenden Folie zu. +3. Greifen Sie auf die Form zu, die den zu exportierenden Text enthält. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) der Form zu. +5. Erstellen Sie eine Instanz von `StreamWriter` und fügen Sie die neue HTML‑Datei hinzu. +6. Geben Sie einen Startindex an den StreamWriter weiter und exportieren Sie die gewünschten Absätze. + +```javascript +// Lade die Präsentationsdatei +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // Greift auf die standardmäßige erste Folie der Präsentation zu + var slide = pres.getSlides().get_Item(0); + // Gewünschter Index + var index = 0; + // Zugriff auf die hinzugefügte Form + var ashape = slide.getShapes().get_Item(index); + // Erstelle die Ausgabedatei HTML + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // Extrahiere ersten Absatz als HTML + // Schreibe Absatzdaten nach HTML, indem der Startindex des Absatzes und die Gesamtzahl der zu kopierenden Absätze angegeben werden + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Einen Absatz als Bild speichern** + +In diesem Abschnitt untersuchen wir zwei Beispiele, die zeigen, wie ein Textabsatz, dargestellt durch die Schnittstelle [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/), als Bild gespeichert werden kann. Beide Beispiele umfassen das Abrufen des Bildes einer Form, die den Absatz enthält, mithilfe der `getImage`‑Methoden der Schnittstelle [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/), die Berechnung der Begrenzungsrechtecke des Absatzes innerhalb der Form und das Exportieren als Bitmap‑Bild. Diese Ansätze ermöglichen das Extrahieren spezifischer Textteile aus PowerPoint‑Präsentationen und das Speichern als separate Bilder, was in verschiedenen Szenarien nützlich sein kann. + +![Das Textfeld mit drei Absätzen](paragraph_to_image_input.png) + +**Beispiel 1** + +In diesem Beispiel erhalten wir den zweiten Absatz als Bild. Dazu extrahieren wir das Bild der Form aus der ersten Folie der Präsentation und berechnen anschließend die Begrenzungsrechtecke des zweiten Absatzes im Textrahmen der Form. Der Absatz wird dann auf ein neues Bitmap‑Bild gezeichnet, das im PNG‑Format gespeichert wird. Diese Methode ist besonders nützlich, wenn Sie einen bestimmten Absatz als separates Bild speichern möchten, wobei die genauen Abmessungen und die Formatierung des Textes erhalten bleiben. + +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Speichere die Form im Speicher als Bitmap. + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // Erstelle eine Shape-Bitmap aus dem Speicher. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Berechne die Grenzen des zweiten Absatzes. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // Berechne die Koordinaten und Größe für das Ausgabebild (Mindestgröße – 1x1 Pixel). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Beschneide die Shape-Bitmap, um ausschließlich die Absatz-Bitmap zu erhalten. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +![Das Absatzbild](paragraph_to_image_output.png) + +**Beispiel 2** + +In diesem Beispiel erweitern wir den vorherigen Ansatz, indem wir dem Absatzbild Skalierungsfaktoren hinzufügen. Die Form wird aus der Präsentation extrahiert und mit einem Skalierungsfaktor von `2` als Bild gespeichert. Dadurch wird beim Export des Absatzes eine höhere Auflösung erzielt. Die Begrenzungsrechtecke des Absatzes werden anschließend unter Berücksichtigung des Skalierungsfaktors berechnet. Skalierung kann besonders nützlich sein, wenn ein detaillierteres Bild benötigt wird, beispielsweise für die Verwendung in hochwertigen Druckmaterialien. + +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Speichere die Form im Speicher als Bitmap mit Skalierung. + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // Erstelle ein Shape-Bitmap aus dem Speicher. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Berechne die Grenzen des zweiten Absatzes. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // Berechne die Koordinaten und Größe für das Ausgabebild (Mindestgröße - 1x1 Pixel). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Beschneide das Shape-Bitmap, um nur die Absatz-Bitmap zu erhalten. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich das Zeilenumbruch‑Verhalten in einem Textrahmen vollständig deaktivieren?** + +Ja. Verwenden Sie die Umbruch‑Einstellung des Textrahmens ([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/)), um den Umbruch auszuschalten, sodass Zeilen nicht an den Rändern des Rahmens umgebrochen werden. + +**Wie kann ich die genauen Positionen eines bestimmten Absatzes auf der Folie erhalten?** + +Sie können das Begrenzungsrechteck des Absatzes (und sogar eines einzelnen Abschnitts) abrufen, um seine genaue Position und Größe auf der Folie zu kennen. + +**Wo wird die Absatzausrichtung (links/rechts/zentriert/Blocksatz) gesteuert?** + +[setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/) ist eine Methode für eine Absatz‑Einstellung in [ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/); sie wird auf den gesamten Absatz angewendet, unabhängig von der Formatierung einzelner Portionen. + +**Kann ich eine Rechtschreibprüfungssprache nur für einen Teil eines Absatzes festlegen (z. B. für ein Wort)?** + +Ja. Die Sprache wird auf Portionsebene festgelegt ([PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)), sodass mehrere Sprachen innerhalb eines einzelnen Absatzes koexistieren können. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..985812de89 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,116 @@ +--- +title: Platzhalter verwalten +type: docs +weight: 10 +url: /de/nodejs-java/manage-placeholder/ +description: Text in einem Platzhalter in PowerPoint-Folien mit JavaScript ändern. Eingabeaufforderungstext in einem Platzhalter in PowerPoint-Folien mit JavaScript festlegen. +--- + +## **Text im Platzhalter ändern** + +Mit [Aspose.Slides for Node.js via Java](/slides/de/nodejs-java/) können Sie Platzhalter auf Folien in Präsentationen finden und ändern. Aspose.Slides ermöglicht es Ihnen, den Text in einem Platzhalter zu ändern. + +**Voraussetzung**: Sie benötigen eine Präsentation, die einen Platzhalter enthält. Eine solche Präsentation können Sie in der üblichen Microsoft PowerPoint‑Anwendung erstellen. + +So verwenden Sie Aspose.Slides, um den Text in dem Platzhalter dieser Präsentation zu ersetzen: + +1. Instanziieren Sie die [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)-Klasse und übergeben Sie die Präsentation als Argument. +2. Holen Sie eine Folienreferenz über deren Index. +3. Iterieren Sie über die Formen, um den Platzhalter zu finden. +4. Casten Sie die Platzhalterform zu einer [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) und ändern Sie den Text mithilfe des [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), das mit der [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) verbunden ist. +5. Speichern Sie die geänderte Präsentation. + +Dieser JavaScript‑Code zeigt, wie Sie den Text in einem Platzhalter ändern: +```javascript +// Instanziiert eine Presentation-Klasse +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // Greift auf die erste Folie zu + var sld = pres.getSlides().get_Item(0); + // Durchläuft die Formen, um den Platzhalter zu finden + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // Ändert den Text in jedem Platzhalter + shp.getTextFrame().setText("This is Placeholder"); + } + } + // Speichert die Präsentation auf dem Datenträger + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Eingabeaufforderungstext im Platzhalter festlegen** + +Standard‑ und vordefinierte Layouts enthalten Platzhalter‑Eingabeaufforderungstexte wie ***Klicken, um einen Titel hinzuzufügen*** oder ***Klicken, um einen Untertitel hinzuzufügen***. Mit Aspose.Slides können Sie Ihre bevorzugten Eingabeaufforderungstexte in Platzhalter‑Layouts einfügen. + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie den Eingabeaufforderungstext in einem Platzhalter festlegen: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // Durchläuft die Folie + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // PowerPoint zeigt "Click to add title" + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // Fügt Untertitel hinzu + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Transparenz des Platzhalter‑Bildes festlegen** + +Aspose.Slides ermöglicht es Ihnen, die Transparenz des Hintergrundbildes in einem Text‑Platzhalter festzulegen. Durch Anpassen der Transparenz des Bildes in einem solchen Rahmen können Sie den Text oder das Bild hervorheben (abhängig von den Farben von Text und Bild). + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie die Transparenz für einen Bild‑Hintergrund (innerhalb einer Form) festlegen: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **FAQ** + +**Was ist ein Basis‑Platzhalter und wie unterscheidet er sich von einer lokalen Form auf einer Folie?** + +Ein Basis‑Platzhalter ist die ursprüngliche Form in einem Layout oder Master, von der die Folienform erbt – Typ, Position und einige Formatierungen stammen daraus. Eine lokale Form ist unabhängig; gibt es keinen Basis‑Platzhalter, findet keine Vererbung statt. + +**Wie kann ich alle Titel oder Beschriftungen in einer Präsentation aktualisieren, ohne jede Folie zu durchlaufen?** + +Bearbeiten Sie den entsprechenden Platzhalter im Layout oder im Master. Folien, die auf diesen Layouts bzw. diesem Master basieren, erben die Änderung automatisch. + +**Wie kann ich die Standard‑Kopf‑/Fußzeilen‑Platzhalter – Datum & Uhrzeit, Foliennummer und Fußzeilentext – steuern?** + +Verwenden Sie die HeaderFooter‑Manager im jeweiligen Geltungsbereich (normale Folien, Layouts, Master, Notizen/Handouts), um diese Platzhalter ein- oder auszuschalten und deren Inhalt festzulegen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..18884d07b4 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,294 @@ +--- +title: Textfeld verwalten +type: docs +weight: 20 +url: /de/nodejs-java/manage-textbox/ +keywords: +- Textfeld +- Textrahmen +- Text hinzufügen +- Text aktualisieren +- Textfeld mit Hyperlink +- PowerPoint +- Präsentation +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "Verwalten Sie ein Textfeld oder einen Textrahmen in PowerPoint-Präsentationen mit JavaScript" +--- + +Texte auf Folien befinden sich typischerweise in Textfeldern oder Formen. Daher müssen Sie, um Text zu einer Folie hinzuzufügen, ein Textfeld einfügen und dann Text in das Textfeld eintragen. Aspose.Slides for Node.js via Java bietet die [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)-Klasse, mit der Sie eine Form mit Text hinzufügen können. + +{{% alert title="Info" color="info" %}} +Aspose.Slides stellt außerdem die [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape)-Klasse bereit, mit der Sie Formen zu Folien hinzufügen können. Nicht alle über die `Shape`‑Klasse hinzugefügten Formen können jedoch Text enthalten. Formen, die über die [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)-Klasse hinzugefügt wurden, können Text enthalten. +{{% /alert %}} + +{{% alert title="Hinweis" color="warning" %}} +Daher sollten Sie, wenn Sie einer Form Text hinzufügen möchten, prüfen und bestätigen, dass sie über die `AutoShape`‑Klasse erstellt wurde. Nur dann können Sie mit [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) arbeiten, das eine Eigenschaft von `AutoShape` ist. Siehe den Abschnitt [Update Text](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text) auf dieser Seite. +{{% /alert %}} + +## **Textfeld auf Folie erstellen** + +Um ein Textfeld auf einer Folie zu erstellen, gehen Sie wie folgt vor: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)-Klasse. +2. Holen Sie sich eine Referenz auf die erste Folie der neu erstellten Präsentation. +3. Fügen Sie ein [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)-Objekt mit `ShapeType` = `Rectangle` an einer angegebenen Position auf der Folie hinzu und erhalten Sie die Referenz auf das neu hinzugefügte `AutoShape`‑Objekt. +4. Fügen Sie dem `AutoShape`‑Objekt eine `TextFrame`‑Eigenschaft hinzu, die Text enthält. Im folgenden Beispiel haben wir den Text *Aspose TextBox* eingefügt. +5. Schreiben Sie schließlich die PPTX‑Datei über das `Presentation`‑Objekt. + +Der folgende JavaScript‑Code – eine Umsetzung der oben genannten Schritte – zeigt, wie Sie Text zu einer Folie hinzufügen: +```javascript +// Instanziiert Presentation +var pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie in der Präsentation + var sld = pres.getSlides().get_Item(0); + // Fügt eine AutoShape mit Typ Rectangle hinzu + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Fügt dem Rechteck ein TextFrame hinzu + ashp.addTextFrame(" "); + // Greift auf das TextFrame zu + var txtFrame = ashp.getTextFrame(); + // Erstellt das Paragraph-Objekt für das TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Erstellt ein Portion-Objekt für den Paragraphen + var portion = para.getPortions().get_Item(0); + // Setzt Text + portion.setText("Aspose TextBox"); + // Speichert die Präsentation auf dem Datenträger + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Überprüfen, ob es sich um ein Textfeld handelt** + +Aspose.Slides bietet die Methode [isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox) der [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)-Klasse, mit der Sie Formen untersuchen und Textfelder identifizieren können. + +![Textfeld und Form](istextbox.png) + +Dieser JavaScript‑Code zeigt, wie Sie prüfen, ob eine Form als Textfeld erstellt wurde: +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +Beachten Sie, dass die Methode `isTextBox` bei einer über die `addAutoShape`‑Methode der [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/) hinzugefügten AutoShape `false` zurückgibt. Nachdem Sie jedoch Text über die `addTextFrame`‑Methode oder die `setText`‑Methode hinzugefügt haben, liefert die Eigenschaft `isTextBox` `true`. +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() gibt false zurück +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() gibt true zurück + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() gibt false zurück +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() gibt true zurück + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() gibt false zurück +shape3.addTextFrame(""); +// shape3.isTextBox() gibt false zurück + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() gibt false zurück +shape4.getTextFrame().setText(""); +// shape4.isTextBox() gibt false zurück +``` + + +## **Spalten in Textfeld hinzufügen** + +Aspose.Slides stellt die Methoden [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) und [setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-) der [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)-Klasse bereit, mit denen Sie Spalten zu Textfeldern hinzufügen können. Sie können die Anzahl der Spalten sowie den Abstand in Punkt zwischen den Spalten festlegen. + +Dieser JavaScript‑Code demonstriert die beschriebene Vorgehensweise: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie in der Präsentation + var slide = pres.getSlides().get_Item(0); + // Fügt eine AutoShape mit Typ Rectangle hinzu + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Fügt dem Rechteck ein TextFrame hinzu + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // Holt das Textformat des TextFrames + var format = aShape.getTextFrame().getTextFrameFormat(); + // Gibt die Anzahl der Spalten im TextFrame an + format.setColumnCount(3); + // Gibt den Abstand zwischen den Spalten an + format.setColumnSpacing(10); + // Speichert die Präsentation + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Spalten im Textrahmen hinzufügen** + +Aspose.Slides for Node.js via Java bietet die Methode [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) der [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)-Klasse, mit der Sie Spalten in Textrahmen einfügen können. Über diese Eigenschaft können Sie die gewünschte Spaltenanzahl in einem Textrahmen festlegen. + +Der folgende JavaScript‑Code zeigt, wie Sie einer TextFrame‑Spalte hinzufügen: +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Text aktualisieren** + +Aspose.Slides ermöglicht es Ihnen, den Text in einem Textfeld oder sämtliche Texte einer Präsentation zu ändern bzw. zu aktualisieren. + +Dieser JavaScript‑Code demonstriert einen Vorgang, bei dem alle Texte einer Präsentation aktualisiert werden: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // Prüft, ob die Form Textframe unterstützt (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // Durchläuft Absätze im Textframe + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // Durchläuft jede Portion im Absatz + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// Ändert den Text + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Ändert die Formatierung + } + } + } + } + } + // Speichert die geänderte Präsentation + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Textfeld mit Hyperlink hinzufügen** + +Sie können einen Link in ein Textfeld einfügen. Beim Anklicken des Textfeldes wird der Link geöffnet. + +So fügen Sie ein Textfeld mit einem Link hinzu: + +1. Erstellen Sie eine Instanz der `Presentation`‑Klasse. +2. Holen Sie sich eine Referenz auf die erste Folie der neu erstellten Präsentation. +3. Fügen Sie ein `AutoShape`‑Objekt mit `ShapeType` = `Rectangle` an einer angegebenen Position auf der Folie hinzu und erhalten Sie die Referenz auf das neu hinzugefügte AutoShape‑Objekt. +4. Fügen Sie dem `AutoShape`‑Objekt einen `TextFrame` hinzu, der *Aspose TextBox* als Standardtext enthält. +5. Instanziieren Sie die `HyperlinkManager`‑Klasse. +6. Weisen Sie das `HyperlinkManager`‑Objekt der [HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--)‑Eigenschaft des gewünschten Textabschnitts im `TextFrame` zu. +7. Schreiben Sie schließlich die PPTX‑Datei über das `Presentation`‑Objekt. + +Der folgende JavaScript‑Code – eine Umsetzung der oben genannten Schritte – zeigt, wie Sie ein Textfeld mit Hyperlink zu einer Folie hinzufügen: +```javascript +// Instanziiert eine Presentation-Klasse, die ein PPTX darstellt +var pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie in der Präsentation + var slide = pres.getSlides().get_Item(0); + // Fügt ein AutoShape-Objekt mit dem Typ Rectangle hinzu + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // Castet die Form zu AutoShape + var pptxAutoShape = shape; + // Greift auf die ITextFrame-Eigenschaft der AutoShape zu + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // Fügt dem Frame etwas Text hinzu + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // Setzt den Hyperlink für den Portion-Text + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // Speichert die PPTX-Präsentation + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Was ist der Unterschied zwischen einem Textfeld und einem Text‑Platzhalter bei der Arbeit mit Master‑Folien?** + +Ein [Platzhalter](/slides/de/nodejs-java/manage-placeholder/) erbt Stil/Position vom [Master](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/) und kann in [Layouts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/) überschrieben werden, während ein gewöhnliches Textfeld ein eigenständiges Objekt auf einer bestimmten Folie ist und sich beim Wechseln von Layouts nicht ändert. + +**Wie kann ich einen massiven Text‑Ersetzungsvorgang in der gesamten Präsentation durchführen, ohne Texte in Diagrammen, Tabellen und SmartArt zu berühren?** + +Beschränken Sie die Iteration auf Auto‑Shapes, die TextFrames besitzen, und schließen Sie eingebettete Objekte ([Charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), [Tables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/), [SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/)) aus, indem Sie deren Sammlungen separat durchlaufen oder diese Objekttypen überspringen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..e2887aadfb --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: Präsentationslokalisierung +type: docs +weight: 100 +url: /de/nodejs-java/presentation-localization/ +--- + +## **Sprache für Präsentation und Text von Shape ändern** + +- Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +- Holen Sie die Referenz einer Folie, indem Sie deren Index verwenden. +- Fügen Sie der Folie ein [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) vom Typ [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) hinzu. +- Fügen Sie dem TextFrame etwas Text hinzu. +- Legen Sie die Language Id für den Text fest. +- Speichern Sie die Präsentation als PPTX‑Datei. + +Die Implementierung der oben genannten Schritte wird im folgenden Beispiel demonstriert. +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Löst die Sprach‑ID eine automatische Textübersetzung aus?** + +Nein. setLanguageId in Aspose.Slides speichert die Sprache für Rechtschreib‑ und Grammatikprüfung, übersetzt jedoch den Text nicht und ändert ihn nicht. Es handelt sich um Metadaten, die PowerPoint für die Korrektur versteht. + +**Beeinflusst die Sprach‑ID die Silbentrennung und den Zeilenumbruch beim Rendern?** + +In Aspose.Slides dient setLanguageId der Korrektur. Die Qualität der Silbentrennung und des Zeilenumbruchs hängt hauptsächlich von der Verfügbarkeit geeigneter Schriftarten sowie von Layout‑ und Zeilenumbruch‑Einstellungen für das Schriftsystem ab. Stellen Sie sicher, dass die erforderlichen Schriftarten verfügbar sind, konfigurieren Sie Schriftarten‑Ersetzungsregeln und/oder betten Sie Schriftarten in die Präsentation ein. + +**Kann ich innerhalb eines einzelnen Absatzes verschiedene Sprachen festlegen?** + +Ja. setLanguageId wird auf Ebene des Textabschnitts angewendet, sodass ein einzelner Absatz mehrere Sprachen mit unterschiedlichen Korrektureinstellungen mischen kann. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..6b468faebf --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,86 @@ +--- +title: Hoch- und Tiefgestellt +type: docs +weight: 80 +url: /de/nodejs-java/superscript-and-subscript/ +--- + +## **Verwalten von hoch- und tiefgestelltem Text** + +Sie können hoch- und tiefgestellten Text in jedem Absatzabschnitt hinzufügen. Um hoch- oder tiefgestellten Text in einem Aspose.Slides‑Textrahmen hinzuzufügen, muss die Methode [**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) der Klasse [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat) verwendet werden. + +Diese Eigenschaft gibt den hoch- oder tiefgestellten Text zurück oder legt ihn fest (Wert von -100 % (tiefgestellt) bis 100 % (hochgestellt)). Beispiel: + +- Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Erhalten Sie die Referenz einer Folie über deren Index. +- Fügen Sie der Folie ein [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) des Typs [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) hinzu. +- Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) zu, das mit dem [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) verknüpft ist. +- Löschen Sie vorhandene Paragraphs +- Erstellen Sie ein neues Absatzobjekt zum Halten von hochgestelltem Text und fügen Sie es der [Paragraphs collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) des [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) hinzu. +- Erstellen Sie ein neues Portion‑Objekt +- Setzen Sie die Escapement‑Eigenschaft für die Portion zwischen 0 und 100, um hochgestellten Text hinzuzufügen. (0 bedeutet kein Hochstellen) +- Legen Sie etwas Text für [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) fest und fügen Sie ihn dann der Portion‑Sammlung des Absatzes hinzu. +- Erstellen Sie ein neues Absatzobjekt zum Halten von tiefgestelltem Text und fügen Sie es der IParagraphs‑Sammlung des ITextFrame hinzu. +- Erstellen Sie ein neues Portion‑Objekt +- Setzen Sie die Escapement‑Eigenschaft für die Portion zwischen 0 und -100, um tiefgestellten Text hinzuzufügen. (0 bedeutet kein Tiefstellen) +- Legen Sie etwas Text für [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) fest und fügen Sie ihn dann der Portion‑Sammlung des Absatzes hinzu. +- Speichern Sie die Präsentation als PPTX‑Datei. + +Die Implementierung der obigen Schritte ist unten dargestellt. +```javascript +// Instanziieren Sie eine Presentation-Klasse, die eine PPTX darstellt +var pres = new aspose.slides.Presentation(); +try { + // Folie abrufen + var slide = pres.getSlides().get_Item(0); + // Textfeld erstellen + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // Absatz für hochgestellten Text erstellen + var superPar = new aspose.slides.Paragraph(); + // Portion mit normalem Text erstellen + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // Portion mit hochgestelltem Text erstellen + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // Absatz für tiefgestellten Text erstellen + var paragraph2 = new aspose.slides.Paragraph(); + // Portion mit normalem Text erstellen + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // Portion mit tiefgestelltem Text erstellen + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // Absätze zum Textfeld hinzufügen + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Wird hoch- und tiefgestellter Text beim Exportieren in PDF oder andere Formate beibehalten?** + +Ja, Aspose.Slides behält die hoch- und tiefgestellte Formatierung beim Exportieren von Präsentationen nach PDF, PPT/PPTX, Bildern und anderen unterstützten Formaten korrekt bei. Die spezialisierte Formatierung bleibt in allen Ausgabedateien erhalten. + +**Kann hoch- und tiefgestellter Text mit anderen Formatierungsstilen wie Fett oder Kursiv kombiniert werden?** + +Ja, Aspose.Slides ermöglicht das Mischen verschiedener Textstile innerhalb einer einzigen Portion. Sie können Fett, Kursiv, Unterstreichen aktivieren und gleichzeitig hoch- oder tiefgestellten Text anwenden, indem Sie die entsprechenden Eigenschaften in [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) konfigurieren. + +**Funktionieren hoch- und tiefgestellte Formatierungen für Text in Tabellen, Diagrammen oder SmartArt?** + +Ja, Aspose.Slides unterstützt die Formatierung in den meisten Objekten, einschließlich Tabellen und Diagrammelementen. Bei der Arbeit mit SmartArt müssen Sie auf die entsprechenden Elemente (wie [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/)) und deren Textcontainer zugreifen und dann die [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/)‑Eigenschaften in ähnlicher Weise konfigurieren. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..ef3351935f --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,682 @@ +--- +title: PowerPoint-Text in JavaScript formatieren +linktitle: Textformatierung +type: docs +weight: 50 +url: /de/nodejs-java/text-formatting/ +keywords: +- Text hervorheben +- Regulärer Ausdruck +- Absatz ausrichten +- Textstil +- Texthintergrund +- Texttransparenz +- Zeichenabstand +- Schrifteigenschaften +- Schriftfamilie +- Textrotation +- Rotationswinkel +- Textfeld +- Zeilenabstand +- Autofit-Eigenschaft +- Textfeld-Anker +- Texttabulator +- Standardsprache +- PowerPoint +- OpenDocument +- Präsentation +- Node.js +- JavaScript +- Aspose.Slides +description: "Erfahren Sie, wie Sie Text in PowerPoint- und OpenDocument-Präsentationen mit Aspose.Slides für Node.js via Java formatieren und gestalten. Passen Sie Schriftarten, Farben, Ausrichtungen und mehr mit leistungsstarken JavaScript-Codebeispielen an." +--- + +## **Text hervorheben** + +Die Methode [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-) wurde zur Klasse [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) und zur Klasse [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) hinzugefügt. + +Sie ermöglicht das Hervorheben eines Textteils mit Hintergrundfarbe anhand eines Textbeispiels, ähnlich dem Tool „Textmarkerfarbe“ in PowerPoint 2019. + +Der nachstehende Code‑Snippet zeigt, wie diese Funktion verwendet wird: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// Alle Wörter 'important' hervorheben + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// Alle einzelnen Vorkommen von 'the' hervorheben + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Aspose bietet einen einfachen, [kostenlosen Online‑PowerPoint‑Editor](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **Text mit regulärem Ausdruck hervorheben** + +Die Methode [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-) wurde zur Klasse [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) und zur Klasse [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) hinzugefügt. + +Sie ermöglicht das Hervorheben eines Textteils mit Hintergrundfarbe anhand eines regulären Ausdrucks, ähnlich dem Tool „Textmarkerfarbe“ in PowerPoint 2019. + +Der nachstehende Code‑Snippet zeigt, wie diese Funktion verwendet wird: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// Alle Wörter mit 10 oder mehr Zeichen hervorheben + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Hintergrundfarbe für Text festlegen** + +Aspose.Slides erlaubt es, die gewünschte Farbe für den Hintergrund eines Textes anzugeben. + +Dieser JavaScript‑Code zeigt, wie die Hintergrundfarbe für einen gesamten Text festgelegt wird: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +Dieser JavaScript‑Code zeigt, wie die Hintergrundfarbe nur für einen Teil eines Textes festgelegt wird: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Textabsätze ausrichten** + +Die Textformatierung ist ein Schlüsselelement beim Erstellen von Dokumenten oder Präsentationen. Wir wissen, dass Aspose.Slides für Node.js via Java das Hinzufügen von Text zu Folien unterstützt. In diesem Abschnitt sehen wir, wie die Ausrichtung von Textabsätzen in einer Folie gesteuert werden kann. Bitte folgen Sie den nachstehenden Schritten, um Textabsätze mit Aspose.Slides für Node.js via Java auszurichten: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie über deren Index. +3. Greifen Sie auf die Platzhalter‑Shapes in der Folie zu und casten Sie sie zu einer [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Lesen Sie den Absatz (der ausgerichtet werden soll) aus dem [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) der [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) aus. +5. Richten Sie den Absatz aus. Ein Absatz kann rechts, links, zentriert oder block‑justiert ausgerichtet werden. +6. Schreiben Sie die geänderte Präsentation als PPTX‑Datei. + +Die Umsetzung der obigen Schritte ist nachfolgend dargestellt. +```javascript +// Instanziieren Sie ein Presentation-Objekt, das eine PPTX-Datei repräsentiert +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Zugriff auf den ersten und zweiten Platzhalter in der Folie und Typumwandlung in AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Ändern Sie den Text in beiden Platzhaltern + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // Abrufen des ersten Absatzes der Platzhalter + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Ausrichten des Textabsatzes zentriert + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // Schreiben der Präsentation als PPTX-Datei + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Transparenz für Text festlegen** + +Dieser Artikel zeigt, wie die Transparenzeigenschaft für beliebige Text‑Shapes mit Aspose.Slides für Node.js via Java gesetzt wird. Gehen Sie dazu wie folgt vor: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie. +3. Legen Sie die Schattenfarbe fest. +4. Schreiben Sie die Präsentation als PPTX‑Datei. + +Die Umsetzung der obigen Schritte ist nachfolgend dargestellt. +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // Transparenz auf null Prozent setzen + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zeichenabstand für Text festlegen** + +Aspose.Slides ermöglicht das Festlegen des Abstands zwischen Zeichen in einem Textfeld. So können Sie die optische Dichte einer Zeile oder eines Textblocks durch Vergrößern oder Verkleinern des Zeichenabstands anpassen. + +Der folgende JavaScript‑Code zeigt, wie der Abstand für eine Zeile vergrößert und für eine andere verkleinert wird: +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// erweitern +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// verdichten +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Schrifteigenschaften von Absätzen verwalten** + +Präsentationen enthalten meist Text und Bilder. Der Text kann auf verschiedene Weise formatiert werden, etwa um bestimmte Abschnitte hervorzuheben oder um Unternehmensrichtlinien zu entsprechen. Die Textformatierung unterstützt Benutzer dabei, das Erscheinungsbild des Präsentationsinhalts zu variieren. Dieser Artikel zeigt, wie Aspose.Slides für Node.js via Java verwendet wird, um die Schrifteigenschaften von Absätzen auf Folien zu konfigurieren. Vorgehensweise: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie über deren Index. +3. Greifen Sie auf die Platzhalter‑Shapes in der Folie zu und casten Sie sie zu einer [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Lesen Sie den [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) aus dem [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) der [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) aus. +5. Justieren Sie den Absatz. +6. Greifen Sie auf den Text‑Portion eines Absatzes zu. +7. Definieren Sie die Schriftart mit FontData und setzen Sie die Schriftart des Portion‑Texts entsprechend. + - Setzen Sie die Schrift auf fett. + - Setzen Sie die Schrift auf kursiv. +8. Setzen Sie die Schriftfarbe über die Methode [getFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#getFillFormat--) des [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion)-Objekts. +9. Schreiben Sie die geänderte Präsentation in eine [PPTX](https://docs.fileformat.com/presentation/pptx/)‑Datei. + +Die Umsetzung der obigen Schritte ist nachfolgend dargestellt. Sie verwendet eine unformatierte Präsentation und formatiert die Schriften einer Folie. +```javascript +// Instanziieren Sie ein Presentation‑Objekt, das eine PPTX‑Datei darstellt +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // Zugriff auf eine Folie anhand ihrer Position + var slide = pres.getSlides().get_Item(0); + // Zugriff auf den ersten und zweiten Platzhalter in der Folie und Typumwandlung zu AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Zugriff auf den ersten Absatz + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Zugriff auf die erste Portion + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // Neue Schriftarten definieren + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // Neue Schriftarten der Portion zuweisen + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // Schrift auf fett setzen + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Schrift auf kursiv setzen + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Schriftfarbe setzen + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // PPTX auf Festplatte schreiben + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Schriftfamilie von Text verwalten** + +Eine Portion enthält Text mit einheitlicher Formatierung innerhalb eines Absatzes. Dieser Artikel zeigt, wie Aspose.Slides für Node.js via Java verwendet wird, um ein Textfeld zu erzeugen, Text hinzuzufügen und eine bestimmte Schriftart sowie weitere Eigenschaften der Schriftfamilie festzulegen. Vorgehensweise: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Holen Sie sich die Referenz einer Folie über deren Index. +3. Fügen Sie der Folie eine [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) vom Typ [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) hinzu. +4. Entfernen Sie den Füllstil der [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Greifen Sie auf das TextFrame der AutoShape zu. +6. Fügen Sie dem TextFrame Text hinzu. +7. Greifen Sie auf das Portion‑Objekt des [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) zu. +8. Definieren Sie die für die [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) zu verwendende Schriftart. +9. Setzen Sie weitere Schrifteigenschaften wie fett, kursiv, unterstrichen, Farbe und Höhe über die entsprechenden Eigenschaften des Portion‑Objekts. +10. Schreiben Sie die geänderte Präsentation als PPTX‑Datei. + +Die Umsetzung der obigen Schritte ist nachfolgend dargestellt. +```javascript +// Instanziieren Sie ein Presentation-Objekt +var pres = new aspose.slides.Presentation(); +try { + // Erste Folie abrufen + var sld = pres.getSlides().get_Item(0); + // Ein AutoShape vom Typ Rechteck hinzufügen + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // Entfernen Sie den mit dem AutoShape verknüpften Füllstil + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Zugriff auf das TextFrame des AutoShape + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // Zugriff auf die Portion des TextFrame + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // Schriftart für die Portion festlegen + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Fetteigenschaft der Schrift setzen + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Kursiv-Eigenschaft der Schrift setzen + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Unterstreichung der Schrift festlegen + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // Schrifthöhe festlegen + port.getPortionFormat().setFontHeight(25); + // Farbe der Schrift festlegen + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // PPTX auf Festplatte schreiben + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Schriftgröße für Text festlegen** + +Aspose.Slides ermöglicht die Auswahl einer gewünschten Schriftgröße für vorhandenen Text in einem Absatz sowie für später hinzugefügten Text. + +Der nachstehende JavaScript‑Code zeigt, wie die Schriftgröße für Texte in einem Absatz festgelegt wird: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Ermittelt das erste Shape, zum Beispiel. + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Ermittelt den ersten Absatz, zum Beispiel. + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // Setzt die Standardschriftgröße auf 20 pt für alle Textportionen im Absatz. + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // Setzt die Schriftgröße auf 20 pt für die aktuellen Textportionen im Absatz. + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Text rotieren** + +Aspose.Slides für Node.js via Java ermöglicht es Entwicklern, Text zu rotieren. Der Text kann als [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal), [Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical), [Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270), [WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical), [EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical), [MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) oder [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft) dargestellt werden. Um den Text eines beliebigen TextFrames zu rotieren, folgen Sie diesen Schritten: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Greifen Sie auf die erste Folie zu. +3. Fügen Sie der Folie eine beliebige Shape hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) zu. +5. [Rotieren Sie den Text](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-). +6. Speichern Sie die Datei auf dem Datenträger. +```javascript +// Instanz der Klasse Presentation erstellen +var pres = new aspose.slides.Presentation(); +try { + // Erste Folie abrufen + var slide = pres.getSlides().get_Item(0); + // AutoShape vom Typ Rectangle hinzufügen + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // TextFrame zum Rechteck hinzufügen + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Zugriff auf das TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // Paragraph-Objekt für das TextFrame erstellen + var para = txtFrame.getParagraphs().get_Item(0); + // Portion-Objekt für den Paragraphen erstellen + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Präsentation speichern + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Benutzerdefinierten Rotationswinkel für TextFrame festlegen** + +Aspose.Slides für Node.js via Java unterstützt jetzt das Festlegen eines benutzerdefinierten Rotationswinkels für TextFrames. In diesem Abschnitt wird anhand eines Beispiels gezeigt, wie die Eigenschaft RotationAngle in Aspose.Slides gesetzt wird. Die neuen Methoden [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) und [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--) wurden zur Klasse [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) und zur Klasse [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) hinzugefügt und ermöglichen das Setzen eines benutzerdefinierten Rotationswinkels für TextFrames. Vorgehensweise: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Fügen Sie der Folie ein Diagramm hinzu. +3. [Setzen Sie die Eigenschaft RotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-). +4. Schreiben Sie die Präsentation als PPTX‑Datei. + +Im nachfolgenden Beispiel wird die Eigenschaft RotationAngle gesetzt. +```javascript +// Instanz der Klasse Presentation erstellen +var pres = new aspose.slides.Presentation(); +try { + // Erste Folie abrufen + var slide = pres.getSlides().get_Item(0); + // AutoShape vom Typ Rectangle hinzufügen + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // TextFrame zum Rechteck hinzufügen + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Zugriff auf das TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // Paragraph-Objekt für das TextFrame erstellen + var para = txtFrame.getParagraphs().get_Item(0); + // Portion-Objekt für den Paragraphen erstellen + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Präsentation speichern + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zeilenabstand von Absätzen** + +Aspose.Slides stellt unter [`ParagraphFormat`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat) die Eigenschaften `SpaceAfter`, `SpaceBefore` und `SpaceWithin` bereit, mit denen der Zeilenabstand eines Absatzes verwaltet werden kann. Die drei Eigenschaften werden folgendermaßen verwendet: + +* Um den Zeilenabstand prozentual anzugeben, verwenden Sie einen positiven Wert. +* Um den Zeilenabstand in Punkten anzugeben, verwenden Sie einen negativen Wert. + +Beispiel: Ein Zeilenabstand von 16 pt wird erreicht, indem `SpaceBefore` auf ‑16 gesetzt wird. + +So geben Sie den Zeilenabstand für einen bestimmten Absatz an: + +1. Laden Sie eine Präsentation, die eine AutoShape mit Text enthält. +2. Holen Sie die Referenz einer Folie über deren Index. +3. Greifen Sie auf das TextFrame zu. +4. Greifen Sie auf den Paragraph zu. +5. Setzen Sie die Paragraph‑Eigenschaften. +6. Speichern Sie die Präsentation. + +Der folgende JavaScript‑Code zeigt, wie der Zeilenabstand für einen Absatz festgelegt wird: +```javascript +// Instanz der Klasse Presentation erstellen +var pres = new aspose.slides.Presentation("Fonts.pptx"); +try { + // Referenz einer Folie anhand ihres Index erhalten + var sld = pres.getSlides().get_Item(0); + // Zugriff auf das TextFrame + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // Zugriff auf den Absatz + var para = tf1.getParagraphs().get_Item(0); + // Eigenschaften des Absatzes festlegen + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // Präsentation speichern + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **AutofitType‑Eigenschaft für TextFrame festlegen** + +In diesem Abschnitt werden die verschiedenen Formatierungseigenschaften von TextFrames erläutert. Der Artikel beschreibt, wie die AutofitType‑Eigenschaft, die Anker‑Position von Text und die Drehung von Text in einer Präsentation gesetzt werden können. Aspose.Slides für Node.js via Java ermöglicht das Setzen der AutofitType‑Eigenschaft jedes TextFrames. AutofitType kann auf [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) oder [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape) gesetzt werden. Bei **Normal** bleibt die Form unverändert, während der Text angepasst wird; bei **Shape** wird die Form so modifiziert, dass nur der erforderliche Text darin enthalten ist. Vorgehensweise: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. Greifen Sie auf die erste Folie zu. +3. Fügen Sie der Folie eine beliebige Shape hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) zu. +5. [Setzen Sie das AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-) des TextFrames. +6. Speichern Sie die Datei auf dem Datenträger. +```javascript +// Instanz der Klasse Presentation erstellen +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // AutoShape vom Typ Rectangle hinzufügen + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // TextFrame zum Rechteck hinzufügen + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Zugriff auf das TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Paragraph-Objekt für das TextFrame erstellen + var para = txtFrame.getParagraphs().get_Item(0); + // Portion-Objekt für den Paragraphen erstellen + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Präsentation speichern + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Anker von TextFrame festlegen** + +Aspose.Slides für Node.js via Java ermöglicht das Setzen des Ankers eines beliebigen TextFrames. TextAnchorType legt fest, wo der Text innerhalb der Form platziert wird. Der Anker‑Typ kann auf [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top), [Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center), [Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom), [Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) oder [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed) gesetzt werden. Vorgehensweise: + +1. Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Greifen Sie auf die erste Folie zu. +3. Fügen Sie der Folie eine beliebige Shape hinzu. +4. Greifen Sie auf das [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) zu. +5. [Setzen Sie TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-) des TextFrames. +6. Speichern Sie die Datei auf dem Datenträger. +```javascript +// Instanz der Klasse Presentation erstellen +var pres = new aspose.slides.Presentation(); +try { + // Erste Folie abrufen + var slide = pres.getSlides().get_Item(0); + // AutoShape vom Typ Rectangle hinzufügen + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // TextFrame zum Rechteck hinzufügen + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Zugriff auf das TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // Paragraph-Objekt für das TextFrame erstellen + var para = txtFrame.getParagraphs().get_Item(0); + // Portion-Objekt für den Paragraphen erstellen + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Präsentation speichern + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Tabs und EffectiveTabs in einer Präsentation** + +Alle Texttabulatoren werden in Pixeln angegeben. + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**Abbildung: 2 explizite Tabs und 2 Standard‑Tabs**| + +- EffectiveTabs.ExplicitTabCount (in unserem Beispiel 2) entspricht Tabs.Count. +- Die EffectiveTabs‑Kollektion enthält alle Tabs (aus der Tabs‑Kollektion und die Standard‑Tabs). +- EffectiveTabs.ExplicitTabCount (in unserem Beispiel 2) entspricht Tabs.Count. +- EffectiveTabs.DefaultTabSize (294) gibt den Abstand zwischen den Standard‑Tabs an (Tabs 3 und 4 in unserem Beispiel). +- EffectiveTabs.GetTabByIndex(index) liefert bei index = 0 den ersten expliziten Tab (Position = 731), bei index = 1 den zweiten Tab (Position = 1241). Bei index = 2 erhalten Sie den ersten Standard‑Tab (Position = 1470) usw. +- EffectiveTabs.GetTabAfterPosition(pos) wird verwendet, um den nächsten Tab nach einem Textabschnitt zu ermitteln. Beispiel: Sie haben den Text „Hello World!“. Um diesen Text korrekt zu rendern, müssen Sie zuerst die Länge von „Hello“ in Pixeln berechnen und GetTabAfterPosition mit diesem Wert aufrufen. Das Ergebnis ist die Position des nächsten Tabs, an der „world!“ gezeichnet wird. + +## **Standard‑Textstil festlegen** + +Wenn Sie dieselbe Standard‑Textformatierung für alle Textelemente einer Präsentation gleichzeitig anwenden möchten, können Sie die Methode `getDefaultTextStyle` der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) verwenden und die gewünschte Formatierung festlegen. Das folgende Code‑Beispiel zeigt, wie die Standardschriftart **fett** (14 pt) für den Text aller Folien einer neuen Präsentation gesetzt wird. +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Das Absatzformat der obersten Ebene abrufen. + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Text mit All‑Caps‑Effekt extrahieren** + +In PowerPoint bewirkt die Anwendung des **All Caps**‑Schrifteffekts, dass der Text auf der Folie großgeschrieben angezeigt wird, selbst wenn er ursprünglich kleingeschrieben eingegeben wurde. Wenn Sie einen solchen Textabschnitt mit Aspose.Slides auslesen, gibt die Bibliothek den Text exakt so zurück, wie er eingegeben wurde. Um dies zu berücksichtigen, prüfen Sie [TextCapType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textcaptype/) – wenn er `All` anzeigt, konvertieren Sie den zurückgegebenen String einfach in Großbuchstaben, damit Ihre Ausgabe mit dem, was Benutzer auf der Folie sehen, übereinstimmt. + +Angenommen, wir haben das folgende Textfeld auf der ersten Folie der Datei **sample2.pptx**. + +![Der All‑Caps‑Effekt](all_caps_effect.png) + +Der nachstehende Code‑Abschnitt zeigt, wie der Text mit dem **All Caps**‑Effekt extrahiert wird: +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +Ausgabe: +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **FAQ** + +**Wie kann Text in einer Tabelle auf einer Folie geändert werden?** + +Um Text in einer Tabelle zu ändern, verwenden Sie das Objekt [Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/). Sie können durch alle Zellen der Tabelle iterieren und den Text jeder Zelle ändern, indem Sie deren `TextFrame`‑ und `ParagraphFormat`‑Eigenschaften ansprechen. + +**Wie kann ein Farbverlauf auf Text in einer PowerPoint‑Folien angewendet werden?** + +Verwenden Sie dazu die Eigenschaft Fill Format im [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). Setzen Sie das Fill Format auf `Gradient` und definieren Sie Start‑ und Endfarbe sowie weitere Eigenschaften wie Richtung und Transparenz, um den Verlaufseffekt auf den Text anzuwenden. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..e226645801 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,366 @@ +--- +title: WordArt +type: docs +weight: 110 +url: /de/nodejs-java/wordart/ +--- + +## **Über WordArt?** + +WordArt bzw. Word Art ist ein Feature, mit dem Sie Texteffekte anwenden können, damit Texte besonders hervorgehoben werden. Mit WordArt können Sie beispielsweise einen Text umranden oder ihn mit einer Farbe (oder einem Farbverlauf) füllen, 3D‑Effekte hinzufügen usw. Außerdem lässt sich die Form eines Textes schräg stellen, biegen und strecken. + +{{% alert color="primary" %}} +WordArt ermöglicht es, einen Text wie ein grafisches Objekt zu behandeln. Im Allgemeinen besteht WordArt aus Effekten oder speziellen Änderungen, die an Texten vorgenommen werden, um sie attraktiver oder auffälliger zu machen. +{{% /alert %}} + +**WordArt in Microsoft PowerPoint** + +Um WordArt in Microsoft PowerPoint zu verwenden, müssen Sie eine der vordefinierten WordArt‑Vorlagen auswählen. Eine WordArt‑Vorlage ist ein Satz von Effekten, die auf einen Text bzw. dessen Form angewendet werden. + +**WordArt in Aspose.Slides** + +In Aspose.Slides für Node.js via Java 20.10 haben wir Unterstützung für WordArt implementiert und die Funktion in späteren Aspose.Slides‑Releases für Node.js via Java weiter verbessert. + +Mit Aspose.Slides für Node.js via Java können Sie ganz einfach Ihre eigene WordArt‑Vorlage (ein einzelner Effekt oder eine Kombination mehrerer Effekte) in JavaScript erstellen und auf Texte anwenden. + +## **Erstellen einer einfachen WordArt‑Vorlage und Anwenden auf einen Text** + +**Verwendung von Aspose.Slides** + +Zunächst erzeugen wir mit folgendem JavaScript‑Code einen einfachen Text: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Jetzt setzen wir die Schriftgröße des Textes auf einen größeren Wert, um den Effekt deutlicher zu machen, mit diesem Code: +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**Verwendung von Microsoft PowerPoint** + +Gehen Sie zum WordArt‑Effekte‑Menü in Microsoft PowerPoint: + +![todo:image_alt_text](image-20200930113926-1.png) + +Im rechten Menü können Sie einen vordefinierten WordArt‑Effekt auswählen. Im linken Menü können Sie die Einstellungen für ein neues WordArt festlegen. + +Dies sind einige der verfügbaren Parameter bzw. Optionen: + +![todo:image_alt_text](image-20200930114015-3.png) + +**Verwendung von Aspose.Slides** + +Hier wenden wir das Muster **SmallGrid** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) auf den Text an und fügen mit diesem Code einen schwarzen Textrahmen von Breite 1 hinzu: +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +Der resultierende Text: + +![todo:image_alt_text](image-20200930114108-4.png) + +## **Anwenden anderer WordArt‑Effekte** + +**Verwendung von Microsoft PowerPoint** + +Aus der Programmoberfläche können Sie diese Effekte auf einen Text, Textblock, eine Form oder ein ähnliches Element anwenden: + +![todo:image_alt_text](image-20200930114129-5.png) + +Beispielsweise können Schatten‑, Reflexions‑ und Leuchteffekte auf einen Text angewendet werden; 3D‑Format‑ und 3D‑Drehungseffekte auf einen Textblock; die Eigenschaft **Soft Edges** auf ein Shape‑Objekt (sie wirkt weiterhin, wenn keine 3D‑Format‑Eigenschaft gesetzt ist). + +### **Anwenden von Schatten‑Effekten** + +Hier beschränken wir uns auf Eigenschaften, die nur einen Text betreffen. Wir wenden den Schatten‑Effekt auf einen Text mit folgendem JavaScript‑Code an: +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +Die Aspose.Slides‑API unterstützt drei Schattenarten: **OuterShadow**, **InnerShadow** und **PresetShadow**. + +Mit **PresetShadow** können Sie einen vordefinierten Schatten auf einen Text anwenden. + +**Verwendung von Microsoft PowerPoint** + +In PowerPoint können Sie nur eine Schattenart verwenden. Ein Beispiel: + +![todo:image_alt_text](image-20200930114225-6.png) + +**Verwendung von Aspose.Slides** + +Aspose.Slides erlaubt tatsächlich, zwei Schattenarten gleichzeitig anzuwenden: **InnerShadow** und **PresetShadow**. + +**Hinweise:** + +- Wenn **OuterShadow** und **PresetShadow** zusammen verwendet werden, wird nur der **OuterShadow**‑Effekt angewendet. +- Wenn **OuterShadow** und **InnerShadow** gleichzeitig verwendet werden, hängt der resultierende Effekt von der PowerPoint‑Version ab. In PowerPoint 2013 wird der Effekt verdoppelt, in PowerPoint 2007 wird nur **OuterShadow** angewendet. + +### **Anwenden von Anzeige‑Effekten auf Texte** + +Wir fügen dem Text mit folgendem JavaScript‑Beispiel einen Anzeige‑Effekt hinzu: +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **Anwenden des Leuchteffekts auf Texte** + +Wir wenden den Leuchteffekt auf den Text an, damit er glänzt oder hervorsticht, mit diesem Code: +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +Das Ergebnis der Operation: + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} +Sie können die Parameter für Schatten, Anzeige und Leuchten ändern. Die Eigenschaften der Effekte werden für jeden Textabschnitt separat gesetzt. +{{% /alert %}} + +### **Verwendung von Transformationen in WordArt** + +Wir nutzen die **Transform**‑Eigenschaft (die den gesamten Textblock betrifft) mit folgendem Code: +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +Das Ergebnis: + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} +Sowohl Microsoft PowerPoint als auch Aspose.Slides für Node.js via Java bieten eine Reihe vordefinierter Transformationsarten. +{{% /alert %}} + +**Verwendung von PowerPoint** + +Um zu vordefinierten Transformationsarten zu gelangen, gehen Sie zu: **Format** → **TextEffect** → **Transform** + +**Verwendung von Aspose.Slides** + +Um eine Transformationsart auszuwählen, verwenden Sie das **TextShapeType**‑Enum. + +### **Anwenden von 3D‑Effekten auf Texte und Formen** + +Wir setzen einen 3D‑Effekt auf eine Textform mit folgendem Beispielcode: +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +Der resultierende Text und seine Form: + +![todo:image_alt_text](image-20200930114816-9.png) + +Wir wenden einen 3D‑Effekt auf den Text mit diesem JavaScript‑Code an: +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +Das Ergebnis der Operation: + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} +Die Anwendung von 3D‑Effekten auf Texte bzw. deren Formen und die Wechselwirkungen zwischen Effekten erfolgen nach bestimmten Regeln. + +Betrachten Sie eine Szene für einen Text und die Form, die diesen Text enthält. Der 3D‑Effekt umfasst die 3D‑Objekt‑Darstellung und die Szene, in die das Objekt platziert wurde. + +- Wenn die Szene sowohl für die Form als auch für den Text festgelegt ist, hat die Form‑Szene höhere Priorität – die Text‑Szene wird ignoriert. +- Fehlt der Form eine eigene Szene, aber sie besitzt eine 3D‑Darstellung, wird die Text‑Szene verwendet. +- Andernfalls – wenn die Form ursprünglich keinen 3D‑Effekt hat – ist die Form flach und der 3D‑Effekt wird nur auf den Text angewendet. + +Diese Beschreibungen hängen mit den Methoden **ThreeDFormat.getLightRig()** und **ThreeDFormat.getCamera()** zusammen. +{{% /alert %}} + +## **Anwenden von Outer‑Shadow‑Effekten auf Texte** + +Aspose.Slides für Node.js via Java stellt die Klassen **OuterShadow** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) und **InnerShadow** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow) bereit, mit denen Sie Schatteneffekte auf einen Text anwenden können, der zu einem **TextFrame** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame) gehört. Gehen Sie folgendermaßen vor: + +1. Erzeugen Sie eine Instanz der Klasse **Presentation** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Holen Sie sich die Referenz einer Folie über deren Index. +3. Fügen Sie der Folie ein AutoShape vom Typ **Rectangle** hinzu. +4. Greifen Sie auf das **TextFrame** des AutoShape zu. +5. Setzen Sie den **FillType** des AutoShape auf **NoFill**. +6. Instanziieren Sie die Klasse **OuterShadow**. +7. Legen Sie den **BlurRadius** des Schattens fest. +8. Bestimmen Sie die **Direction** des Schattens. +9. Setzen Sie den **Distance** des Schattens. +10. Setzen Sie **RectanglelAlign** auf **TopLeft**. +11. Setzen Sie die **PresetColor** des Schattens auf **Black**. +12. Schreiben Sie die Präsentation als **PPTX**‑Datei (https://docs.fileformat.com/presentation/pptx/) nieder. + +Dieser Beispielcode in Java – die Umsetzung der oben genannten Schritte – zeigt, wie Sie den Outer‑Shadow‑Effekt auf einen Text anwenden: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Referenz der Folie holen + var sld = pres.getSlides().get_Item(0); + // Ein AutoShape vom Typ Rechteck hinzufügen + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // TextFrame zum Rechteck hinzufügen + ashp.addTextFrame("Aspose TextBox"); + // Füllung der Form deaktivieren, falls wir den Textschatten erhalten wollen + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Äußeren Schatten hinzufügen und alle notwendigen Parameter setzen + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // Präsentation auf die Festplatte schreiben + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Anwenden des Inner‑Shadow‑Effekts auf Formen** + +Gehen Sie folgendermaßen vor: + +1. Erzeugen Sie eine Instanz der Klasse **Presentation** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Holen Sie die Referenz der Folie. +3. Fügen Sie ein AutoShape vom Typ **Rectangle** hinzu. +4. Aktivieren Sie **InnerShadowEffect**. +5. Setzen Sie alle erforderlichen Parameter. +6. Setzen Sie **ColorType** auf **Scheme**. +7. Legen Sie die **Scheme Color** fest. +8. Schreiben Sie die Präsentation als **PPTX**‑Datei (https://docs.fileformat.com/presentation/pptx/). + +Dieser Beispielcode (basierend auf den obigen Schritten) zeigt, wie Sie in JavaScript einen Connector zwischen zwei Formen hinzufügen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Referenz der Folie erhalten + var slide = pres.getSlides().get_Item(0); + // Ein AutoShape vom Typ Rechteck hinzufügen + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // TextFrame zum Rechteck hinzufügen + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // InnerShadowEffect aktivieren + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // Alle erforderlichen Parameter setzen + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // ColorType auf Scheme setzen + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // Scheme-Farbe setzen + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // Präsentation speichern + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich WordArt‑Effekte mit unterschiedlichen Schriften oder Skripten (z. B. Arabisch, Chinesisch) verwenden?** + +Ja, Aspose.Slides unterstützt Unicode und funktioniert mit allen gängigen Schriften und Skripten. WordArt‑Effekte wie Schatten, Füllung und Kontur können unabhängig von der Sprache angewendet werden, wobei die Verfügbarkeit und Darstellung von Schriften vom System abhängen kann. + +**Kann ich WordArt‑Effekte auf Elemente der Folienmaster anwenden?** + +Ja, Sie können WordArt‑Effekte auf Formen in Master‑Folien anwenden, einschließlich Titel‑Platzhaltern, Fußzeilen oder Hintergrundtext. Änderungen am Master‑Layout werden auf allen zugehörigen Folien übernommen. + +**Beeinflussen WordArt‑Effekte die Dateigröße der Präsentation?** + +Leicht. Effekte wie Schatten, Leuchten und Farbverläufe können die Dateigröße durch zusätzliche Formatierungs‑Metadaten geringfügig erhöhen, der Unterschied ist jedoch in der Regel vernachlässigbar. + +**Kann ich das Ergebnis von WordArt‑Effekten ansehen, ohne die Präsentation zu speichern?** + +Ja, Sie können Folien mit WordArt in Bilder (z. B. PNG, JPEG) rendern, indem Sie die `getImage`‑Methode der Klasse **Shape** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) oder **Slide** (https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) verwenden. Damit lässt sich das Ergebnis im Speicher oder auf dem Bildschirm prüfen, bevor die komplette Präsentation gespeichert oder exportiert wird. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/de/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..2c6e7a522b --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,529 @@ +--- +title: Zoom verwalten +type: docs +weight: 60 +url: /de/nodejs-java/manage-zoom/ +keywords: "Zoom, Zoom-Frame, Zoom hinzufügen, Zoom-Frame formatieren, Zusammenfassungszoom, PowerPoint-Präsentation, Java, Aspose.Slides für Node.js via Java" +description: "Zooms oder Zoom-Frames zu PowerPoint-Präsentationen in JavaScript hinzufügen" +--- + +## **Übersicht** + +Zooms in PowerPoint ermöglichen es Ihnen, zu bestimmten Folien, Abschnitten und Teilen einer Präsentation zu springen und von dort zurückzukehren. Beim Vortragen kann diese Möglichkeit, schnell durch den Inhalt zu navigieren, sehr nützlich sein. + +![overview_image](overview.png) + +* Um eine gesamte Präsentation auf einer einzigen Folie zusammenzufassen, verwenden Sie einen [Summary Zoom](#Summary-Zoom). +* Um nur ausgewählte Folien anzuzeigen, verwenden Sie einen [Slide Zoom](#Slide-Zoom). +* Um nur einen einzelnen Abschnitt anzuzeigen, verwenden Sie einen [Section Zoom](#Section-Zoom). + +## **Folienzoom** + +Ein Folien‑Zoom kann Ihre Präsentation dynamischer machen, indem er Ihnen erlaubt, frei zwischen Folien in beliebiger Reihenfolge zu navigieren, ohne den Ablauf Ihrer Präsentation zu unterbrechen. Folien‑Zooms eignen sich hervorragend für kurze Präsentationen ohne viele Abschnitte, können jedoch auch in verschiedenen Präsentationsszenarien verwendet werden. + +Folien‑Zooms helfen Ihnen, in mehrere Informationsstücke zu vertiefen, während Sie das Gefühl haben, sich auf einer einzigen Leinwand zu befinden. + +![overview_image](slidezoomsel.png) + +Für Folien‑Zoom‑Objekte stellt Aspose.Slides die Aufzählung [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType) die Klasse [ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) und einige Methoden der Klasse [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) bereit. + +### **Erstellen von Zoom‑Frames** + +Sie können einen Zoom‑Frame auf einer Folie auf folgende Weise hinzufügen: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie neue Folien, zu denen Sie die Zoom‑Frames verlinken möchten. +3. Fügen Sie den erstellten Folien einen Identifikationstext und einen Hintergrund hinzu. +4. Fügen Sie dem ersten Folie Zoom‑Frames (die Verweise auf die erstellten Folien enthalten) hinzu. +5. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt neue Folien zur Präsentation hinzu + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Erstellt einen Hintergrund für die zweite Folie + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Erstellt ein Textfeld für die zweite Folie + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Erstellt einen Hintergrund für die dritte Folie + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Erstellt ein Textfeld für die dritte Folie + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Fügt ZoomFrame-Objekte hinzu + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Erstellen von Zoom‑Frames mit benutzerdefinierten Bildern** + +Mit Aspose.Slides für Node.js über Java können Sie einen Zoom‑Frame mit einem anderen Folien‑Vorschaubild auf folgende Weise erstellen: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie eine neue Folie, zu der Sie den Zoom‑Frame verlinken möchten. +3. Fügen Sie der Folie einen Identifikationstext und einen Hintergrund hinzu. +4. Erstellen Sie ein [PPImage]-Objekt, indem Sie ein Bild zur Images‑Sammlung des zugehörigen [Presentation]-Objekts hinzufügen, das zum Befüllen des Frames verwendet wird. +5. Fügen Sie dem ersten Folie Zoom‑Frames (die den Verweis auf die erstellte Folie enthalten) hinzu. +6. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Erstellt einen Hintergrund für die zweite Folie + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Erstellt ein Textfeld für die dritte Folie + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Erstellt ein neues Bild für das Zoom-Objekt + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Fügt das ZoomFrame-Objekt hinzu + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formatieren von Zoom‑Frames** + +In den vorherigen Abschnitten haben wir Ihnen gezeigt, wie Sie einfache Zoom‑Frames erstellen. Um komplexere Zoom‑Frames zu erstellen, müssen Sie die Formatierung eines einfachen Frames anpassen. Es gibt mehrere Formatierungsoptionen, die Sie auf einen Zoom‑Frame anwenden können. + +Sie können die Formatierung eines Zoom‑Frames auf einer Folie auf folgende Weise steuern: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie neue Folien, zu denen Sie den Zoom‑Frame verlinken möchten. +3. Fügen Sie den erstellten Folien einen Identifikationstext und einen Hintergrund hinzu. +4. Fügen Sie dem ersten Folie Zoom‑Frames (die Verweise auf die erstellten Folien enthalten) hinzu. +5. Erstellen Sie ein [PPImage]-Objekt, indem Sie ein Bild zur Images‑Sammlung des zugehörigen [Presentation]-Objekts hinzufügen, das zum Befüllen des Frames verwendet wird. +6. Legen Sie ein benutzerdefiniertes Bild für das erste Zoom‑Frame‑Objekt fest. +7. Ändern Sie das Linienformat für das zweite Zoom‑Frame‑Objekt. +8. Entfernen Sie den Hintergrund von einem Bild des zweiten Zoom‑Frame‑Objekts. +9. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt neue Folien zur Präsentation hinzu + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Erstellt einen Hintergrund für die zweite Folie + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Erstellt ein Textfeld für die zweite Folie + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Erstellt einen Hintergrund für die dritte Folie + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Erstellt ein Textfeld für die dritte Folie + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Fügt ZoomFrame-Objekte hinzu + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Erstellt ein neues Bild für das Zoom-Objekt + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Setzt ein benutzerdefiniertes Bild für das zoomFrame1-Objekt + zoomFrame1.setImage(picture); + // Setzt ein Zoom-Frame-Format für das zoomFrame2-Objekt + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Einstellung: Hintergrund für das zoomFrame2-Objekt nicht anzeigen + zoomFrame2.setShowBackground(false); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Abschnitts‑Zoom** + +Ein Abschnitts‑Zoom ist ein Link zu einem Abschnitt Ihrer Präsentation. Sie können Abschnitts‑Zooms verwenden, um zu Abschnitten zurückzukehren, die Sie besonders hervorheben möchten. Oder Sie können sie einsetzen, um zu verdeutlichen, wie bestimmte Teile Ihrer Präsentation miteinander verbunden sind. + +![overview_image](seczoomsel.png) + +Für Abschnitts‑Zoom‑Objekte stellt Aspose.Slides die Klasse [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) und einige Methoden der Klasse [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) bereit. + +### **Erstellen von Abschnitts‑Zoom‑Frames** + +Sie können einen Abschnitts‑Zoom‑Frame auf einer Folie auf folgende Weise hinzufügen: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie eine neue Folie. +3. Fügen Sie dem erstellten Folie einen Identifikations‑Hintergrund hinzu. +4. Erstellen Sie einen neuen Abschnitt, zu dem Sie den Zoom‑Frame verlinken möchten. +5. Fügen Sie dem ersten Folie einen Abschnitts‑Zoom‑Frame (der Verweise auf den erstellten Abschnitt enthält) hinzu. +6. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 1", slide); + // Fügt ein SectionZoomFrame-Objekt hinzu + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Erstellen von Abschnitts‑Zoom‑Frames mit benutzerdefinierten Bildern** + +Mit Aspose.Slides für Node.js über Java können Sie einen Abschnitts‑Zoom‑Frame mit einem anderen Folien‑Vorschaubild auf folgende Weise erstellen: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie eine neue Folie. +3. Fügen Sie dem erstellten Folie einen Identifikations‑Hintergrund hinzu. +4. Erstellen Sie einen neuen Abschnitt, zu dem Sie den Zoom‑Frame verlinken möchten. +5. Erstellen Sie ein [PPImage]-Objekt, indem Sie ein Bild zur Images‑Sammlung des zugehörigen [Presentation]-Objekts hinzufügen, das zum Befüllen des Frames verwendet wird. +6. Fügen Sie dem ersten Folie einen Abschnitts‑Zoom‑Frame (der einen Verweis auf den erstellten Abschnitt enthält) hinzu. +7. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 1", slide); + // Erstellt ein neues Bild für das Zoom-Objekt + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Fügt SectionZoomFrame-Objekt hinzu + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formatieren von Abschnitts‑Zoom‑Frames** + +Um komplexere Abschnitts‑Zoom‑Frames zu erstellen, müssen Sie die Formatierung eines einfachen Frames anpassen. Es gibt mehrere Formatierungsoptionen, die Sie auf einen Abschnitts‑Zoom‑Frame anwenden können. + +Sie können die Formatierung eines Abschnitts‑Zoom‑Frames auf einer Folie auf folgende Weise steuern: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie eine neue Folie. +3. Fügen Sie dem erstellten Folie einen Identifikations‑Hintergrund hinzu. +4. Erstellen Sie einen neuen Abschnitt, zu dem Sie den Zoom‑Frame verlinken möchten. +5. Fügen Sie dem ersten Folie einen Abschnitts‑Zoom‑Frame (der Verweise auf den erstellten Abschnitt enthält) hinzu. +6. Ändern Sie die Größe und Position des erstellten Abschnitts‑Zoom‑Objekts. +7. Erstellen Sie ein [PPImage]-Objekt, indem Sie ein Bild zur Images‑Sammlung des zugehörigen [Presentation]-Objekts hinzufügen, das zum Befüllen des Frames verwendet wird. +8. Legen Sie ein benutzerdefiniertes Bild für das erstellte Abschnitts‑Zoom‑Frame‑Objekt fest. +9. Aktivieren Sie die *Rückkehr zur Originalfolie aus dem verknüpften Abschnitt*-Funktion. +10. Entfernen Sie den Hintergrund von einem Bild des Abschnitts‑Zoom‑Frame‑Objekts. +11. Ändern Sie das Linienformat für das zweite Zoom‑Frame‑Objekt. +12. Ändern Sie die Übergangsdauer. +13. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 1", slide); + // Fügt SectionZoomFrame-Objekt hinzu + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Formatierung für SectionZoomFrame + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zusammenfassungs‑Zoom** + +Ein Zusammenfassungs‑Zoom ist wie eine Landing‑Page, auf der alle Teile Ihrer Präsentation auf einmal angezeigt werden. Beim Vortragen können Sie den Zoom verwenden, um von einem Ort Ihrer Präsentation zu einem anderen in beliebiger Reihenfolge zu springen. Sie können kreativ sein, vorspringen oder Teile Ihrer Bildsprache erneut besuchen, ohne den Fluss Ihrer Präsentation zu unterbrechen. + +![overview_image](sumzoomsel.png) + +Für Zusammenfassungs‑Zoom‑Objekte stellt Aspose.Slides die Klassen [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame), [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) und [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) sowie einige Methoden der Klasse [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) bereit. + +### **Erstellen eines Zusammenfassungs‑Zooms** + +Sie können einen Zusammenfassungs‑Zoom‑Frame auf einer Folie auf folgende Weise hinzufügen: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie neue Folien mit Identifikations‑Hintergrund und neuen Abschnitten für die erstellten Folien. +3. Fügen Sie dem ersten Folie den Zusammenfassungs‑Zoom‑Frame hinzu. +4. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 1", slide); + // Fügt eine neue Folie zur Präsentation hinzu + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 2", slide); + // Fügt eine neue Folie zur Präsentation hinzu + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 3", slide); + // Fügt eine neue Folie zur Präsentation hinzu + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 4", slide); + // Fügt ein SummaryZoomFrame-Objekt hinzu + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Hinzufügen und Entfernen von Zusammenfassungs‑Zoom‑Abschnitten** + +Alle Abschnitte in einem Zusammenfassungs‑Zoom‑Frame werden durch [SummaryZoomSection]-Objekte repräsentiert, die im [SummaryZoomSectionCollection]-Objekt gespeichert sind. Sie können über die Klasse [SummaryZoomSectionCollection] ein Zusammenfassungs‑Zoom‑Abschnitts‑Objekt hinzufügen oder entfernen, indem Sie folgendes tun: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie neue Folien mit Identifikations‑Hintergrund und neuen Abschnitten für die erstellten Folien. +3. Fügen Sie dem ersten Folie einen Zusammenfassungs‑Zoom‑Frame ein. +4. Fügen Sie der Präsentation eine neue Folie und einen neuen Abschnitt hinzu. +5. Fügen Sie den erstellten Abschnitt dem Zusammenfassungs‑Zoom‑Frame hinzu. +6. Entfernen Sie den ersten Abschnitt aus dem Zusammenfassungs‑Zoom‑Frame. +7. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 1", slide); + // Fügt eine neue Folie zur Präsentation hinzu + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 2", slide); + // Fügt ein SummaryZoomFrame-Objekt hinzu + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Fügt eine neue Folie zur Präsentation hinzu + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + var section3 = pres.getSections().addSection("Section 3", slide); + // Fügt einen Abschnitt zum Summary Zoom hinzu + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // Entfernt Abschnitt aus dem Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formatieren von Zusammenfassungs‑Zoom‑Abschnitten** + +Um komplexere Zusammenfassungs‑Zoom‑Abschnitts‑Objekte zu erstellen, müssen Sie die Formatierung eines einfachen Frames anpassen. Es gibt mehrere Formatierungsoptionen, die Sie auf einen Zusammenfassungs‑Zoom‑Abschnitt anwenden können. + +Sie können die Formatierung eines Zusammenfassungs‑Zoom‑Abschnitts‑Objekts in einem Zusammenfassungs‑Zoom‑Frame auf folgende Weise steuern: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Erstellen Sie neue Folien mit Identifikations‑Hintergrund und neuen Abschnitten für die erstellten Folien. +3. Fügen Sie dem ersten Folie einen Zusammenfassungs‑Zoom‑Frame hinzu. +4. Rufen Sie ein Zusammenfassungs‑Zoom‑Abschnitts‑Objekt für das erste Objekt aus der `ISummaryZoomSectionCollection` ab. +5. Erstellen Sie ein [PPImage]-Objekt, indem Sie ein Bild zur images‑collection des zugehörigen [Presentation]-Objekts hinzufügen, das zum Befüllen des Frames verwendet wird. +6. Legen Sie ein benutzerdefiniertes Bild für das erstellte Abschnitts‑Zoom‑Frame‑Objekt fest. +7. Aktivieren Sie die *Rückkehr zur Originalfolie aus dem verknüpften Abschnitt*-Funktion. +8. Ändern Sie das Linienformat für das zweite Zoom‑Frame‑Objekt. +9. Ändern Sie die Übergangsdauer. +10. Speichern Sie die geänderte Präsentation als PPTX‑Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt eine neue Folie zur Präsentation hinzu + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 1", slide); + // Fügt eine neue Folie zur Präsentation hinzu + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Fügt einen neuen Abschnitt zur Präsentation hinzu + pres.getSections().addSection("Section 2", slide); + // Fügt ein SummaryZoomFrame-Objekt hinzu + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Ruft das erste SummaryZoomSection-Objekt ab + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // Formatierung für SummaryZoomSection-Objekt + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // Speichert die Präsentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich die Rückkehr zur übergeordneten Folie nach Anzeige des Ziels steuern?** + +Ja. Der [Zoom frame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/) bzw. das [section](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/) verfügt über die Methode `setReturnToParent`, die bei Aktivierung die Betrachter nach dem Aufrufen des Zielinhalts zur Ausgangsfolie zurückführt. + +**Kann ich die 'Geschwindigkeit' oder Dauer des Zoom‑Übergangs anpassen?** + +Ja. Zoom stellt eine Methode `setTransitionDuration` bereit, mit der Sie steuern können, wie lange die Sprunganimation dauert. + +**Gibt es Begrenzungen, wie viele Zoom‑Objekte eine Präsentation enthalten kann?** + +Es gibt kein fest dokumentiertes API‑Limit. Praktische Grenzen hängen von der Gesamtkomplexität der Präsentation und der Leistungsfähigkeit des Betrachters ab. Sie können viele Zoom‑Frames hinzufügen, sollten jedoch Dateigröße und Renderzeit berücksichtigen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/de/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..bc5664ce7a --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,100 @@ +--- +title: Verwalten von Tags und benutzerdefinierten Daten +type: docs +weight: 300 +url: /de/nodejs-java/managing-tags-and-custom-data +--- + +## **Datenspeicherung in Präsentationsdateien** + +PPTX-Dateien—Elemente mit der Erweiterung .pptx—werden im PresentationML-Format gespeichert, das Teil der Office Open XML‑Spezifikation ist. Das Office Open XML-Format definiert die Struktur für Daten, die in Präsentationen enthalten sind. + +Da eine *Folie* eines der Elemente in Präsentationen ist, enthält ein *Folienteil* den Inhalt einer einzelnen Folie. Ein Folienteil darf explizite Beziehungen zu vielen Teilen — wie z. B. benutzerdefinierte Tags — haben, die von ISO/IEC 29500 definiert werden. + +Benutzerdefinierte Daten (spezifisch für eine Präsentation) oder der Nutzer können als Tags ([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection)) und CustomXmlParts ([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection)) vorliegen. + +{{% alert color="primary" %}} +Tags sind im Wesentlichen Schlüssel‑Wert‑Paare aus Zeichenketten. +{{% /alert %}} + +## **Abrufen der Werte für Tags** + +In Folien entspricht ein Tag den Methoden [DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) und [DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-). Dieser Beispielcode zeigt, wie man den Wert eines Tags mit Aspose.Slides für Node.js über Java für [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) abruft: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Hinzufügen von Tags zu Präsentationen** + +Aspose.Slides ermöglicht das Hinzufügen von Tags zu Präsentationen. Ein Tag besteht typischerweise aus zwei Elementen: + +- der Name einer benutzerdefinierten Eigenschaft – `MyTag` +- der Wert der benutzerdefinierten Eigenschaft – `My Tag Value` + +Wenn Sie einige Präsentationen basierend auf einer bestimmten Regel oder Eigenschaft klassifizieren müssen, können Sie davon profitieren, Tags zu diesen Präsentationen hinzuzufügen. Beispielsweise können Sie, wenn Sie alle Präsentationen aus nordamerikanischen Ländern kategorisieren oder zusammenfassen möchten, ein Tag für Nordamerika erstellen und dann die entsprechenden Länder (USA, Mexiko und Kanada) als Werte zuweisen. + +Dieser Beispielcode zeigt, wie man mit Aspose.Slides für Node.js über Java ein Tag zu einer [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) hinzufügt: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Tags können auch für [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) gesetzt werden: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Oder für jedes individuelle [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich alle Tags aus einer Präsentation, Folie oder Form in einem Vorgang entfernen?** + +Ja. Die [tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) unterstützt eine [clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/)‑Operation, die alle Schlüssel‑Wert‑Paare auf einmal löscht. + +**Wie lösche ich ein einzelnes Tag nach seinem Namen, ohne die gesamte Sammlung zu iterieren?** + +Verwenden Sie die [remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/)‑Operation auf [TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/), um das Tag anhand seines Schlüssels zu löschen. + +**Wie kann ich die vollständige Liste der Tag-Namen für Analysen oder Filterung abrufen?** + +Verwenden Sie [getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/) auf der [tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/); sie liefert ein Array aller Tag‑Namen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..2b6d95f629 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,179 @@ +--- +title: Animierte Diagramme +type: docs +weight: 80 +url: /de/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} + +Aspose.Slides für Node.js über Java unterstützt die Animation von Diagrammelementen. **Series**, **Categories**, **Series Elements**, **Categories Elements** können mit der Methode [**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-) und den beiden Aufzählungen [**EffectChartMajorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMajorGroupingType) und [**EffectChartMinorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMinorGroupingType) animiert werden. + +{{% /alert %}} + +## **Diagrammserien-Animation** +Wenn Sie eine Diagrammserie animieren möchten, schreiben Sie den Code gemäß den unten aufgeführten Schritten: + +1. Laden Sie eine Präsentation. +1. Holen Sie die Referenz des Diagrammobjekts. +1. Animieren Sie die Serie. +1. Schreiben Sie die Präsentationsdatei auf die Festplatte. + +Im nachstehenden Beispiel haben wir Diagrammserien animiert. +```javascript +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Holen Sie die Referenz des Diagrammobjekts + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animieren Sie die Serie + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Schreiben Sie die geänderte Präsentation auf die Festplatte + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Diagrammkategorie-Animation** +Wenn Sie eine Diagrammkategorie animieren möchten, schreiben Sie den Code gemäß den unten aufgeführten Schritten: + +1. Laden Sie eine Präsentation. +1. Holen Sie die Referenz des Diagrammobjekts. +1. Animieren Sie die Kategorie. +1. Schreiben Sie die Präsentationsdatei auf die Festplatte. + +Im nachstehenden Beispiel haben wir die Diagrammkategorie animiert. +```javascript +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animation in Serienelement** +Wenn Sie Serienelemente animieren möchten, schreiben Sie den Code gemäß den unten aufgeführten Schritten: + +1. Laden Sie eine Präsentation. +1. Holen Sie die Referenz des Diagrammobjekts. +1. Animieren Sie Serienelemente. +1. Schreiben Sie die Präsentationsdatei auf die Festplatte. + +Im nachstehenden Beispiel haben wir die Elemente der Serie animiert. +```javascript +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Holen Sie die Referenz des Diagrammobjekts + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animieren Sie Serienelemente + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Schreiben Sie die Präsentationsdatei auf die Festplatte + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animation in Kategorieelement** +Wenn Sie Kategorieelemente animieren möchten, schreiben Sie den Code gemäß den unten aufgeführten Schritten: + +1. Laden Sie eine Präsentation. +1. Holen Sie die Referenz des Diagrammobjekts. +1. Animieren Sie Kategorieelemente. +1. Schreiben Sie die Präsentationsdatei auf die Festplatte. + +Im nachstehenden Beispiel haben wir die Kategorieelemente animiert. +```javascript +// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Holen Sie die Referenz des Diagrammobjekts + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animieren Sie die Elemente der Kategorien + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Schreiben Sie die Präsentationsdatei auf die Festplatte + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Unterstützen Diagramme verschiedene Effekttypen (z. B. Einstieg, Betonung, Ausgang) wie reguläre Formen?** + +Ja. Ein Diagramm wird als Form behandelt, sodass es die standardmäßigen Animationseffekt‑Typen unterstützt, einschließlich Einstieg, Betonung und Ausgang, mit voller Kontrolle über die Zeitleiste der Folie und Animationssequenzen. + +**Kann ich Diagrammanimationen mit Folienübergängen kombinieren?** + +Ja. [Transitions](/slides/de/nodejs-java/slide-transition/) gelten für die Folie, während Animationseffekte auf Objekte der Folie angewendet werden. Sie können beide zusammen in derselben Präsentation verwenden und sie unabhängig voneinander steuern. + +**Werden Diagrammanimationen beim Speichern als PPTX beibehalten?** + +Ja. Beim [save to PPTX](/slides/de/nodejs-java/save-presentation/) bleiben alle Animationseffekte und deren Reihenfolge erhalten, weil sie Teil des nativen Animationsmodells der Präsentation sind. + +**Kann ich vorhandene Diagrammanimationen aus einer Präsentation auslesen und ändern?** + +Ja. Die API bietet Zugriff auf die Folien‑Zeitleiste, Sequenzen und Effekte, sodass Sie bestehende Diagrammanimationen prüfen und anpassen können, ohne alles neu zu erstellen. + +**Kann ich ein Video erstellen, das Diagrammanimationen mit Aspose.Slides enthält?** + +Ja. Sie können eine Präsentation [export a presentation to video](/slides/de/nodejs-java/convert-powerpoint-to-video/) exportieren und dabei Animationen beibehalten, Zeitsteuerungen und weitere Exportoptionen konfigurieren, sodass das resultierende Video die animierte Wiedergabe widerspiegelt. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..e9677cfb27 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: Diagrammberechnungen +type: docs +weight: 50 +url: /de/nodejs-java/chart-calculations/ +--- + +## **Tatsächliche Werte der Diagrammelemente berechnen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zum Abrufen dieser Eigenschaften. Die Eigenschaften der Klasse [Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) liefern Informationen über die tatsächliche Position des Achsen‑Diagrammelements ([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--), [Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--), [Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--), [Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--), [Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--), [Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--)). Es ist erforderlich, vorher die Methode [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) aufzurufen, um die Eigenschaften mit den tatsächlichen Werten zu füllen. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Tatsächliche Position von übergeordneten Diagrammelementen berechnen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zum Abrufen dieser Eigenschaften. Die Eigenschaften der Klasse [ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) liefern Informationen über die tatsächliche Position des übergeordneten Diagrammelements ([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--), [ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--), [ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--), [ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--)). Es ist erforderlich, vorher die Methode [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) aufzurufen, um die Eigenschaften mit den tatsächlichen Werten zu füllen. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Informationen im Diagramm ausblenden** + +Dieses Thema hilft Ihnen zu verstehen, wie Sie Informationen im Diagramm ausblenden können. Mit Aspose.Slides für Node.js über Java können Sie **Titel, Vertikale Achse, Horizontale Achse** und **Gitternetzlinien** im Diagramm ausblenden. Das nachstehende Code‑Beispiel zeigt, wie diese Eigenschaften verwendet werden. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // Diagrammtitel ausblenden + chart.setTitle(false); + // /Ausblenden der Werteachse + chart.getAxes().getVerticalAxis().setVisible(false); + // Sichtbarkeit der Kategorienachse + chart.getAxes().getHorizontalAxis().setVisible(false); + // Legende ausblenden + chart.setLegend(false); + // Hauptgitternetzlinien ausblenden + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // Festlegen der Linienfarbe der Serie + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Do external Excel workbooks work as a data source, and how does that affect recalculation?** + +Ja. Ein Diagramm kann auf eine externe Arbeitsmappe verweisen: Wenn Sie die externe Quelle verbinden oder aktualisieren, werden Formeln und Werte aus dieser Arbeitsmappe übernommen, und das Diagramm spiegelt die Updates während Öffnen/Bearbeiten wider. Die API lässt Sie den [specify the external workbook](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) Pfad angeben und die verknüpften Daten verwalten. + +**Can I compute and display trendlines without implementing regression myself?** + +Ja. [Trendlines](/slides/de/nodejs-java/trend-line/) (linear, exponential und andere) werden von Aspose.Slides hinzugefügt und automatisch aus den Seriendaten neu berechnet, sodass Sie keine eigenen Berechnungen durchführen müssen. + +**If a presentation has multiple charts with external links, can I control which workbook each chart uses for computed values?** + +Ja. Jedes Diagramm kann auf seine eigene [external workbook](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) verweisen, oder Sie können pro Diagramm unabhängig von den anderen ein externes Arbeitsbuch erstellen/ersetzen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..bb6796e767 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: Hinweis +type: docs +url: /de/nodejs-java/callout/ +--- + +## **Verwenden von Callouts** + +Neue Methoden [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) und [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-) wurden zur Klasse [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) und zur Klasse [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) hinzugefügt. Diese Methoden bestimmen, ob die Datenbeschriftung eines angegebenen Diagramms als Daten‑Callout oder als Datenbeschriftung angezeigt wird. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Callout für Doughnut‑Diagramm festlegen** + +Aspose.Slides für Node.js über Java unterstützt das Festlegen der Callout‑Form der Serien‑Datenbeschriftung für ein Doughnut‑Diagramm. Das folgende Beispiel wird angegeben. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Werden Callouts beim Konvertieren einer Präsentation in PDF, HTML5, SVG oder Bilder beibehalten?** + +Ja. Callouts sind Teil der Diagrammdarstellung, sodass sie beim Exportieren nach [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/), [HTML5](/slides/de/nodejs-java/export-to-html5/), [SVG](/slides/de/nodejs-java/render-a-slide-as-an-svg-image/) oder [Rasterbilder](/slides/de/nodejs-java/convert-powerpoint-to-png/) zusammen mit der Formatierung der Folie erhalten bleiben. + +**Funktionieren benutzerdefinierte Schriften in Callouts und kann ihr Aussehen beim Export beibehalten werden?** + +Ja. Aspose.Slides unterstützt das [Einbetten von Schriften](/slides/de/nodejs-java/embedded-font/) in die Präsentation und steuert das Einbetten von Schriften während Exporten wie [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/), sodass die Callouts auf verschiedenen Systemen gleich aussehen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..568e9b36cc --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: Diagrammachse +type: docs +url: /de/nodejs-java/chart-axis/ +keywords: "PowerPoint Diagrammachse, Präsentationsdiagramme, Java, Diagrammachse manipulieren, Diagrammdaten" +description: "Wie man die PowerPoint-Diagrammachse in JavaScript bearbeitet" +--- + +## **Ermitteln der Maximalwerte auf der vertikalen Achse in Diagrammen** + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, die minimalen und maximalen Werte einer vertikalen Achse zu erhalten. Führen Sie die folgenden Schritte aus: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +2. Greifen Sie auf die erste Folie zu. +3. Fügen Sie ein Diagramm mit Standarddaten hinzu. +4. Ermitteln Sie den tatsächlichen Maximalwert der Achse. +5. Ermitteln Sie den tatsächlichen Minimalwert der Achse. +6. Ermitteln Sie die tatsächliche Haupteinheit der Achse. +7. Ermitteln Sie die tatsächliche Nebeneinheit der Achse. +8. Ermitteln Sie die tatsächliche Skala der Haupteinheit der Achse. +9. Ermitteln Sie die tatsächliche Skala der Nebeneinheit der Achse. + +Dieser Beispielcode – eine Umsetzung der oben genannten Schritte – zeigt Ihnen, wie Sie die erforderlichen Werte in JavaScript erhalten: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // Speichert die Präsentation + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Daten zwischen Achsen austauschen** + +Aspose.Slides ermöglicht es Ihnen, die Daten zwischen den Achsen schnell zu vertauschen – die auf der vertikalen Achse (y‑Achse) dargestellten Daten werden zur horizontalen Achse (x‑Achse) und umgekehrt verschoben. + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie den Datentausch zwischen den Achsen in einem Diagramm durchführen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // Wechselt Zeilen und Spalten + chart.getChartData().switchRowColumn(); + // Speichert die Präsentation + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Vertikale Achse für Liniendiagramme deaktivieren** + +Dieser JavaScript‑Code zeigt Ihnen, wie Sie die vertikale Achse für ein Liniendiagramm ausblenden: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Horizontale Achse für Liniendiagramme deaktivieren** + +Dieser Code zeigt Ihnen, wie Sie die horizontale Achse für ein Liniendiagramm ausblenden: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Kategorienachse ändern** + +Mit der Eigenschaft **CategoryAxisType** können Sie Ihren bevorzugten Kategorienachsentyp (**date** oder **text**) festlegen. Dieser JavaScript‑Code demonstriert die Vorgehensweise: +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Datumsformat für den Wert der Kategorienachse festlegen** + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, das Datumsformat für einen Wert der Kategorienachse festzulegen. Die Vorgehensweise wird in diesem JavaScript‑Code gezeigt: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **Drehwinkel für Diagrammachsentitel festlegen** + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, den Drehwinkel für einen Diagrammachsentitel festzulegen. Dieser JavaScript‑Code demonstriert die Vorgehensweise: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Positionsachse in einer Kategorien‑ oder Werteachse festlegen** + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, die Positionsachse in einer Kategorien‑ oder Werteachse festzulegen. Dieser JavaScript‑Code zeigt, wie die Aufgabe durchgeführt wird: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Anzeigeeinheits‑Label auf der Werteachse des Diagramms aktivieren** + +Aspose.Slides für Node.js über Java ermöglicht es Ihnen, ein Diagramm so zu konfigurieren, dass ein Einheit‑Label auf seiner Werteachse angezeigt wird. Dieser JavaScript‑Code demonstriert die Vorgehensweise: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Wie lege ich den Wert fest, an dem eine Achse die andere schneidet (Achsenschnitt)?** + +Achsen bieten eine [crossing setting](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/)‑Einstellung: Sie können wählen, ob sie bei Null, beim maximalen Kategorien‑/Wert oder bei einem bestimmten numerischen Wert schneiden. Das ist nützlich, um die X‑Achse nach oben oder unten zu verschieben oder um eine Basislinie hervorzuheben. + +**Wie kann ich die Tick‑Beschriftungen relativ zur Achse positionieren (neben, außen, innen)?** + +Stellen Sie die [label position](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/) auf "cross", "outside" oder "inside" ein. Dadurch wird die Lesbarkeit beeinflusst und insbesondere bei kleinen Diagrammen Platz gespart. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..4166c4298c --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: Diagramm-Datenbeschriftung +type: docs +url: /de/nodejs-java/chart-data-label/ +keywords: "Diagrammdatenbeschriftung, Beschriftungsabstand, Java, Aspose.Slides für Node.js via Java" +description: "PowerPoint-Diagrammdatenbeschriftung und Abstand in JavaScript festlegen" +--- + +Datenbeschriftungen in einem Diagramm zeigen Details zur Diagrammdatenreihe oder zu einzelnen Datenpunkten. Sie ermöglichen es den Lesern, Datenreihen schnell zu identifizieren, und sie machen Diagramme leichter verständlich. + +## **Präzision der Daten in Diagrammdatenbeschriftungen festlegen** + +Dieser JavaScript‑Code zeigt, wie man die Datenpräzision in einer Diagrammbeschriftung einstellt: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Prozentwerte als Beschriftungen anzeigen** + +Aspose.Slides für Node.js über Java ermöglicht es, Prozentbeschriftungen in angezeigten Diagrammen festzulegen. Dieser JavaScript‑Code demonstriert die Vorgehensweise: +```javascript +// Erstellt eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Holt die erste Folie + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // Speichert die Präsentation mit dem Diagramm + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Prozentzeichen bei Diagrammbeschriftungen festlegen** + +Dieser JavaScript‑Code zeigt, wie man das Prozentzeichen für eine Diagrammbeschriftung festlegt: +```javascript +// Erstellt eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Holt einen Verweis auf die Folie über ihren Index + var slide = pres.getSlides().get_Item(0); + // Erstellt das PercentsStackedColumn-Diagramm auf einer Folie + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // Setzt NumberFormatLinkedToSource auf false + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // Holt das Arbeitsblatt mit den Diagrammdaten + var workbook = chart.getChartData().getChartDataWorkbook(); + // Fügt neue Serie hinzu + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // Setzt die Füllfarbe der Serie + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Setzt die Eigenschaften des LabelFormat + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // Fügt eine weitere Serie hinzu + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // Setzt Fülltyp und Farbe + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // Schreibt die Präsentation auf die Festplatte + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Beschriftungsabstände von der Achse festlegen** + +Dieser JavaScript‑Code zeigt, wie man den Abstand der Beschriftung von einer Kategorienachse einstellt, wenn man ein Diagramm hat, das anhand von Achsen geplottet wird: +```javascript +// Erstellt eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Holt einen Verweis auf die Folie + var sld = pres.getSlides().get_Item(0); + // Erstellt ein Diagramm auf der Folie + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // Setzt den Beschriftungsabstand von einer Achse + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // Schreibt die Präsentation auf die Festplatte + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Beschriftungsposition anpassen** + +Wenn Sie ein Diagramm erstellen, das keine Achse verwendet, wie z.B. ein Kreisdiagramm, können die Datenbeschriftungen des Diagramms zu nahe am Rand liegen. In einem solchen Fall müssen Sie die Position der Datenbeschriftung anpassen, sodass die Führungs­linien klar dargestellt werden. + +Dieser JavaScript‑Code zeigt, wie man die Beschriftungsposition in einem Kreisdiagramm anpasst: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **FAQ** + +**Wie kann ich verhindern, dass Datenbeschriftungen bei dichten Diagrammen überlappen?** + +Kombinieren Sie automatische Beschriftungsplatzierung, Führungs­linien und reduzierte Schriftgröße; bei Bedarf können Sie einige Felder (z. B. die Kategorie) ausblenden oder Beschriftungen nur für extreme/Schlüsselpunkte anzeigen. + +**Wie kann ich Beschriftungen nur für null, negative oder leere Werte deaktivieren?** + +Filtern Sie Datenpunkte, bevor Sie Beschriftungen aktivieren, und schalten Sie die Anzeige für Werte von 0, negative Werte oder fehlende Werte gemäß einer definierten Regel aus. + +**Wie kann ich einen konsistenten Beschriftungsstil beim Exportieren in PDF/Bilder sicherstellen?** + +Legen Sie Schriftarten (Familie, Größe) explizit fest und stellen Sie sicher, dass die Schriftart auf der Rendering‑Seite verfügbar ist, um ein Zurückgreifen auf Ersatzschriften zu vermeiden. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..09ccffb6c6 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: Diagramm-Datenmarker +type: docs +url: /de/nodejs-java/chart-data-marker/ +--- + +## **Diagramm-Marker-Optionen festlegen** + +Die Marker können für Datenpunkte in bestimmten Diagrammserien festgelegt werden. Um Diagramm-Marker-Optionen zu setzen, befolgen Sie die unten aufgeführten Schritte: + +- Instanziieren Sie die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Erstellen Sie das Standarddiagramm. +- Legen Sie das Bild fest. +- Nehmen Sie die erste Diagrammserie. +- Fügen Sie einen neuen Datenpunkt hinzu. +- Schreiben Sie die Präsentation auf die Festplatte. + +Im nachstehenden Beispiel haben wir die Diagramm-Marker-Optionen auf Ebene der Datenpunkte festgelegt. +```javascript +// Erstellen einer leeren Präsentation +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Erstellen des Standarddiagramms + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // Abrufen des Index des Standard-Chart-Daten-Arbeitsblatts + var defaultWorksheetIndex = 0; + // Abrufen des Chart-Daten-Arbeitsblatts + var fact = chart.getChartData().getChartDataWorkbook(); + // Demo-Serie löschen + chart.getChartData().getSeries().clear(); + // Neue Serie hinzufügen + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // Bild 1 laden + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // Bild 2 laden + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // Erste Diagrammserie übernehmen + var series = chart.getChartData().getSeries().get_Item(0); + // Neuen Punkt (1:3) dort hinzufügen. + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // Ändern des Chart-Serien-Markers + series.getMarker().setSize(15); + // Präsentation mit Diagramm speichern + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Welche Markerformen sind standardmäßig verfügbar?** + +Standardformen sind verfügbar (Kreis, Quadrat, Raute, Dreieck usw.); die Liste wird durch die Aufzählung [MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/) definiert. Wenn Sie eine nicht‑standardmäßige Form benötigen, verwenden Sie einen Marker mit Bildfüllung, um benutzerdefinierte Visuals zu emulieren. + +**Werden Marker beim Export eines Diagramms in ein Bild oder SVG beibehalten?** + +Ja. Beim Rendern von Diagrammen in [Rasterformate](/slides/de/nodejs-java/convert-powerpoint-to-png/) oder beim Speichern von [Formen als SVG](/slides/de/nodejs-java/render-a-slide-as-an-svg-image/) behalten Marker ihr Aussehen und ihre Einstellungen bei, einschließlich Größe, Füllung und Kontur. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..07708f164c --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: Diagramm-Datentabelle +type: docs +url: /de/nodejs-java/chart-data-table/ +--- + +## **Schriftart‑Eigenschaften für Diagramm‑Datentabelle festlegen** + +Aspose.Slides für Node.js über Java bietet Unterstützung zum Ändern der Farbe von Kategorien in einer Serienfarbe. + +1. Instanziieren Sie ein [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klassenobjekt. +1. Fügen Sie der Folie ein Diagramm hinzu. +1. Setzen Sie die Diagrammtabelle. +1. Setzen Sie die Schriftgröße. +1. Speichern Sie die modifizierte Präsentation. + +Unten steht ein Beispiel. +```javascript +// Leere Präsentation erstellen +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich kleine Legenden‑Schlüssel neben den Werten in der Diagrammdaten‑tabelle anzeigen?** + +Ja. Die Datentabelle unterstützt [Legenden‑Schlüssel](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/), und Sie können sie ein- oder ausschalten. + +**Wird die Datentabelle beim Exportieren der Präsentation in PDF, HTML oder Bilder beibehalten?** + +Ja. Aspose.Slides rendert das Diagramm als Teil der Folie, sodass das exportierte [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/de/nodejs-java/convert-powerpoint-to-html/)/[image](/slides/de/nodejs-java/convert-powerpoint-to-png/) das Diagramm mit seiner Datentabelle enthält. + +**Werden Datentabellen für Diagramme unterstützt, die aus einer Vorlagendatei stammen?** + +Ja. Für jedes Diagramm, das aus einer bestehenden Präsentation oder Vorlage geladen wird, können Sie mithilfe der Diagrammeigenschaften prüfen und ändern, ob eine Datentabelle [angezeigt wird](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) angezeigt wird. + +**Wie kann ich schnell herausfinden, welche Diagramme in einer Datei die Datentabelle aktiviert haben?** + +Untersuchen Sie die Eigenschaft jedes Diagramms, die angibt, ob die Datentabelle [angezeigt wird](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) und durchlaufen Sie die Folien, um die Diagramme zu identifizieren, bei denen sie aktiviert ist. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..95eee65e84 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,113 @@ +--- +title: Diagrammlegende +type: docs +url: /de/nodejs-java/chart-legend/ +--- + +## **Legendenpositionierung** + +Um die Legenden‑Eigenschaften festzulegen, folgen Sie bitte den untenstehenden Schritten: + +- Erzeugen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Holen Sie eine Referenz zur Folie. +- Fügen Sie ein Diagramm zur Folie hinzu. +- Setzen Sie die Eigenschaften der Legende. +- Schreiben Sie die Präsentation als PPTX-Datei. + +Im nachfolgenden Beispiel haben wir die Position und Größe der Diagrammlegende festgelegt. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Hole Referenz der Folie + var slide = pres.getSlides().get_Item(0); + // Füge ein gruppiertes Säulendiagramm auf der Folie hinzu + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // Setze Legenden-Eigenschaften + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // Schreibe die Präsentation auf die Festplatte + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Schriftgröße der Legende festlegen** + +Aspose.Slides für Node.js über Java ermöglicht es Entwicklern, die Schriftgröße der Legende festzulegen. Bitte folgen Sie den untenstehenden Schritten: + +- Instanziieren Sie die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Erstellen Sie das Standarddiagramm. +- Setzen Sie die Schriftgröße. +- Setzen Sie den minimalen Achsenwert. +- Setzen Sie den maximalen Achsenwert. +- Schreiben Sie die Präsentation auf die Festplatte. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Schriftgröße einzelner Legendeinträge festlegen** + +Aspose.Slides für Node.js über Java ermöglicht es Entwicklern, die Schriftgröße einzelner Legendeinträge festzulegen. Bitte folgen Sie den untenstehenden Schritten: + +- Instanziieren Sie die Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Erstellen Sie das Standarddiagramm. +- Zugriff auf den Legendeintrag. +- Setzen Sie die Schriftgröße. +- Setzen Sie den minimalen Achsenwert. +- Setzen Sie den maximalen Achsenwert. +- Schreiben Sie die Präsentation auf die Festplatte. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich die Legende aktivieren, sodass das Diagramm automatisch Platz dafür reserviert, anstatt sie zu überlagern?** + +Ja. Verwenden Sie den Nicht‑Overlay‑Modus ([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/)); in diesem Fall verkleinert sich der Plot‑Bereich, um die Legende aufzunehmen. + +**Kann ich mehrzeilige Legendenbeschriftungen erstellen?** + +Ja. Lange Beschriftungen werden automatisch umgebrochen, wenn nicht genug Platz vorhanden ist; erzwungene Zeilenumbrüche werden über Zeilenumbruch‑Zeichen im Seriennamen unterstützt. + +**Wie kann ich die Legende an das Farbschema des Präsentationsthemas anpassen?** + +Setzen Sie keine expliziten Farben/Füllungen/Schriften für die Legende oder deren Text. Sie erben dann vom Thema und werden bei einer Design‑Änderung korrekt aktualisiert. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..759c18a746 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: Diagramm-Plotbereich +type: docs +url: /de/nodejs-java/chart-plot-area/ +--- + +## **Breite und Höhe des Diagramm-Plotbereichs abrufen** + +Aspose.Slides für Node.js über Java bietet eine einfache API für . + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Greifen Sie auf die erste Folie zu. +1. Fügen Sie ein Diagramm mit den Standarddaten hinzu. +1. Rufen Sie die Methode [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) auf, um die tatsächlichen Werte zu erhalten. +1. Ermittelt die tatsächliche X-Position (links) des Diagrammelements relativ zur linken oberen Ecke des Diagramms. +1. Ermittelt den tatsächlichen oberen Rand des Diagrammelements relativ zur linken oberen Ecke des Diagramms. +1. Ermittelt die tatsächliche Breite des Diagrammelements. +1. Ermittelt die tatsächliche Höhe des Diagrammelements. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Layout-Modus des Diagramm-Plotbereichs festlegen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zum Festlegen des Layout-Modus des Diagramm-Plotbereichs. Die Methoden [**setLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#setLayoutTargetType-int-) und [**getLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#getLayoutTargetType--) wurden zur Klasse [**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea) hinzugefügt. Wenn das Layout des Plotbereichs manuell definiert wird, gibt diese Eigenschaft an, ob der Plotbereich nach seinem Inneren (ohne Achsen und Achsenbeschriftungen) oder nach außen (einschließlich Achsen und Achsenbeschriftungen) ausgerichtet werden soll. Es gibt zwei mögliche Werte, die im Aufzählungstyp [**LayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType) definiert sind. + +- [**LayoutTargetType.Inner**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Inner) - gibt an, dass die Größe des Plotbereichs die Größe des Plotbereichs bestimmt, ohne die Tick-Markierungen und Achsenbeschriftungen. +- [**LayoutTargetType.Outer**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Outer) - gibt an, dass die Größe des Plotbereichs die Größe des Plotbereichs, die Tick-Markierungen und die Achsenbeschriftungen bestimmt. + +Beispielcode ist unten angegeben. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**In welchen Einheiten werden tatsächliches X, tatsächliches Y, tatsächliche Breite und tatsächliche Höhe zurückgegeben?** + +In Punkten; 1 Zoll = 72 Punkte. Dies sind die Koordinateneinheiten von Aspose.Slides. + +**Wie unterscheidet sich der Plotbereich vom Diagrammbereich hinsichtlich des Inhalts?** + +Der Plotbereich ist der Datenzeichnungsbereich (Serien, Gitternetzlinien, Trendlinien usw.); der Diagrammbereich umfasst die umgebenden Elemente (Titel, Legende usw.). In 3D-Diagrammen beinhaltet der Plotbereich außerdem die Wände/Boden und die Achsen. + +**Wie werden X, Y, Breite und Höhe des Plotbereichs interpretiert, wenn das Layout manuell erfolgt?** + +Sie sind Bruchteile (0–1) der Gesamtabmessungen des Diagramms; in diesem Modus ist die automatische Positionierung deaktiviert und die von Ihnen festgelegten Bruchteile werden verwendet. + +**Warum änderte sich die Position des Plotbereichs nach dem Hinzufügen/Bewegen der Legende?** + +Die Legende befindet sich im Diagrammbereich außerhalb des Plotbereichs, beeinflusst jedoch das Layout und den verfügbaren Platz, sodass der Plotbereich verschoben werden kann, wenn die automatische Positionierung aktiv ist. (Dies ist das Standardverhalten bei PowerPoint-Diagrammen.) \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..8a2970b209 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,328 @@ +--- +title: Diagrammserien +type: docs +url: /de/nodejs-java/chart-series/ +keywords: "Diagrammserien, Serienfarbe, PowerPoint-Präsentation, Java, Aspose.Slides für Node.js via Java" +description: "Diagrammserien in PowerPoint-Präsentationen in JavaScript" +--- + +Eine Serie ist eine Zeile oder Spalte von Zahlen, die in einem Diagramm dargestellt wird. + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **Diagrammserien-Überlappung festlegen** + +Mit der [ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap) Methode können Sie festlegen, wie stark Balken und Säulen in einem 2D-Diagramm überlappen sollen (Bereich: -100 bis 100). Diese Eigenschaft gilt für alle Serien der übergeordneten Seriengruppe: Sie ist eine Projektion der entsprechenden Gruppeneigenschaft. Daher ist diese Eigenschaft schreibgeschützt. + +Verwenden Sie die Lese/Schreib-Eigenschaft `ParentSeriesGroup.getOverlap`, um Ihren gewünschten Wert für `Overlap` festzulegen. + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Fügen Sie einem Folienlayout ein gruppiertes Säulendiagramm hinzu. +1. Greifen Sie auf die erste Diagrammserie zu. +1. Greifen Sie auf die `ParentSeriesGroup` der Diagrammserie zu und setzen Sie Ihren gewünschten Überlappungswert für die Serie. +1. Schreiben Sie die geänderte Präsentation in eine PPTX-Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Fügt Diagramm hinzu + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // Setzt die Serienüberlappung + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // Schreibt die Präsentationsdatei auf die Festplatte + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Serienfarbe ändern** + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, die Farbe einer Serie wie folgt zu ändern: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Fügen Sie ein Diagramm zur Folie hinzu. +1. Greifen Sie auf die Serie zu, deren Farbe Sie ändern möchten. +1. Legen Sie Ihren gewünschten Fülltyp und die Füllfarbe fest. +1. Speichern Sie die geänderte Präsentation. + +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Farbe der Serienkategorie ändern** + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, die Farbe einer Serienkategorie wie folgt zu ändern: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Fügen Sie ein Diagramm zur Folie hinzu. +1. Greifen Sie auf die Serienkategorie zu, deren Farbe Sie ändern möchten. +1. Legen Sie Ihren gewünschten Fülltyp und die Füllfarbe fest. +1. Speichern Sie die geänderte Präsentation. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Serienname ändern** + +Standardmäßig sind die Legendenbeschriftungen eines Diagramms die Inhalte der Zellen über jeder Spalte oder Zeile der Daten. + +In unserem Beispiel (Beispielbild), + +* die Spalten sind *Series 1, Series 2,* und *Series 3*; +* die Zeilen sind *Category 1, Category 2, Category 3,* und *Category 4.* + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, einen Seriennamen in den Diagrammdaten und der Legende zu aktualisieren oder zu ändern. + +Dieser JavaScript-Code zeigt, wie Sie den Namen einer Serie in den Diagrammdaten `ChartDataWorkbook` ändern: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Dieser JavaScript-Code zeigt, wie Sie den Namen einer Serie in ihrer Legende über `Series` ändern: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Füllfarbe für Diagrammserie festlegen** + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, die automatische Füllfarbe für Diagrammserien im Diagrammbereich wie folgt festzulegen: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Holen Sie sich den Verweis auf eine Folie über deren Index. +1. Fügen Sie ein Diagramm mit Standarddaten basierend auf Ihrem gewünschten Typ hinzu (im Beispiel unten verwenden wir `ChartType.ClusteredColumn`). +1. Greifen Sie auf die Diagrammserie zu und setzen Sie die Füllfarbe auf Automatisch. +1. Speichern Sie die Präsentation in einer PPTX-Datei. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Erzeugt ein gruppiertes Säulendiagramm + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // Setzt das Füllformat der Serien auf automatisch + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // Schreibt die Präsentationsdatei auf die Festplatte + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Invertierte Füllfarben für Diagrammserie festlegen** + +Aspose.Slides ermöglicht es Ihnen, die invertierten Füllfarben für Diagrammserien im Diagrammbereich wie folgt festzulegen: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Holen Sie sich den Verweis auf eine Folie über deren Index. +1. Fügen Sie ein Diagramm mit Standarddaten basierend auf Ihrem gewünschten Typ hinzu (im Beispiel unten verwenden wir `ChartType.ClusteredColumn`). +1. Greifen Sie auf die Diagrammserie zu und setzen Sie die Füllfarbe auf Invertiert. +1. Speichern Sie die Präsentation in einer PPTX-Datei. + +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // Fügt neue Serien und Kategorien hinzu + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // Nimmt die erste Diagrammserie und füllt deren Seriendaten. + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Serie invertieren, wenn Wert negativ ist** + +Aspose.Slides ermöglicht es Ihnen, Invertierungen über die `ChartDataPoint.setInvertIfNegative`‑Methode festzulegen. Wenn eine Invertierung über die Eigenschaften gesetzt wird, invertiert der Datenpunkt seine Farben, sobald er einen negativen Wert erhält. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Daten bestimmter Datenpunkte löschen** + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, die `DataPoints`‑Daten einer bestimmten Diagrammserie wie folgt zu löschen: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +2. Holen Sie sich den Verweis auf eine Folie über deren Index. +3. Holen Sie sich den Verweis auf ein Diagramm über dessen Index. +4. Iterieren Sie über alle Diagramm-`DataPoints` und setzen Sie `XValue` und `YValue` auf null. +5. Löschen Sie alle`DataPoints` für die spezifische Diagrammserie. +6. Schreiben Sie die geänderte Präsentation in eine PPTX-Datei. + +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Lückenbreite der Serie festlegen** + +Aspose.Slides für Node.js via Java ermöglicht es Ihnen, die Lückenbreite einer Serie über die **`GapWidth`**‑Eigenschaft wie folgt festzulegen: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Greifen Sie auf die erste Folie zu. +1. Fügen Sie ein Diagramm mit Standarddaten hinzu. +1. Greifen Sie auf irgendeine Diagrammserie zu. +1. Setzen Sie die Eigenschaft `GapWidth`. +1. Schreiben Sie die geänderte Präsentation in eine PPTX-Datei. + +```javascript +// Erstellt leere Präsentation +var pres = new aspose.slides.Presentation(); +try { + // Greift auf die erste Folie der Präsentation zu + var slide = pres.getSlides().get_Item(0); + // Fügt ein Diagramm mit Standarddaten hinzu + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // Setzt den Index des Diagrammdatenblatts + var defaultWorksheetIndex = 0; + // Holt das Diagrammdaten-Arbeitsblatt + var fact = chart.getChartData().getChartDataWorkbook(); + // Fügt Serien hinzu + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Fügt Kategorien hinzu + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Nimmt die zweite Diagrammserie + var series = chart.getChartData().getSeries().get_Item(1); + // Befüllt die Seriendaten + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Setzt den GapWidth-Wert + series.getParentSeriesGroup().setGapWidth(50); + // Speichert die Präsentation auf die Festplatte + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Gibt es ein Limit, wie viele Serien ein einzelnes Diagramm enthalten kann?** + +Aspose.Slides setzt keine feste Obergrenze für die Anzahl der hinzuzufügenden Serien. Die praktische Grenze wird durch die Lesbarkeit des Diagramms und den verfügbaren Speicher Ihrer Anwendung bestimmt. + +**Was ist, wenn die Säulen innerhalb eines Clusters zu dicht beieinander oder zu weit auseinander liegen?** + +Passen Sie die Lückenbreite‑Einstellung für diese Serie (oder deren übergeordnete Seriengruppe) an. Durch Erhöhen des Wertes vergrößern Sie den Abstand zwischen den Säulen, durch Verringern bringen Sie sie näher zusammen. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..f024dff4bf --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: Fehlerbalken +type: docs +url: /de/nodejs-java/error-bar/ +--- + +## **Fehlerbalken hinzufügen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zur Verwaltung von Fehlerbalkenwerten. Der Beispielcode gilt, wenn ein benutzerdefinierter Werttyp verwendet wird. Um einen Wert anzugeben, verwenden Sie die **ErrorBarCustomValues**‑Eigenschaft eines bestimmten Datenpunkts in der Sammlung [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) der Serie: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Fügen Sie ein Blasendiagramm auf der gewünschten Folie hinzu. +1. Greifen Sie auf die erste Diagrammserie zu und setzen Sie das X‑Fehlerbalken‑Format. +1. Greifen Sie auf die erste Diagrammserie zu und setzen Sie das Y‑Fehlerbalken‑Format. +1. Setzen der Balkenwerte und des Formats. +1. Schreiben Sie die modifizierte Präsentation in eine PPTX‑Datei. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Erstelle ein Blasendiagramm + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Füge Fehlerbalken hinzu und setze dessen Format + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // Speichere die Präsentation + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Benutzerdefinierten Fehlerbalkenwert hinzufügen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zur Verwaltung benutzerdefinierter Fehlerbalkenwerte. Der Beispielcode gilt, wenn die Eigenschaft [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) den Wert **Custom** hat. Um einen Wert anzugeben, verwenden Sie die **ErrorBarCustomValues**‑Eigenschaft eines bestimmten Datenpunkts in der Sammlung [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) der Serie: + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Fügen Sie ein Blasendiagramm auf der gewünschten Folie hinzu. +1. Greifen Sie auf die erste Diagrammserie zu und setzen Sie das X‑Fehlerbalken‑Format. +1. Greifen Sie auf die erste Diagrammserie zu und setzen Sie das Y‑Fehlerbalken‑Format. +1. Greifen Sie auf die einzelnen Datenpunkte der Diagrammserie zu und setzen Sie die Fehlerbalkenwerte für jeden Datenpunkt der Serie. +1. Setzen der Balkenwerte und des Formats. +1. Schreiben Sie die modifizierte Präsentation in eine PPTX‑Datei. +```javascript +// Erstelle eine Instanz der Presentation-Klasse +var pres = new aspose.slides.Presentation(); +try { + // Erstelle ein Blasendiagramm + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Hinzufügen benutzerdefinierter Fehlerbalken und Festlegen des Formats + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // Zugriff auf den Datenpunkt der Diagrammserie und Festlegen der Fehlerbalkenwerte für + // einzelnen Punkt + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // Festlegen der Fehlerbalken für Punkte der Diagrammserie + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // Speichern der Präsentation + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Was passiert mit Fehlerbalken beim Exportieren einer Präsentation in PDF oder Bilder?** + +Sie werden als Teil des Diagramms gerendert und bei der Konvertierung zusammen mit der restlichen Diagrammformatierung erhalten, vorausgesetzt, es wird eine kompatible Version oder ein Renderer verwendet. + +**Können Fehlerbalken mit Markern und Datenbeschriftungen kombiniert werden?** + +Ja. Fehlerbalken sind ein separates Element und kompatibel mit Markern und Datenbeschriftungen; überschneiden sich die Elemente, müssen Sie möglicherweise die Formatierung anpassen. + +**Wo finde ich die Liste der Eigenschaften und Aufzählungen für die Arbeit mit Fehlerbalken in der API?** + +In der API‑Referenz: die Klasse [ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) und die zugehörigen Aufzählungen [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) und [ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/). \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..afc898b306 --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: Trendlinie +type: docs +url: /de/nodejs-java/trend-line/ +--- + +## **Trendlinie hinzufügen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zum Verwalten verschiedener Diagramm‑Trendlinien: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)-Klasse. +1. Holen Sie sich die Referenz einer Folie anhand ihres Index. +1. Fügen Sie ein Diagramm mit Standarddaten und einem gewünschten Typ hinzu (in diesem Beispiel wird ChartType.ClusteredColumn verwendet). +1. Exponential‑Trendlinie für Diagramm‑Reihe 1 hinzufügen. +1. Lineare Trendlinie für Diagramm‑Reihe 1 hinzufügen. +1. Logarithmische Trendlinie für Diagramm‑Reihe 2 hinzufügen. +1. Gleitender‑Durchschnitt‑Trendlinie für Diagramm‑Reihe 2 hinzufügen. +1. Polynomial‑Trendlinie für Diagramm‑Reihe 3 hinzufügen. +1. Power‑Trendlinie für Diagramm‑Reihe 3 hinzufügen. +1. Schreiben Sie die geänderte Präsentation in eine PPTX‑Datei. + +Der folgende Code wird verwendet, um ein Diagramm mit Trendlinien zu erstellen. +```javascript +// Eine Instanz der Presentation-Klasse erstellen +var pres = new aspose.slides.Presentation(); +try { + // Erstelle ein gruppiertes Säulendiagramm + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // Exponentielle Trendlinie für Diagrammreihe 1 hinzufügen + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // Lineare Trendlinie für Diagrammreihe 1 hinzufügen + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Logarithmische Trendlinie für Diagrammreihe 2 hinzufügen + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // Gleitender Durchschnitt Trendlinie für Diagrammreihe 2 hinzufügen + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // Polynomialtrendlinie für Diagrammreihe 3 hinzufügen + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // Potenztrendlinie für Diagrammreihe 3 hinzufügen + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // Präsentation speichern + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Benutzerdefinierte Linie hinzufügen** + +Aspose.Slides für Node.js über Java bietet eine einfache API zum Hinzufügen benutzerdefinierter Linien in ein Diagramm. Um eine einfache gerade Linie zu einer ausgewählten Folie der Präsentation hinzuzufügen, führen Sie die folgenden Schritte aus: + +- Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)-Klasse +- Holen Sie sich die Referenz einer Folie über ihren Index +- Erstellen Sie ein neues Diagramm mit der AddChart‑Methode des Shapes‑Objekts +- Fügen Sie mit der AddAutoShape‑Methode des Shapes‑Objekts eine AutoShape vom Typ Linie hinzu +- Setzen Sie die Farbe der Formlinien. +- Schreiben Sie die geänderte Präsentation als PPTX‑Datei + +Der folgende Code wird verwendet, um ein Diagramm mit benutzerdefinierten Linien zu erstellen. +```javascript +// Eine Instanz der Presentation-Klasse erstellen +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Was bedeuten „forward“ und „backward“ bei einer Trendlinie?** + +Sie sind die Längen der Trendlinie, die nach vorne bzw. nach hinten projiziert werden: Bei Streu‑ (XY‑)Diagrammen in Achseneinheiten; bei Nicht‑Streu‑Diagrammen in Anzahl der Kategorien. Nur nicht‑negative Werte sind zulässig. + +**Wird die Trendlinie beim Exportieren der Präsentation nach PDF oder SVG bzw. beim Rendern einer Folie zu einem Bild beibehalten?** + +Ja. Aspose.Slides konvertiert Präsentationen in [PDF](/slides/de/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/de/nodejs-java/render-a-slide-as-an-svg-image/) und rendert Diagramme zu Bildern; Trendlinien bleiben dabei als Teil des Diagramms erhalten. Es gibt zudem eine Methode, um ein Bild des Diagramms selbst zu [exportieren](/slides/de/nodejs-java/create-shape-thumbnails/). \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..2f0f62d04e --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,328 @@ +--- +title: Diagrammformatierung +type: docs +weight: 60 +url: /de/nodejs-java/chart-formatting/ +--- + +## **Diagramm‑Entitäten formatieren** + +Aspose.Slides for Node.js via Java ermöglicht Entwicklern, benutzerdefinierte Diagramme von Grund auf zu ihren Folien hinzuzufügen. Dieser Artikel erklärt, wie verschiedene Diagramm‑Entitäten formatiert werden, einschließlich Kategorie‑ und Werte‑Achse des Diagramms. + +Aspose.Slides for Node.js via Java bietet eine einfache API zum Verwalten verschiedener Diagramm‑Entitäten und zum Formatieren mit benutzerdefinierten Werten: + +1. Erstellen Sie eine Instanz der [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klasse. +1. Holen Sie sich die Referenz einer Folie über deren Index. +1. Fügen Sie ein Diagramm mit Standarddaten sowie dem gewünschten Typ hinzu (in diesem Beispiel verwenden wir ChartType.LineWithMarkers). +1. Greifen Sie auf die Value Axis des Diagramms zu und setzen Sie die folgenden Eigenschaften: + 1. Festlegen des **Line format** für die Hauptgitternetzlinien der Value Axis + 1. Festlegen des **Line format** für die Hilfsgitternetzlinien der Value Axis + 1. Festlegen des **Number Format** für die Value Axis + 1. Festlegen von **Min, Max, Major und Minor units** für die Value Axis + 1. Festlegen von **Text Properties** für die Daten der Value Axis + 1. Festlegen des **Title** für die Value Axis + 1. Festlegen des **Line Format** für die Value Axis +1. Greifen Sie auf die Category Axis des Diagramms zu und setzen Sie die folgenden Eigenschaften: + 1. Festlegen des **Line format** für die Hauptgitternetzlinien der Category Axis + 1. Festlegen des **Line format** für die Hilfsgitternetzlinien der Category Axis + 1. Festlegen von **Text Properties** für die Daten der Category Axis + 1. Festlegen des **Title** für die Category Axis + 1. Festlegen der **Label Positioning** für die Category Axis + 1. Festlegen des **Rotation Angle** für die Beschriftungen der Category Axis +1. Greifen Sie auf die Legend des Diagramms zu und setzen Sie die **Text Properties** dafür +1. Legen Sie fest, dass Diagramm‑Legenden angezeigt werden, ohne das Diagramm zu überlappen +1. Greifen Sie auf die **Secondary Value Axis** des Diagramms zu und setzen Sie die folgenden Eigenschaften: + 1. Aktivieren Sie die sekundäre **Value Axis** + 1. Festlegen des **Line Format** für die Secondary Value Axis + 1. Festlegen des **Number Format** für die Secondary Value Axis + 1. Festlegen von **Min, Max, Major und Minor units** für die Secondary Value Axis +1. Plotten Sie nun die erste Diagramm‑Serie auf der Secondary Value Axis +1. Setzen Sie die Füllfarbe der Rückwand des Diagramms +1. Setzen Sie die Füllfarbe des Plot‑Bereichs des Diagramms +1. Schreiben Sie die geänderte Präsentation in eine PPTX‑Datei +```javascript +// Instanz der Presentation-Klasse erstellen +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Beispieldiagramm hinzufügen + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // Diagrammtitel festlegen + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Format der Hauptgitternetzlinien für die Werteachse festlegen + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Format der Hilfsgitternetzlinien für die Werteachse festlegen + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Zahlenformat der Werteachse festlegen + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // Maximal- und Minimalwerte des Diagramms festlegen + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // Text-Eigenschaften der Werteachse festlegen + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Titel der Werteachse festlegen + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Format der Hauptgitternetzlinien für die Kategorienachse festlegen + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // Format der Hilfsgitternetzlinien für die Kategorienachse festlegen + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Text-Eigenschaften der Kategorienachse festlegen + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // Titel der Kategorienachse festlegen + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Position der Beschriftungen der Kategorienachse festlegen + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // Drehwinkel der Beschriftungen der Kategorienachse festlegen + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // Text-Eigenschaften der Legenden festlegen + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // Legenden anzeigen, ohne das Diagramm zu überlappen + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // Sekundäre Werteachse festlegen + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // Zahlenformat der sekundären Werteachse festlegen + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // Maximal- und Minimalwerte des Diagramms festlegen + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // Farbe der Diagrammhintergrundwand festlegen + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Farbe des Plotbereichs festlegen + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // Präsentation speichern + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Schriftart‑Eigenschaften für Diagramm festlegen** + +Aspose.Slides for Node.js via Java bietet Unterstützung zum Festlegen von Schriftarteigenschaften für das Diagramm. Bitte folgen Sie den nachstehenden Schritten, um die Schriftarteigenschaften für das Diagramm festzulegen. + +- Instanziieren Sie ein [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) Klassenobjekt. +- Fügen Sie ein Diagramm auf der Folie hinzu. +- Setzen Sie die Schriftgröße. +- Speichern Sie die geänderte Präsentation. + +Nachstehendes Beispiel wird gegeben. +```javascript +// Instanz der Presentation-Klasse erstellen +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Format von Numerischen Werten festlegen** + +Aspose.Slides for Node.js via Java bietet eine einfache API zum Verwalten des Diagrammdatenformats: + +1. Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klasse. +1. Holen Sie sich die Referenz einer Folie über deren Index. +1. Fügen Sie ein Diagramm mit Standarddaten sowie dem gewünschten Typ hinzu (dieses Beispiel verwendet **ChartType.ClusteredColumn**). +1. Setzen Sie das vordefinierte Zahlenformat aus den möglichen vordefinierten Werten. +1. Durchlaufen Sie jede Zelle der Diagrammdaten in jeder Diagramm‑Serie und setzen Sie das Zahlenformat der Diagrammdaten. +1. Speichern Sie die Präsentation. +1. Setzen Sie das benutzerdefinierte Zahlenformat. +1. Durchlaufen Sie die Diagrammdatenzellen in jeder Diagramm‑Serie und setzen Sie ein anderes Zahlenformat. +1. Speichern Sie die Präsentation. +```javascript +// Instanz der Presentation-Klasse erstellen +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Präsentationsfolie + var slide = pres.getSlides().get_Item(0); + // Ein Standard-ClusteredColumn-Diagramm hinzufügen + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // Zugriff auf die Diagramm-Seriensammlung + var series = chart.getChartData().getSeries(); + // Durch alle Diagrammserien iterieren + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // Durch jede Datenzelle in der Serie iterieren + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // Zahlenformat festlegen + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // Präsentation speichern + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Die möglichen vordefinierten Zahlenformatwerte zusammen mit ihrem Index, die verwendet werden können, sind nachfolgend angegeben: + +|**0**|General| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **Abgerundete Ränder des Diagrammbereichs festlegen** + +Aspose.Slides for Node.js via Java bietet Unterstützung zum Festlegen des Diagrammbereichs. Die Methoden [**hasRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#hasRoundedCorners--) und [**setRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#setRoundedCorners-boolean-) wurden zur Klasse [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart) hinzugefügt. + +1. Instanziieren Sie ein [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) Klassenobjekt. +1. Fügen Sie ein Diagramm auf der Folie hinzu. +1. Setzen Sie den Fülltyp und die Füllfarbe des Diagramms. +1. Setzen Sie die Eigenschaft round corner auf True. +1. Speichern Sie die geänderte Präsentation. + +Nachstehendes Beispiel wird gegeben. +```javascript +// Instanz der Presentation-Klasse erstellen +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Kann ich halbtransparente Füllungen für Spalten/Flächen festlegen, während die Randlinie undurchsichtig bleibt?** + +Ja. Fülltransparenz und Kontur werden separat konfiguriert. Dies ist nützlich, um die Lesbarkeit des Rasters und der Daten in dichten Visualisierungen zu verbessern. + +**Wie kann ich mit überlappenden Datenbeschriftungen umgehen?** + +Reduzieren Sie die Schriftgröße, deaktivieren Sie nicht wesentliche Beschriftungskomponenten (z. B. Kategorien), stellen Sie den Beschriftungs‑Offset/-Position ein, zeigen Sie Beschriftungen nur für ausgewählte Punkte an, falls notwendig, oder wechseln Sie das Format zu "Wert + Legende". + +**Kann ich Farbverläufe oder Musterfüllungen auf Reihen anwenden?** + +Ja. Sowohl einfarbige als auch Farbverlauf‑/Musterfüllungen sind in der Regel verfügbar. Verwenden Sie Farbverläufe sparsam und vermeiden Sie Kombinationen, die den Kontrast zum Raster und zum Text verringern. \ No newline at end of file diff --git a/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..43bc4e29cb --- /dev/null +++ b/de/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: 3D-Diagramm +type: docs +url: /de/nodejs-java/3d-chart/ +--- + +## **Festlegen der Eigenschaften RotationX, RotationY und DepthPercents eines 3D-Diagramms** + +Aspose.Slides für Node.js über Java bietet eine einfache API zum Festlegen dieser Eigenschaften. Der nachfolgende Artikel zeigt, wie Sie verschiedene Eigenschaften wie **X,Y Rotation, DepthPercents** usw. einstellen können. Der Beispielcode demonstriert das Setzen der oben genannten Eigenschaften. + +1. Erstellen Sie eine Instanz der Klasse [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Greifen Sie auf die erste Folie zu. +1. Fügen Sie ein Diagramm mit Standarddaten hinzu. +1. Setzen Sie die Rotation3D‑Eigenschaften. +1. Schreiben Sie die geänderte Präsentation in eine PPTX‑Datei. +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Zugriff auf die erste Folie + var slide = pres.getSlides().get_Item(0); + // Diagramm mit Standarddaten hinzufügen + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // Festlegen des Indexes des Diagrammdatenblatts + var defaultWorksheetIndex = 0; + // Abrufen des Diagrammdaten-Arbeitsblatts + var fact = chart.getChartData().getChartDataWorkbook(); + // Serie hinzufügen + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Kategorien hinzufügen + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Rotation3D-Eigenschaften festlegen + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // Zweite Diagrammserie übernehmen + var series = chart.getChartData().getSeries().get_Item(1); + // Jetzt werden die Seriendaten befüllt + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Überlappungswert festlegen + series.getParentSeriesGroup().setOverlap(100); + // Präsentation auf die Festplatte schreiben + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Welche Diagrammtypen unterstützen den 3D‑Modus in Aspose.Slides?** + +Aspose.Slides unterstützt 3D‑Varianten von Säulendiagrammen, einschließlich Column 3D, Clustered Column 3D, Stacked Column 3D und 100% Stacked Column 3D, sowie verwandte 3D‑Typen, die über die Aufzählung [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) verfügbar sind. Für eine genaue, aktuelle Liste prüfen Sie die Mitglieder der [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) in der API‑Referenz Ihrer installierten Version. + +**Kann ich ein Rasterbild eines 3D‑Diagramms für einen Bericht oder das Web erhalten?** + +Ja. Sie können ein Diagramm über die [chart API](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage) oder die gesamte Folie [render the entire slide](/slides/de/nodejs-java/convert-powerpoint-to-png/) in Formate wie PNG oder JPEG exportieren. Dies ist nützlich, wenn Sie eine pixelgenaue Vorschau benötigen oder das Diagramm in Dokumente, Dashboards oder Webseiten einbetten möchten, ohne PowerPoint zu benötigen. + +**Wie leistungsfähig ist das Erstellen und Rendern großer 3D‑Diagramme?** + +Die Leistung hängt von Datenvolumen und visueller Komplexität ab. Für optimale Ergebnisse halten Sie 3D‑Effekte minimal, vermeiden schwere Texturen an Wänden und Plot‑Bereichen, begrenzen die Anzahl der Datenpunkte pro Serie nach Möglichkeit und rendern Sie in einer angemessenen Ausgabegröße (Auflösung und Abmessungen), die den Zielanzeige‑ oder Druckanforderungen entspricht. \ No newline at end of file diff --git a/de/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/de/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 3be595df54..61696d2d98 100644 --- a/de/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/de/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,5 +1,5 @@ --- -title: Automatisieren Sie die Lokalisierung von Präsentationen mit Python +title: Automatisiere Präsentationslokalisierung mit Python linktitle: Präsentationslokalisierung type: docs weight: 100 @@ -12,15 +12,15 @@ keywords: - Präsentation - Python - Aspose.Slides -description: "Automatisieren Sie die Lokalisierung von PowerPoint- und OpenDocument‑Folien in Python mit Aspose.Slides, mithilfe praktischer Code‑Beispiele und Tipps für eine schnellere globale Einführung." +description: "Automatisiere die Lokalisierung von PowerPoint- und OpenDocument-Folien in Python mit Aspose.Slides, indem du praktische Codebeispiele und Tipps für eine schnellere globale Einführung nutzt." --- ## **Sprache für Präsentation und Text von Formen ändern** -- Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/) Klasse. -- Rufen Sie die Referenz einer Folie ab, indem Sie deren Index verwenden. -- Fügen Sie der Folie eine AutoShape vom Typ Rechteck hinzu. +- Erstellen Sie eine Instanz der [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/)-Klasse. +- Holen Sie die Referenz einer Folie, indem Sie ihren Index verwenden. +- Fügen Sie der Folie eine AutoShape vom Typ Rectangle hinzu. - Fügen Sie dem TextFrame etwas Text hinzu. -- Legen Sie die Language Id für den Text fest. +- Setzen der Language Id für den Text. - Schreiben Sie die Präsentation als PPTX-Datei. Die Implementierung der obigen Schritte wird unten in einem Beispiel gezeigt. @@ -38,14 +38,14 @@ with slides.Presentation("pres.pptx") as pres: ## **FAQ** -**Löst language_id eine automatische Textübersetzung aus?** +**Löst die Language ID eine automatische Textübersetzung aus?** -Nein. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) in Aspose.Slides speichert die Sprache für Rechtschreib‑ und Grammatikprüfung, führt jedoch keine Übersetzung oder Änderung des Textinhalts durch. Es handelt sich um Metadaten, die PowerPoint für die Prüfung versteht. +Nein. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) in Aspose.Slides speichert die Sprache für Rechtschreib‑ und Grammatikprüfung, jedoch übersetzt sie nicht und ändert den Textinhalt nicht. Es handelt sich um Metadaten, die PowerPoint für die Korrektur versteht. -**Beeinflusst language_id die Silbentrennung und Zeilenumbrüche beim Rendern?** +**Beeinflusst die Language ID Silbentrennung und Zeilenumbrüche beim Rendern?** -In Aspose.Slides dient [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) der Prüfung. Die Qualität der Silbentrennung und des Zeilenumbruchs hängt hauptsächlich von der Verfügbarkeit geeigneter [Fonts](/slides/de/python-net/powerpoint-fonts/) und den Layout‑/Zeilenumbruch‑Einstellungen für das Schriftsystem ab. Um ein korrektes Rendern sicherzustellen, stellen Sie die erforderlichen Fonts bereit, konfigurieren Sie [Font‑Ersetzungsregeln](/slides/de/python-net/font-substitution/) und/oder [betten Sie Fonts ein](/slides/de/python-net/embedded-font/) in die Präsentation ein. +In Aspose.Slides wird [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) für die Korrektur verwendet. Die Qualität der Silbentrennung und des Zeilenumbruchs hängt hauptsächlich von der Verfügbarkeit geeigneter Schriften ([proper fonts](/slides/de/python-net/powerpoint-fonts/)) und den Layout‑/Zeilenumbruch‑Einstellungen für das Schriftsystem ab. Um ein korrektes Rendern sicherzustellen, stellen Sie die erforderlichen Schriften bereit, konfigurieren Sie [font substitution rules](/slides/de/python-net/font-substitution/) und/oder betten Sie Schriften ([embed fonts](/slides/de/python-net/embedded-font/)) in die Präsentation ein. -**Kann ich unterschiedliche Sprachen innerhalb eines einzelnen Absatzes festlegen?** +**Kann ich verschiedene Sprachen innerhalb eines einzelnen Absatzes festlegen?** -Ja. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) wird auf Ebene des Textabschnitts angewendet, sodass ein einzelner Absatz mehrere Sprachen mit unterschiedlichen Prüfungseinstellungen mischen kann. \ No newline at end of file +Ja. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) wird auf Ebene des Textabschnitts angewendet, sodass ein einzelner Absatz mehrere Sprachen mit unterschiedlichen Korrektureinstellungen mischen kann. diff --git a/es/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/es/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 89baab90b8..fe74a813a9 100644 --- a/es/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/es/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,19 +1,19 @@ --- -title: Localización de la presentación +title: Localización de presentaciones type: docs weight: 100 url: /es/net/presentation-localization/ -keywords: "Cambiar idioma, Corrector ortográfico, Revisión ortográfica, Corrector de ortografía, Presentación PowerPoint, C#, Csharp, Aspose.Slides para .NET" -description: "Cambiar o comprobar el idioma en una presentación PowerPoint. Corrector ortográfico de texto en C# o .NET" +keywords: "Cambiar idioma, Corrector ortográfico, Spell check, Spellchecker, Presentación de PowerPoint, C#, Csharp, Aspose.Slides for .NET" +description: "Cambiar o comprobar el idioma en una presentación de PowerPoint. Corrector ortográfico del texto en C# o .NET" --- ## **Cambiar el idioma del texto de la presentación y de la forma** -- Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation). -- Obtenga la referencia de una diapositiva usando su índice. -- Agregue una AutoShape de tipo Rectángulo a la diapositiva. -- Añada texto al TextFrame. -- Establezca el Language Id al texto. -- Guarde la presentación como un archivo PPTX. +- Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation). +- Obtener la referencia de una diapositiva usando su índice. +- Añadir una AutoShape de tipo Rectángulo a la diapositiva. +- Añadir texto al TextFrame. +- Establecer Language Id al texto. +- Guardar la presentación como un archivo PPTX. La implementación de los pasos anteriores se muestra a continuación en un ejemplo. ```c# @@ -30,13 +30,13 @@ using (Presentation pres = new Presentation("test0.pptx")) ## **Preguntas frecuentes** -**¿language_id activa la traducción automática de texto?** +**¿El ID de idioma activa la traducción automática del texto?** -No. [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) en Aspose.Slides almacena el idioma para la corrección ortográfica y la revisión gramatical, pero no traduce ni cambia el contenido del texto. Es metadatos que PowerPoint reconoce para la revisión. +No. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) en Aspose.Slides almacena el idioma para la corrección ortográfica y la revisión gramatical, pero no traduce ni cambia el contenido del texto. Es metadatos que PowerPoint entiende para la revisión. -**¿language_id afecta la hyphenation y los saltos de línea durante la renderización?** +**¿Afecta el ID de idioma la guionización y los saltos de línea durante el renderizado?** -En Aspose.Slides, [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) se utiliza para la revisión. La calidad de la hyphenation y el ajuste de líneas dependen principalmente de la disponibilidad de [proper fonts](/slides/es/net/powerpoint-fonts/) y de la configuración de diseño/saltos de línea para el sistema de escritura. Para garantizar una renderización correcta, haga que las fuentes requeridas estén disponibles, configure las [font substitution rules](/slides/es/net/font-substitution/) y/o [embed fonts](/slides/es/net/embedded-font/) en la presentación. +En Aspose.Slides, [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) es para la revisión. La calidad de la guionización y el ajuste de línea dependen principalmente de la disponibilidad de [fuentes adecuadas](/slides/es/net/powerpoint-fonts/) y de la configuración de diseño/ruptura de línea para el sistema de escritura. Para garantizar un renderizado correcto, haga que las fuentes necesarias estén disponibles, configure [reglas de sustitución de fuentes](/slides/es/net/font-substitution/) y/o [incorpore fuentes](/slides/es/net/embedded-font/) en la presentación. **¿Puedo establecer diferentes idiomas dentro de un solo párrafo?** diff --git a/es/nodejs-java/developer-guide/3d-presentation/_index.md b/es/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..442c90db77 --- /dev/null +++ b/es/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,225 @@ +--- +title: Presentación 3D +type: docs +weight: 232 +url: /es/nodejs-java/3d-presentation/ +--- + +## **Visión general** + +Desde Aspose.Slides for Java 20.9 es posible crear 3D en presentaciones. PowerPoint 3D es una forma de dar vida a las presentaciones. Muestra objetos del mundo real con una presentación 3D, demuestra un modelo 3D de tu futuro proyecto empresarial, un modelo 3D del edificio o su interior, un modelo 3D del personaje de un juego, o simplemente una representación 3D de tus datos. + +Los modelos 3D de PowerPoint se pueden crear a partir de formas 2D, aplicándoles efectos como: rotación 3D, profundidad y extrusión 3D, degradado 3D, texto 3D, etc. La lista de funciones 3D aplicadas a las formas se encuentra en la clase **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. La instancia de la clase se puede obtener mediante: + +- **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** método para crear un modelo 3D de PowerPoint. +- **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** método para crear un texto 3D (WordArt). + +Todos los efectos implementados en **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** pueden usarse tanto para formas como para texto. Echemos un vistazo rápido a los principales métodos de la clase **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. En el siguiente ejemplo creamos una forma rectangular 2D con texto. Al obtener la vista de cámara sobre la forma, cambiamos su rotación y logramos que se vea como un modelo 3D. Configurar una luz plana y su dirección hacia la parte superior del modelo 3D aporta más volumen al modelo. Los materiales modificados, la altura de extrusión y el color hacen que el modelo 3D parezca más vivo. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este es el modelo 3D resultante: + +![todo:image_alt_text](img_01_01.png) + +## **Rotación 3D** + +La rotación del modelo 3D en PowerPoint puede realizarse mediante el menú: + +![todo:image_alt_text](img_02_01.png) + +Para rotar un modelo 3D con la API de Aspose.Slides, utilice el método **[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)**, establezca la rotación de la cámara en relación con la forma 3D: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... establecer otros parámetros de la escena 3D +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **Profundidad y Extrusión 3D** + +Los métodos **[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** y **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** se utilizan para crear extrusión en una forma: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); +// ... establecer otros parámetros de la escena 3D +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +En PowerPoint, la profundidad de la forma se establece mediante: + +![todo:image_alt_text](img_02_02.png) + +## **Degradado 3D** + +El degradado 3D puede aportar más volumen a la forma 3D de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Así es como se ve: + +![todo:image_alt_text](img_02_03.png) + +También puede crear un degradado de imagen: +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. configurar 3D: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* propiedades +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +Este es el resultado: + +![todo:image_alt_text](img_02_04.png) + +## **Texto 3D (WordArt)** + +Para crear un texto 3D (WordArt), haga lo siguiente: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // configurar efecto de transformación WordArt "Arch Up" + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este es el resultado: + +![todo:image_alt_text](img_02_05.png) + +## **Preguntas frecuentes** + +**¿Se conservarán los efectos 3D al exportar una presentación a imágenes/PDF/HTML?** + +Sí. El motor 3D de Slides renderiza los efectos 3D al exportar a formatos compatibles ([images](/slides/es/nodejs-java/convert-powerpoint-to-png/), [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/), [HTML](/slides/es/nodejs-java/convert-powerpoint-to-html/), etc.). + +**¿Puedo obtener los valores "efectivos" (finales) de los parámetros 3D que tienen en cuenta temas, herencia, etc.?** + +Sí. Slides ofrece APIs para [leer valores efectivos](/slides/es/nodejs-java/shape-effective-properties/) (incluidos los de 3D—iluminación, biseles, etc.) para que pueda ver la configuración final aplicada. + +**¿Los efectos 3D funcionan al convertir una presentación a video?** + +Sí. Al [generar los fotogramas para el video](/slides/es/nodejs-java/convert-powerpoint-to-video/), los efectos 3D se renderizan de la misma manera que para las [imágenes exportadas](/slides/es/nodejs-java/convert-powerpoint-to-png/). \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..9f324aae26 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: Convertir OpenOffice ODP +type: docs +weight: 10 +url: /es/nodejs-java/convert-openoffice-odp/ +keywords: "Convertir ODP a PDF, ODP a HTML, ODP a TIFF en JavaScript" +description: "Convertir ODP a PDF, ODP a PPT, ODP a PPTX, ODP a HTML en JavaScript" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) permite convertir presentaciones OpenOffice ODP a muchos formatos. La API para convertir ODP a otros formatos es la misma que para los tipos de PowerPoint. Puede usar los siguientes ejemplos para convertir ODP, simplemente cambiando el archivo fuente en el archivo de presentación ODP: + +- [Convertir ODP a HTML](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [Convertir ODP a PDF](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [Convertir ODP a TIFF](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [Convertir ODP a SWF Flash](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [Convertir ODP a XPS](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [Convertir ODP a PDF con notas](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [Convertir ODP a TIFF con notas](/slides/es/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **Preguntas frecuentes** + +**¿Qué pasa si el formato de mi archivo ODP cambia después de la conversión?** + +ODP y PowerPoint utilizan diferentes modelos de presentación, y algunos elementos —como tablas, fuentes personalizadas o estilos de relleno— pueden no renderizarse exactamente igual. Se recomienda revisar el resultado y ajustar el diseño o el formato en el código si es necesario. + +**¿Necesito tener OpenOffice o LibreOffice instalados para usar la conversión de ODP?** + +No, Aspose.Slides es una biblioteca independiente y no requiere que OpenOffice o LibreOffice estén instalados en su sistema. + +**¿Puedo personalizar el formato de salida durante la conversión de ODP (p. ej., establecer opciones de PDF)?** + +Sí, Aspose.Slides ofrece amplias opciones para personalizar la salida. Por ejemplo, al guardar en PDF, puede controlar la compresión, la calidad de la imagen, el renderizado del texto y más mediante la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/). + +**¿Es Aspose.Slides adecuado para el procesamiento de ODP en el lado del servidor o basado en la nube?** + +Absolutamente. Aspose.Slides está diseñado para funcionar tanto en entornos de escritorio como en servidores, incluidas plataformas basadas en la nube como Azure, AWS y contenedores Docker, sin dependencias de UI. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..5637af8517 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: Convertir ODP a PPTX +type: docs +weight: 10 +url: /es/nodejs-java/convert-odp-to-pptx/ +--- + +## **Convertir ODP a Presentación PPTX/PPT** +Aspose.Slides para Node.js a través de Java ofrece la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que representa un archivo de presentación. La clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) ahora también puede acceder a ODP mediante el constructor [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) cuando se instancia el objeto. El siguiente ejemplo muestra cómo convertir una presentación ODP en una presentación PPTX. +```javascript +// Abrir el archivo ODP +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// Guardar la presentación ODP en formato PPTX +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Ejemplo en Vivo** +Puede visitar la aplicación web [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) que está construida con **Aspose.Slides API.** La aplicación muestra cómo se puede implementar la conversión de ODP a PPTX con Aspose.Slides API. + +## **Preguntas frecuentes** + +**¿Necesito instalar Microsoft PowerPoint o LibreOffice para convertir ODP a PPTX?** + +No. Aspose.Slides funciona de manera independiente y no requiere aplicaciones de terceros para leer o escribir ODP/PPTX. + +**¿Se conservan las diapositivas maestras, diseños y temas durante la conversión?** + +Sí. La biblioteca utiliza un modelo de objeto de presentación completo y mantiene la estructura, incluidas las diapositivas maestras y los diseños, de modo que el diseño permanece correcto después de la conversión. + +**¿Puedo convertir archivos ODP protegidos con contraseña?** + +Sí. Aspose.Slides admite la detección de protección, la apertura y el trabajo con [presentaciones protegidas](/slides/es/nodejs-java/password-protected-presentation/) (incluido ODP) cuando se proporciona la contraseña, así como la configuración del cifrado y el acceso a las propiedades del documento. + +**¿Es Aspose.Slides adecuado para servicios de conversión en la nube o basados en REST?** + +Sí. Puede usar la biblioteca local en su propio backend o [Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/) (API REST); ambas opciones admiten la conversión ODP → PPTX. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..255d5a69cd --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,65 @@ +--- +title: Convertir presentaciones en modo Folleto en JavaScript +type: docs +weight: 150 +url: /es/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- convertir PowerPoint +- modo folleto +- folleto +- PowerPoint +- PPT +- PPTX +- presentación +- Node.js +- JavaScript +- Aspose.Slides +description: "Convertir presentaciones en modo Folleto en JavaScript" +--- + +## **Exportación en modo Folleto** + +Aspose.Slides proporciona la capacidad de convertir presentaciones a varios formatos, incluida la creación de folletos para imprimir en modo Folleto. Este modo le permite configurar cómo aparecen varias diapositivas en una sola página, lo que resulta útil para conferencias, seminarios y otros eventos. Puede habilitar este modo configurando el método `setSlidesLayoutOptions` en las clases [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/), y [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) . + +Para configurar el modo Folleto, utilice el objeto [HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/), que determina cuántas diapositivas se colocan en una sola página y otros parámetros de visualización. + +A continuación se muestra un ejemplo de código que convierte una presentación a PDF en modo Folleto. +```js +// Cargar una presentación. +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// Establecer las opciones de exportación. +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 4 diapositivas en una página horizontalmente +slidesLayoutOptions.setPrintSlideNumbers(true); // imprimir números de diapositivas +slidesLayoutOptions.setPrintFrameSlide(true); // imprimir un marco alrededor de las diapositivas +slidesLayoutOptions.setPrintComments(false); // sin comentarios + +let pdfOptions = new asposeSlides.PdfOptions(); +pdfOptions.setSlidesLayoutOptions(slidesLayoutOptions); + +// Exportar la presentación a PDF con el diseño seleccionado. +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} + +Tenga en cuenta que el método `setSlidesLayoutOptions` está disponible solo para ciertos formatos de salida, como PDF, HTML, TIFF y al renderizar como imágenes. + +{{% /alert %}} + +## **FAQ** + +**¿Cuál es el número máximo de miniaturas de diapositivas por página en modo Folleto?** + +Aspose.Slides admite [presets](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) de hasta 9 miniaturas por página con orden horizontal o vertical: 1, 2, 3, 4 (horizontal/vertical), 6 (horizontal/vertical) y 9 (horizontal/vertical). + +**¿Puedo definir una cuadrícula personalizada, como 5 o 8 diapositivas por página?** + +No. El número y el orden de las miniaturas están controlados estrictamente por la enumeración [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/); no se admiten diseños arbitrarios. + +**¿Puedo incluir diapositivas ocultas en la salida del Folleto?** + +Sí. Utilice el método `setShowHiddenSlides` en la configuración de exportación para el formato de destino, como [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) o [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..0e7615337e --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,62 @@ +--- +title: Convertir PowerPoint a GIF animado +type: docs +weight: 65 +url: /es/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "Convertir PowerPoint a GIF animado, PPT a GIF, PPTX a GIF" +description: "Convertir PowerPoint a GIF animado: PPT a GIF, PPTX a GIF, con la API de Aspose.Slides." +--- + +## **Convertir presentaciones a GIF animado usando la configuración predeterminada** + +Este código de ejemplo en JavaScript le muestra cómo convertir una presentación a GIF animado usando la configuración estándar: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +El GIF animado se creará con los parámetros predeterminados. + +{{% alert title="TIP" color="primary" %}} +Si prefiere personalizar los parámetros del GIF, puede usar la clase [GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions). Vea el código de ejemplo a continuación. +{{% /alert %}} + +## **Convertir presentaciones a GIF animado usando configuración personalizada** + +Este código de ejemplo le muestra cómo convertir una presentación a GIF animado usando configuraciones personalizadas en JavaScript: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// el tamaño del GIF resultante + gifOptions.setDefaultDelay(2000);// cuánto tiempo se mostrará cada diapositiva antes de cambiar a la siguiente + gifOptions.setTransitionFps(35);// aumentar FPS para mejorar la calidad de la animación de transición + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +Puede que quiera probar un convertidor GRATUITO [Text to GIF](https://products.aspose.app/slides/text-to-gif) desarrollado por Aspose. +{{% /alert %}} + +## **FAQ** + +**¿Qué pasa si las fuentes usadas en la presentación no están instaladas en el sistema?** + +Instale las fuentes faltantes o [configure fallback fonts](/slides/es/nodejs-java/powerpoint-fonts/). Aspose.Slides sustituirá, pero la apariencia puede variar. Para la marca, siempre asegúrese de que los tipos de letra requeridos estén disponibles explícitamente. + +**¿Puedo superponer una marca de agua en los fotogramas del GIF?** + +Sí. [Add a semi-transparent object/logo](/slides/es/nodejs-java/watermark/) a la diapositiva maestra o a diapositivas individuales antes de la exportación — la marca de agua aparecerá en cada fotograma. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..61dcce782f --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,410 @@ +--- +title: Convertir PowerPoint a HTML en JavaScript +linktitle: Convertir Powerpoint a HTML +type: docs +weight: 30 +url: /es/nodejs-java/convert-powerpoint-to-html/ +keywords: "Java PowerPoint a HTML, Convertir presentación de PowerPoint, PPTX, PPT, PPT a HTML, PPTX a HTML, PowerPoint a HTML, Guardar PowerPoint como HTML, Guardar PPT como HTML, Guardar PPTX como HTML, Java, Aspose.Slides, exportación HTML" +description: "Convertir PowerPoint a HTML en JavaScript. Guardar PPTX o PPT como HTML en JavaScript. Guardar diapositivas como HTML en JavaScript" +--- + +## **Visión general** + +Este artículo explica cómo convertir una presentación de PowerPoint al formato HTML usando JavaScript. Cubre los siguientes temas. + +- Convertir PowerPoint a HTML en JavaScript +- Convertir PPT a HTML en JavaScript +- Convertir PPTX a HTML en JavaScript +- Convertir ODP a HTML en JavaScript +- Convertir diapositiva de PowerPoint a HTML en JavaScript + +## **Java PowerPoint a HTML** + +Para obtener código de muestra en JavaScript que convierta PowerPoint a HTML, consulte la sección a continuación, es decir, [Convert PowerPoint to HTML](#convert-powerpoint-to-html). El código puede cargar varios formatos como PPT, PPTX y ODP en el objeto Presentation y guardarlo en formato HTML. + +## **Acerca de la conversión de PowerPoint a HTML** + +Usando [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), las aplicaciones y los desarrolladores pueden convertir una presentación de PowerPoint a HTML: **PPTX a HTML** o **PPT a HTML**. + +**Aspose.Slides** proporciona muchas opciones (principalmente de la clase [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions)) que definen el proceso de conversión de PowerPoint a HTML: + +* Convertir una presentación completa de PowerPoint a HTML. +* Convertir una diapositiva específica de una presentación de PowerPoint a HTML. +* Convertir los medios de la presentación (imágenes, videos, etc.) a HTML. +* Convertir una presentación de PowerPoint a HTML responsivo. +* Convertir una presentación de PowerPoint a HTML con notas del presentador incluidas o excluidas. +* Convertir una presentación de PowerPoint a HTML con comentarios incluidos o excluidos. +* Convertir una presentación de PowerPoint a HTML con fuentes originales o incrustadas. +* Convertir una presentación de PowerPoint a HTML utilizando el nuevo estilo CSS. + +{{% alert color="primary" %}} + +Usando su propia API, Aspose desarrolló convertidores gratuitos de [presentación a HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html): [PPT a HTML](https://products.aspose.app/slides/conversion/ppt-to-html), [PPTX a HTML](https://products.aspose.app/slides/conversion/pptx-to-html), [ODP a HTML](https://products.aspose.app/slides/conversion/odp-to-html), etc. + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +Es posible que desee consultar otros [convertidores gratuitos de Aspose](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +Además de los procesos de conversión descritos aquí, Aspose.Slides también admite estas operaciones de conversión que implican el formato HTML: + +* [HTML a imagen](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML a JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML a XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML a TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + +## **Convertir PowerPoint a HTML** +Usando Aspose.Slides, puede convertir una presentación completa de PowerPoint a HTML de la siguiente manera: + +1. Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. Utilizar el método [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) para guardar el objeto como un archivo HTML. + +Este código le muestra cómo convertir un PowerPoint a HTML en JavaScript: +```javascript +// Instanciar un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // Guardar la presentación en HTML + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a HTML responsivo** +Aspose.Slides proporciona la clase [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController) que permite generar archivos HTML responsivos. Este código le muestra cómo convertir una presentación de PowerPoint a HTML responsivo en JavaScript: +```javascript +// Instanciar un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // Guardando la presentación en HTML + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a HTML con notas** +Este código le muestra cómo convertir un PowerPoint a HTML con notas en JavaScript: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Guardando páginas de notas + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a HTML con fuentes originales** + +Aspose.Slides proporciona la clase [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) que permite incrustar todas las fuentes de una presentación al convertirla a HTML. + +Para evitar que se incrusten ciertas fuentes, puede pasar una matriz de nombres de fuente a un constructor parametrizado de la clase [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController). Fuentes populares, como Calibri o Arial, cuando se usan en una presentación, no necesitan ser incrustadas porque la mayoría de los sistemas ya las contienen. Cuando esas fuentes se incrustan, el documento HTML resultante se vuelve innecesariamente grande. + +La clase [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) soporta herencia y proporciona el método [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-) , que está destinado a sobrescribirse. +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // excluir fuentes predeterminadas de la presentación + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a HTML con imágenes de alta calidad** + +Por defecto, cuando convierte PowerPoint a HTML, Aspose.Slides genera HTML pequeño con imágenes a 72 DPI y áreas recortadas eliminadas. Para obtener archivos HTML con imágenes de mayor calidad, debe pasar `96` al método `setPicturesCompression` de la clase `HtmlOptions` (es decir, `PicturesCompression.Dpi96`) o valores más altos [values](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PicturesCompression). + +Este código JavaScript le muestra cómo convertir una presentación de PowerPoint a HTML obteniendo imágenes de alta calidad a 150 DPI (es decir, `PicturesCompression.Dpi150`): +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este código en JavaScript le muestra cómo generar HTML con imágenes de calidad completa: +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir diapositiva a HTML** +Para convertir una diapositiva específica de un PowerPoint a HTML, debe instanciar la misma clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) (utilizada para convertir presentaciones completas a HTML) y luego usar el método [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) para guardar el archivo como HTML. La clase [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) puede usarse para especificar opciones de conversión adicionales: + +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // Guardando archivo + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **Guardar CSS e Imágenes al exportar a HTML** +Usando nuevos archivos de estilo CSS, puede cambiar fácilmente el estilo del archivo HTML resultante del proceso de conversión de PowerPoint a HTML. + +El código JavaScript en este ejemplo le muestra cómo usar métodos sobrescribibles para crear un documento HTML personalizado con un enlace a un archivo CSS: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Deberá implementar CustomHeaderAndFontsController en Java, compilarlo y añadirlo a la ubicación del módulo \aspose.slides.via.java\lib\. +Este código Java le muestra cómo se implementa `CustomHeaderAndFontsController`: +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // Plantilla de encabezado personalizada + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **Vincular todas las fuentes al convertir la presentación a HTML** + +Si no desea incrustar fuentes (para evitar aumentar el tamaño del HTML resultante), puede vincular todas las fuentes implementando su propia versión de `LinkAllFontsHtmlController`. + +Este código JavaScript le muestra cómo convertir un PowerPoint a HTML vinculando todas las fuentes y excluyendo "Calibri" y "Arial" (ya que ya existen en el sistema): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Excluir fuentes predeterminadas de la presentación + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Deberá implementar LinkAllFontsHtmlController en Java, compilarlo y añadirlo a la ubicación del módulo \aspose.slides.via.java\lib\. +Este código Java le muestra cómo se implementa `LinkAllFontsHtmlController`: +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // es posible que sea necesario sanitizar la ruta + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **Convertir PowerPoint a HTML responsivo** +Este código JavaScript le muestra cómo convertir una presentación de PowerPoint a HTML responsivo: +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exportar archivos multimedia a HTML** +Usando Aspose.Slides for Node.js via Java, puede exportar archivos multimedia de la siguiente manera: + +1. Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. Obtener una referencia a la diapositiva. +3. Agregar un video a la diapositiva. +4. Escribir la presentación como un archivo HTML. + +Este código JavaScript le muestra cómo agregar un video a la presentación y luego guardarla como HTML: +```javascript +// Cargando una presentación +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // Configurando opciones HTML + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // Guardando el archivo + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Cuál es el rendimiento de Aspose.Slides al convertir múltiples presentaciones a HTML?** + +El rendimiento depende del tamaño y la complejidad de las presentaciones. Aspose.Slides es altamente eficiente y escalable para operaciones por lotes. Para obtener un rendimiento óptimo al convertir muchas presentaciones, se recomienda usar multihilo o procesamiento paralelo siempre que sea posible. + +**¿Aspose.Slides admite la exportación de hipervínculos a HTML?** + +Sí, Aspose.Slides admite completamente la exportación de hipervínculos incrustados a HTML. Cuando convierte presentaciones al formato HTML, los hipervínculos se conservan automáticamente y siguen siendo clicables. + +**¿Existe algún límite en el número de diapositivas al convertir presentaciones a HTML?** + +No hay límite en el número de diapositivas al usar Aspose.Slides. Puede convertir presentaciones de cualquier tamaño. Sin embargo, para presentaciones que contengan un número muy grande de diapositivas, el rendimiento puede depender de los recursos disponibles en su servidor o sistema. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..b18f3b0c15 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,144 @@ +--- +title: Convertir PowerPoint a JPG +type: docs +weight: 60 +url: /es/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "Convertir PowerPoint a JPG, PPTX a JPEG, PPT a JPEG" +description: "Convertir PowerPoint a JPG: PPT a JPG, PPTX a JPG en JavaScript" +--- + +## **Acerca de la conversión de PowerPoint a JPG** +Con [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) puedes convertir una presentación PowerPoint PPT o PPTX a imagen JPG. También es posible convertir PPT/PPTX a JPEG, PNG o SVG. Con estas funciones es fácil implementar tu propio visor de presentaciones, crear la miniatura para cada diapositiva. Esto puede ser útil si deseas proteger las diapositivas de la presentación contra la copia, demostrar la presentación en modo de solo lectura. Aspose.Slides permite convertir toda la presentación o una diapositiva concreta a formatos de imagen. + +{{% alert color="primary" %}} + +Para ver cómo Aspose.Slides convierte PowerPoint a imágenes JPG, puedes probar estos convertidores gratuitos en línea: PowerPoint [PPTX to JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) y [PPT to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg). + +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **Convertir PowerPoint PPT/PPTX a JPG** +Estos son los pasos para convertir PPT/PPTX a JPG: + +1. Crea una instancia del tipo [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtén el objeto de diapositiva del tipo [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) mediante la colección [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) . +3. Crea la miniatura de cada diapositiva y luego conviértela a JPG. El método [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) se usa para obtener una miniatura de una diapositiva; devuelve un objeto [Imagess](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images). El método [getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) debe llamarse desde la diapositiva necesaria del tipo [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide); las escalas de la miniatura resultante se pasan al método. +4. Después de obtener la miniatura de la diapositiva, llama al método [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) del objeto miniatura. Pasa el nombre del archivo resultante y el formato de imagen. + +{{% alert color="primary" %}} + +**Nota**: la conversión de PPT/PPTX a JPG difiere de la conversión a otros tipos en la API de Aspose.Slides. Para otros tipos, normalmente usas el método [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-), pero aquí necesitas el método [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)). + +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Crea una imagen a escala completa + var slideImage = sld.getImage(1.0, 1.0); + // Guarda la imagen en disco en formato JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint PPT/PPTX a JPG con dimensiones personalizadas** +Para cambiar la dimensión de la miniatura y la imagen JPG resultante, puedes establecer los valores *ScaleX* y *ScaleY* pasándolos a los métodos [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-): +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // Define las dimensiones + var desiredX = 1200; + var desiredY = 800; + // Obtiene los valores escalados de X y Y + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Crea una imagen a escala completa + var slideImage = sld.getImage(ScaleX, ScaleY); + // Guarda la imagen en disco en formato JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Renderizar comentarios al guardar la presentación como imagen** +Aspose.Slides for Node.js via Java proporciona una funcionalidad que permite renderizar los comentarios en las diapositivas de una presentación al convertir esas diapositivas a imágenes. Este código JavaScript muestra la operación: +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose ofrece una [aplicación web GRATUITA de Collage](https://products.aspose.app/slides/collage). Usando este servicio en línea, puedes combinar [JPG a JPG](https://products.aspose.app/slides/collage/jpg) o PNG a PNG, crear [rejillas de fotos](https://products.aspose.app/slides/collage/photo-grid), etc. + +Usando los mismos principios descritos en este artículo, puedes convertir imágenes de un formato a otro. Para más información, consulta estas páginas: convertir [imagen a JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); convertir [JPG a imagen](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); convertir [JPG a PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), convertir [PNG a JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); convertir [PNG a SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), convertir [SVG a PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Véase también** + +Consulta otras opciones para convertir PPT/PPTX a imagen como: + +- [Conversión de PPT/PPTX a SVG](/slides/es/nodejs-java/render-a-slide-as-an-svg-image/). + +## **Preguntas frecuentes** + +**¿Este método admite la conversión por lotes?** + +Sí, Aspose.Slides permite la conversión por lotes de varias diapositivas a JPG en una única operación. + +**¿La conversión admite SmartArt, gráficos y otros objetos complejos?** + +Sí, Aspose.Slides renderiza todo el contenido, incluidos SmartArt, gráficos, tablas, formas y más. Sin embargo, la precisión del renderizado puede variar ligeramente respecto a PowerPoint, especialmente al usar fuentes personalizadas o faltantes. + +**¿Existen limitaciones en la cantidad de diapositivas que pueden procesarse?** + +Aspose.Slides en sí no impone límites estrictos sobre la cantidad de diapositivas que puedes procesar. No obstante, podrías encontrar errores de falta de memoria al trabajar con presentaciones muy grandes o imágenes de alta resolución. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..d6f9f0706e --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,120 @@ +--- +title: Convertir PowerPoint a Markdown en JavaScript +type: docs +weight: 140 +url: /es/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "Convertir PowerPoint a Markdown, Convertir ppt a md, PowerPoint, PPT, PPTX, Presentación, Markdown, Java, Aspose.Slides para Node.js a través de Java" +description: "Convertir PowerPoint a Markdown en JavaScript" +--- + +{{% alert color="info" %}} + +El soporte para la conversión de PowerPoint a markdown se implementó en [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/). + +{{% /alert %}} + +{{% alert color="warning" %}} + +La exportación de PowerPoint a markdown es **sin imágenes** por defecto. Si deseas exportar un documento de PowerPoint que contenga imágenes, debes llamar a `markdownSaveOptions.setExportType(MarkdownExportType.Visual)` y también establecer `BasePath` donde se guardarán las imágenes referenciadas en el documento markdown. + +{{% /alert %}} + +## **Convertir PowerPoint a Markdown** + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) para representar un objeto de presentación. +2. Utiliza el método [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) para guardar el objeto como un archivo markdown. + +Este código JavaScript muestra cómo convertir PowerPoint a markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a un sabor de Markdown** + +Aspose.Slides permite convertir PowerPoint a markdown (con sintaxis básica), CommonMark, markdown con sabor de GitHub, Trello, XWiki, GitLab y 17 sabores de markdown adicionales. + +Este código JavaScript muestra cómo convertir PowerPoint a CommonMark: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Los 23 sabores de markdown compatibles están [listados bajo la enumeración Flavor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) de la clase [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/). + +## **Convertir presentación con imágenes a Markdown** + +La clase [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) proporciona propiedades y enumeraciones que permiten usar ciertas opciones o configuraciones para el archivo markdown resultante. La enumeración [MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/), por ejemplo, puede establecerse en valores que determinan cómo se renderizan o manejan las imágenes: `Sequential`, `TextOnly`, `Visual`. + +### **Convertir imágenes secuencialmente** + +Si deseas que las imágenes aparezcan individualmente una tras otra en el markdown resultante, debes elegir la opción secuencial. Este código JavaScript muestra cómo convertir una presentación con imágenes a markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Convertir imágenes visualmente** + +Si deseas que las imágenes aparezcan juntas en el markdown resultante, debes elegir la opción visual. En este caso, las imágenes se guardarán en el directorio actual de la aplicación (y se construirá una ruta relativa para ellas en el documento markdown), o puedes especificar la ruta y el nombre de carpeta que prefieras. + +Este código JavaScript demuestra la operación: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Los hipervínculos sobreviven a la exportación a Markdown?** + +Sí. Los [hipervínculos](/slides/es/nodejs-java/manage-hyperlinks/) del texto se conservan como enlaces Markdown estándar. Las [transiciones](/slides/es/nodejs-java/slide-transition/) y [animaciones](/slides/es/nodejs-java/powerpoint-animation/) de diapositivas no se convierten. + +**¿Puedo acelerar la conversión ejecutándola en varios hilos?** + +Puedes paralelizar entre archivos, pero [no compartas](/slides/es/nodejs-java/multithreading/) la misma instancia de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) entre hilos. Usa instancias/procesos separados por archivo para evitar contención. + +**¿Qué ocurre con las imágenes —dónde se guardan y son las rutas relativas?** + +Las [imágenes](/slides/es/nodejs-java/image/) se exportan a una carpeta dedicada, y el archivo Markdown las referencia con rutas relativas por defecto. Puedes configurar la ruta de salida base y el nombre de la carpeta de recursos para mantener una estructura de repositorio predecible. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..e8a563e536 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,323 @@ +--- +title: Convertir PPT y PPTX a PDF en JavaScript [Funciones avanzadas incluidas] +linktitle: Convertir PPT y PPTX a PDF +type: docs +weight: 40 +url: /es/nodejs-java/convert-powerpoint-to-pdf/ +keywords: +- convertir PowerPoint +- convertir presentación +- PowerPoint a PDF +- presentación a PDF +- PPT a PDF +- convertir PPT a PDF +- PPTX a PDF +- convertir PPTX a PDF +- ODP a PDF +- convertir ODP a PDF +- guardar PowerPoint como PDF +- PDF/A1a +- PDF/A1b +- PDF/UA +- JavaScript +- Node.js +- Aspose.Slides for Node.js via Java +description: "Aprenda a convertir presentaciones PPT, PPTX y ODP a PDF en JavaScript usando Aspose.Slides. Implemente funciones avanzadas como protección con contraseña, normas de cumplimiento y opciones personalizadas para documentos PDF de alta calidad y accesibles." +--- + +## **Descripción general** + +Convertir presentaciones de PowerPoint y OpenDocument (PPT, PPTX, ODP, etc.) a formato PDF en JavaScript ofrece varias ventajas, incluida la compatibilidad entre diferentes dispositivos y la preservación del diseño y formato de su presentación. Esta guía demuestra cómo convertir presentaciones a documentos PDF, usar diversas opciones para controlar la calidad de imagen, incluir diapositivas ocultas, proteger con contraseña los archivos PDF, detectar sustituciones de fuentes, seleccionar diapositivas específicas para la conversión y aplicar normas de cumplimiento a los documentos de salida. + +## **Conversiones de PowerPoint a PDF** + +Usando Aspose.Slides, puede convertir presentaciones en los siguientes formatos a PDF: + +* **PPT** +* **PPTX** +* **ODP** + +Para convertir una presentación a PDF, pase el nombre del archivo como argumento a la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) y luego guarde la presentación como PDF usando un método `save`. La clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) expone el método `save` que normalmente se usa para convertir una presentación a PDF. + +{{% alert title="NOTA" color="warning" %}} +Aspose.Slides para Node.js mediante Java inserta la información de su API y el número de versión en los documentos de salida. Por ejemplo, al convertir una presentación a PDF, Aspose.Slides rellena el campo Application con "*Aspose.Slides*" y el campo PDF Producer con un valor en forma "*Aspose.Slides v XX.XX*". **Nota** que no puede indicar a Aspose.Slides que cambie o elimine esta información de los documentos de salida. +{{% /alert %}} + +Aspose.Slides le permite convertir: + +* Presentaciones completas a PDF +* Diapositivas específicas de una presentación a PDF + +Aspose.Slides exporta presentaciones a PDF, asegurando que los PDFs resultantes coincidan estrechamente con las presentaciones originales. Los elementos y atributos se renderizan con precisión en la conversión, incluidos: + +* Imágenes +* Cuadros de texto y formas +* Formato de texto +* Formato de párrafo +* Hipervínculos +* Encabezados y pies de página +* Viñetas +* Tablas + +## **Convertir PowerPoint a PDF** + +El proceso estándar de conversión de PowerPoint a PDF usa opciones predeterminadas. En este caso, Aspose.Slides intenta convertir la presentación proporcionada a PDF utilizando configuraciones óptimas con los niveles máximos de calidad. + +Este código muestra cómo convertir una presentación (PPT, PPTX, ODP, etc.) a PDF: +```js +// Instanciar la clase Presentation que representa un archivo PowerPoint u OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // Guardar la presentación como PDF. + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} +Aspose ofrece un **convertidor gratuito en línea de PowerPoint a PDF**([https://products.aspose.app/slides/conversion/ppt-to-pdf](https://products.aspose.app/slides/conversion/ppt-to-pdf)) que muestra el proceso de conversión de presentación a PDF. Puede probar este convertidor para una implementación en vivo del procedimiento descrito aquí. +{{% /alert %}} + +## **Convertir PowerPoint a PDF con Opciones** + +Aspose.Slides proporciona opciones personalizadas—propiedades bajo la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)—que le permiten personalizar el PDF resultante, bloquear el PDF con una contraseña o especificar cómo debe proceder el proceso de conversión. + +### **Convertir PowerPoint a PDF con Opciones Personalizadas** + +Usando opciones de conversión personalizadas, puede definir la configuración de calidad preferida para imágenes raster, especificar cómo deben manejarse los metafiles, establecer un nivel de compresión para texto, configurar DPI para imágenes y más. + +El siguiente ejemplo de código muestra cómo convertir una presentación de PowerPoint a PDF con varias opciones personalizadas. +```js +// Instanciar la clase PdfOptions. +let pdfOptions = new aspose.slides.PdfOptions(); + +// Establecer la calidad para imágenes JPG. +pdfOptions.setJpegQuality(java.newByte(90)); + +// Establecer DPI para imágenes. +pdfOptions.setSufficientResolution(300); + +// Establecer el comportamiento para metafiles. +pdfOptions.setSaveMetafilesAsPng(true); + +// Establecer el nivel de compresión de texto para el contenido textual. +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// Definir el modo de cumplimiento PDF. +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// Instanciar la clase Presentation que representa un archivo PowerPoint u OpenDocument file. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Guardar la presentación como documento PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Convertir PowerPoint a PDF con Diapositivas Ocultas** + +Si una presentación contiene diapositivas ocultas, puede usar el método [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) de la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) para incluir las diapositivas ocultas como páginas en el PDF resultante. + +Este código JavaScript muestra cómo convertir una presentación de PowerPoint a PDF incluyendo las diapositivas ocultas: +```js +// Instanciar la clase Presentation que representa un archivo PowerPoint u OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Instanciar la clase PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Agregar diapositivas ocultas. + pdfOptions.setShowHiddenSlides(true); + + // Guardar la presentación como PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Convertir PowerPoint a PDF protegido con contraseña** + +Este código JavaScript demuestra cómo convertir una presentación de PowerPoint a un PDF protegido con contraseña usando los parámetros de protección de la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions): +```js +// Instanciar la clase Presentation que representa un archivo PowerPoint o OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Instanciar la clase PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Establecer una contraseña PDF y permisos de acceso. + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // Guardar la presentación como PDF. + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Detectar sustituciones de fuentes** + +Aspose.Slides proporciona el método [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) bajo la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), lo que le permite detectar sustituciones de fuentes durante el proceso de conversión de presentación a PDF. + +Este código JavaScript muestra cómo detectar sustituciones de fuentes: +```js +// Establecer la devolución de llamada de advertencia en las opciones PDF. +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// Instanciar la clase Presentation que representa un archivo PowerPoint u OpenDocument. +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// Guardar la presentación como PDF. +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} +Para obtener más información sobre cómo recibir devoluciones de llamada para sustituciones de fuentes durante el proceso de renderizado, consulte [Getting Warning Callbacks for Fonts Substitution](/slides/es/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/). + +Para más información sobre la sustitución de fuentes, vea el artículo [Font Substitution](/slides/es/nodejs-java/font-substitution/). +{{% /alert %}} + +## **Convertir diapositivas seleccionadas de PowerPoint a PDF** + +Este código JavaScript demuestra cómo convertir solo diapositivas específicas de una presentación de PowerPoint a PDF: +```js +// Instanciar la clase Presentation que representa un archivo PowerPoint u OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Establecer la matriz de números de diapositivas. + let slides = java.newArray("int", [1, 3]); + + // Guardar la presentación como PDF. + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **Convertir PowerPoint a PDF con Tamaño de Diapositiva Personalizado** + +Este código JavaScript demuestra cómo convertir una presentación de PowerPoint a PDF con un tamaño de diapositiva especificado: +```js +const slideWidth = 612; +const slideHeight = 792; + +// Instanciar la clase Presentation que representa un archivo PowerPoint o OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// Crear una nueva presentación con un tamaño de diapositiva ajustado. +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // Establecer el tamaño de diapositiva personalizado. + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // Clonar la primera diapositiva de la presentación original. + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // Guardar la presentación redimensionada en un PDF con notas. + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **Convertir PowerPoint a PDF en Vista de Notas de Diapositiva** + +Este código JavaScript demuestra cómo convertir una presentación de PowerPoint a un PDF que incluya notas: +```js +// Instanciar la clase Presentation que representa un archivo PowerPoint o OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // Configurar las opciones PDF con diseño de notas. + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // Guardar la presentación en un PDF con notas. + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Accesibilidad y normas de cumplimiento para PDF** + +Aspose.Slides le permite usar un procedimiento de conversión que cumple con las [Directrices de Accesibilidad al Contenido Web (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html). Puede exportar un documento de PowerPoint a PDF usando cualquiera de estas normas de cumplimiento: **PDF/A1a**, **PDF/A1b** y **PDF/UA**. + +Este código JavaScript demuestra un proceso de conversión de PowerPoint a PDF que produce varios PDFs basados en diferentes normas de cumplimiento: +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Nota" color="warning" %}} +Aspose.Slides admite operaciones de conversión de PDF, permitiendo convertir archivos PDF a formatos de archivo populares. Puede realizar conversiones de [PDF a HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/), [PDF a JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/) y [PDF a PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/). Otras conversiones de PDF a formatos especializados—[PDF a SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/), [PDF a TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/)—también son compatibles. +{{% /alert %}} + +## **Preguntas frecuentes** + +**¿Puedo convertir varios archivos de PowerPoint a PDF en lote?** + +Sí, Aspose.Slides admite la conversión por lotes de varios archivos PPT o PPTX a PDF. Puede iterar a través de sus archivos y aplicar el proceso de conversión programáticamente. + +**¿Es posible proteger con contraseña el PDF convertido?** + +Absolutamente. Use la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) para establecer una contraseña y definir permisos de acceso durante el proceso de conversión. + +**¿Cómo incluyo diapositivas ocultas en el PDF?** + +Utilice el método `setShowHiddenSlides` en la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) para incluir diapositivas ocultas en el PDF resultante. + +**¿Puede Aspose.Slides mantener alta calidad de imagen en el PDF?** + +Sí, puede controlar la calidad de imagen usando métodos como `setJpegQuality` y `setSufficientResolution` en la clase [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) para garantizar imágenes de alta calidad en su PDF. + +**¿Aspose.Slides soporta normas de cumplimiento PDF/A?** + +Sí, Aspose.Slides le permite exportar PDFs que cumplen con varias normas, incluidas PDF/A1a, PDF/A1b y PDF/UA, asegurando que sus documentos cumplan con requisitos de accesibilidad y archivado. + +## **Recursos adicionales** + +- [Documentación de Aspose.Slides para Node.js mediante Java](/slides/es/nodejs-java/) +- [Referencia de API de Aspose.Slides para Node.js mediante Java](https://reference.aspose.com/slides/nodejs-java/) +- [Convertidores gratuitos en línea de Aspose](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..26173ca5ce --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,119 @@ +--- +title: Convertir PowerPoint a PNG +type: docs +weight: 30 +url: /es/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint a PNG, PPT a PNG, PPTX a PNG, java, Aspose.Slides para Node.js mediante Java +description: Convertir presentación de PowerPoint a PNG +--- + +## **Acerca de la conversión de PowerPoint a PNG** + +El formato PNG (Portable Network Graphics) no es tan popular como JPEG (Joint Photographic Experts Group), pero sigue siendo muy popular. + +**Caso de uso:** Cuando tienes una imagen compleja y el tamaño no es un problema, PNG es un formato de imagen mejor que JPEG. + +{{% alert title="Tip" color="primary" %}} Es posible que desees consultar los convertidores gratuitos de Aspose **PowerPoint a PNG**: [PPTX a PNG](https://products.aspose.app/slides/conversion/pptx-to-png) y [PPT a PNG](https://products.aspose.app/slides/conversion/ppt-to-png). Son una implementación en vivo del proceso descrito en esta página. {{% /alert %}} + +## **Convertir PowerPoint a PNG** + +Sigue estos pasos: + +1. Instanciar la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtener el objeto de diapositiva de la colección devuelta por el método [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) bajo la clase [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide). +3. Utilizar el método [Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) para obtener la miniatura de cada diapositiva. +4. Utilizar el método [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) para guardar la miniatura de la diapositiva en formato PNG. + +Este código JavaScript muestra cómo convertir una presentación de PowerPoint a PNG: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a PNG con dimensiones personalizadas** + +Si deseas obtener archivos PNG con una escala determinada, puedes establecer los valores de `desiredX` y `desiredY`, que determinan las dimensiones de la miniatura resultante. + +Este código en JavaScript demuestra la operación descrita: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint a PNG con tamaño personalizado** + +Si deseas obtener archivos PNG con un tamaño determinado, puedes pasar tus argumentos preferidos `width` y `height` para `ImageSize`. + +Este código muestra cómo convertir un PowerPoint a PNG especificando el tamaño de las imágenes: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Cómo puedo exportar solo una forma específica (por ejemplo, un gráfico o una imagen) en lugar de toda la diapositiva?** + +Aspose.Slides admite [generar miniaturas para formas individuales](/slides/es/nodejs-java/create-shape-thumbnails/); puedes renderizar una forma a una imagen PNG. + +**¿Se admite la conversión paralela en un servidor?** + +Sí, pero [no compartas](/slides/es/nodejs-java/multithreading/) una única instancia de presentación entre hilos. Usa una instancia separada por hilo o proceso. + +**¿Cuáles son las limitaciones de la versión de prueba al exportar a PNG?** + +El modo de evaluación añade una marca de agua a las imágenes de salida y aplica [otras restricciones](/slides/es/nodejs-java/licensing/) hasta que se aplique una licencia. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..730c56bf9c --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,44 @@ +--- +title: Convertir PowerPoint a SWF Flash +type: docs +weight: 80 +url: /es/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT, PPTX a SWF" +description: "Convertir PowerPoint PPT, PPTX a SWF en JavaScript" +--- + +## **Convertir PPT(X) a SWF** +El método [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) expuesto por la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) puede usarse para convertir toda la presentación en un documento **SWF**. El siguiente ejemplo muestra cómo convertir una presentación en un documento **SWF** utilizando las opciones proporcionadas por la clase [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions). También puede incluir comentarios en el SWF generado usando la clase [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) y la clase [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions). +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Guardando la presentación + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Puedo incluir diapositivas ocultas en el SWF?** + +Sí. Use el método [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) en [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/). Por defecto, las diapositivas ocultas no se exportan. + +**¿Cómo puedo controlar la compresión y el tamaño final del SWF?** + +Use el método [setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) y [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/) para equilibrar el tamaño del archivo y la fidelidad de la imagen. + +**¿Para qué sirve 'setViewerIncluded' y cuándo debería usarlo?** + +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) agrega una interfaz de reproductor incrustada (controles de navegación, paneles, búsqueda). Úselo si planea utilizar su propio reproductor o necesita un marco SWF básico sin UI. + +**¿Qué ocurre si falta una fuente original en la máquina de exportación?** + +Aspose.Slides sustituirá la fuente que especifique mediante [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) en [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) para evitar una sustitución no deseada. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..916344742f --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,93 @@ +--- +title: Convertir PowerPoint a TIFF con notas en JavaScript +linktitle: PowerPoint a TIFF con notas +type: docs +weight: 100 +url: /es/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- convertir PowerPoint a TIFF +- convertir presentación a TIFF +- convertir diapositiva a TIFF +- convertir PPT a TIFF +- convertir PPTX a TIFF +- convertir ODP a TIFF +- PowerPoint a TIFF +- presentación a TIFF +- diapositiva a TIFF +- PPT a TIFF +- PPTX a TIFF +- ODP a TIFF +- PowerPoint con notas +- presentación con notas +- diapositiva con notas +- PPT con notas +- PPTX con notas +- ODP con notas +- TIFF con notas +- Node.js +- JavaScript +- Aspose.Slides +description: "Convertir presentaciones PowerPoint y OpenDocument a TIFF con notas usando Aspose.Slides para Node.js a través de Java. Aprenda cómo exportar diapositivas con notas del presentador de manera eficiente." +--- + +## **Descripción general** + +Aspose.Slides for Node.js via Java ofrece una solución sencilla para convertir presentaciones PowerPoint y OpenDocument (PPT, PPTX y ODP) con notas al formato TIFF. Este formato se utiliza ampliamente para el almacenamiento de imágenes de alta calidad, la impresión y el archivo de documentos. Con Aspose.Slides, no solo puede exportar presentaciones completas con notas del orador, sino también generar miniaturas de diapositivas en la vista de Diapositiva de notas. El proceso de conversión es simple y eficiente, utilizando el método `save` de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) para transformar toda la presentación en una serie de imágenes TIFF mientras se conservan las notas y el diseño. + +## **Convertir una presentación a TIFF con notas** + +Guardar una presentación PowerPoint o OpenDocument en TIFF con notas usando Aspose.Slides for Node.js via Java implica los siguientes pasos: + +1. Instanciar la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/): Cargar un archivo PowerPoint o OpenDocument. +1. Configurar las opciones de diseño de salida: Utilizar la clase [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/) para especificar cómo se deben mostrar las notas y los comentarios. +1. Guardar la presentación en TIFF: Pasar las opciones configuradas al método [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save). + +Supongamos que tenemos un archivo "speaker_notes.pptx" con la siguiente diapositiva: + +![The presentation slide with speaker notes](slide_with_notes.png) + +El fragmento de código a continuación muestra cómo convertir la presentación a una imagen TIFF en la vista de Diapositiva de notas usando el método [setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions). +```js +// Instanciar la clase Presentation que representa un archivo de presentación. +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // Mostrar las notas debajo de la diapositiva. + + // Configurar las opciones TIFF con diseño de notas. + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Guardar la presentación a TIFF con las notas del presentador. + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +El resultado: + +![The TIFF image with speaker notes](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} + +Consulte el [Convertidor gratuito de PowerPoint a póster de Aspose](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online). + +{{% /alert %}} + +## **Preguntas frecuentes** + +**¿Puedo controlar la posición del área de notas en el TIFF resultante?** + +Sí. Use la [configuración de diseño de notas](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) para elegir entre opciones como `None`, `BottomTruncated` o `BottomFull`, que respectivamente ocultan las notas, las ajustan en una sola página o permiten que continúen en páginas adicionales. + +**¿Cómo puedo reducir el tamaño de un archivo TIFF con notas sin pérdida visible de calidad?** + +Elija una [compresión eficiente](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/) (p. ej., `LZW` o `RLE`), establezca un DPI razonable y, si es aceptable, use un [formato de píxel](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/) más bajo (como 8 bpp o 1 bpp para monocromo). Reducir ligeramente las [dimensiones de la imagen](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) también puede ayudar sin afectar notablemente la legibilidad. + +**¿Afecta la fuente de las notas al resultado si las fuentes originales no están instaladas en el sistema?** + +Sí. Las fuentes faltantes activan la [sustitución](/slides/es/nodejs-java/font-selection-sequence/), lo que puede cambiar las métricas y la apariencia del texto. Para evitarlo, [proporcione las fuentes requeridas](/slides/es/nodejs-java/custom-font/) o establezca una [fuente de respaldo](/slides/es/nodejs-java/fallback-font/) predeterminada para que se utilicen los tipos de letra previstos. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..60a7d8eb33 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,164 @@ +--- +title: Convertir presentaciones de PowerPoint a TIFF en JavaScript +titlelink: PowerPoint a TIFF +type: docs +weight: 90 +url: /es/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- convertir PowerPoint +- convertir OpenDocument +- convertir presentación +- convertir diapositiva +- PowerPoint a TIFF +- OpenDocument a TIFF +- presentación a TIFF +- diapositiva a TIFF +- PPT a TIFF +- PPTX a TIFF +- ODP a TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "Aprenda cómo convertir fácilmente presentaciones de PowerPoint (PPT, PPTX) y OpenDocument (ODP) a imágenes TIFF de alta calidad utilizando Aspose.Slides para Node.js vía Java. Guía paso a paso con ejemplos de código incluidos." +--- + +## **Visión general** + +TIFF (**Tagged Image File Format**) es un formato de imagen rasterizada sin pérdida de calidad muy utilizado, conocido por su calidad excepcional y preservación detallada de gráficos. Diseñadores, fotógrafos y editores de escritorio suelen elegir TIFF para mantener capas, precisión de color y configuraciones originales en sus imágenes. + +Usando Aspose.Slides, puedes convertir sin esfuerzo tus diapositivas de PowerPoint (PPT, PPTX) y diapositivas OpenDocument (ODP) directamente en imágenes TIFF de alta calidad, asegurando que tus presentaciones mantengan la máxima fidelidad visual. + +## **Convertir una presentación a TIFF** + +Usando el método [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-) proporcionado por la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/), puedes convertir rápidamente una presentación completa de PowerPoint a TIFF. Las imágenes TIFF resultantes corresponden al tamaño de diapositiva predeterminado. + +Este código JavaScript demuestra cómo convertir una presentación de PowerPoint a TIFF: +```js +// Instanciar la clase Presentation que representa un archivo de presentación (PPT, PPTX, ODP, etc.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // Guardar la presentación como TIFF. + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **Convertir una presentación a TIFF en blanco y negro** + +El método [setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) en la clase [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) permite especificar el algoritmo utilizado al convertir una diapositiva o imagen en color a un TIFF en blanco y negro. Ten en cuenta que esta configuración se aplica solo cuando el método [setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) está establecido en `CCITT4` o `CCITT3`. + +Supongamos que tenemos un archivo "sample.pptx" con la siguiente diapositiva: + +![Una diapositiva de presentación](slide_black_and_white.png) + +Este código JavaScript demuestra cómo convertir la diapositiva coloreada a un TIFF en blanco y negro: +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +El resultado: + +![TIFF en blanco y negro](TIFF_black_and_white.png) + +## **Convertir una presentación a TIFF con tamaño personalizado** + +Si necesitas una imagen TIFF con dimensiones específicas, puedes establecer los valores deseados usando los métodos disponibles en [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). Por ejemplo, el método [setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize) permite definir el tamaño de la imagen resultante. + +Este código JavaScript demuestra cómo convertir una presentación de PowerPoint a imágenes TIFF con un tamaño personalizado: +```js +// Instanciar la clase Presentation que representa un archivo de presentación (PPT, PPTX, ODP, etc.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // Establecer el tipo de compresión. + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + Tipos de compresión: + Default - Especifica el esquema de compresión predeterminado (LZW). + None - Especifica sin compresión. + CCITT3 + CCITT4 + LZW + RLE + */ + + // La profundidad depende del tipo de compresión y no se puede establecer manualmente. + + // Establecer la DPI de la imagen. + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // Establecer el tamaño de la imagen. + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Guardar la presentación como TIFF con el tamaño especificado. + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Convertir una presentación a TIFF con formato de píxel de imagen personalizado** + +Usando el método [setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) de la clase [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) puedes especificar el formato de píxel preferido para la imagen TIFF resultante. + +Este código JavaScript demuestra cómo convertir una presentación de PowerPoint a una imagen TIFF con un formato de píxel personalizado: +```js +// Instanciar la clase Presentation que representa un archivo de presentación (PPT, PPTX, ODP, etc.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat contiene los siguientes valores (según la documentación): + Format1bppIndexed - 1 bit por píxel, indexado. + Format4bppIndexed - 4 bits por píxel, indexado. + Format8bppIndexed - 8 bits por píxel, indexado. + Format24bppRgb - 24 bits por píxel, RGB. + Format32bppArgb - 32 bits por píxel, ARGB. + */ + + /// Guardar la presentación como TIFF con el tamaño de imagen especificado. + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Tip" color="primary" %}} +Consulta el [convertidor GRATUITO de PowerPoint a póster de Aspose](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online). +{{% /alert %}} + +## **Preguntas frecuentes** + +**¿Puedo convertir una diapositiva individual en lugar de toda la presentación de PowerPoint a TIFF?** + +Sí. Aspose.Slides permite convertir diapositivas individuales de presentaciones PowerPoint y OpenDocument en imágenes TIFF por separado. + +**¿Existe algún límite en la cantidad de diapositivas al convertir una presentación a TIFF?** + +No, Aspose.Slides no impone restricciones en la cantidad de diapositivas. Puedes convertir presentaciones de cualquier tamaño al formato TIFF. + +**¿Se conservan las animaciones y los efectos de transición de PowerPoint al convertir diapositivas a TIFF?** + +No, TIFF es un formato de imagen estática. Por lo tanto, las animaciones y los efectos de transición no se conservan; solo se exportan instantáneas estáticas de las diapositivas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..48fb73a7c1 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,335 @@ +--- +title: Convertir PowerPoint a Video +type: docs +weight: 130 +url: /es/nodejs-java/convert-powerpoint-to-video/ +keywords: "Convertir PowerPoint, PPT, PPTX, Presentación, Video, MP4, PPT a video, PPT a MP4, Java, Aspose.Slides" +description: "Convertir PowerPoint a Video en JavaScript" +--- + +Al convertir su presentación de PowerPoint a video, obtiene + +* **Aumento de accesibilidad:** Todos los dispositivos (independientemente de la plataforma) están equipados con reproductores de video por defecto en comparación con las aplicaciones de apertura de presentaciones, por lo que a los usuarios les resulta más fácil abrir o reproducir videos. +* **Mayor alcance:** A través de los videos, puede llegar a una gran audiencia y dirigirse a ella con información que de otro modo podría parecer tediosa en una presentación. La mayoría de encuestas y estadísticas sugieren que la gente ve y consume videos más que otras formas de contenido, y generalmente prefieren ese tipo de contenido. + +{{% alert color="primary" %}} + +Es posible que desee consultar nuestro [**Convertidor en línea de PowerPoint a Video**](https://products.aspose.app/slides/conversion/ppt-to-word) porque es una implementación en vivo y eficaz del proceso descrito aquí. + +{{% /alert %}} + +## **Conversión de PowerPoint a Video en Aspose.Slides** + +En [Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/), implementamos soporte para la conversión de presentaciones a video. + +* Utilice **Aspose.Slides** para generar un conjunto de fotogramas (a partir de las diapositivas de la presentación) que correspondan a un determinado FPS (fotogramas por segundo) +* Utilice una utilidad de terceros como **ffmpeg** ([para java](https://github.com/bramp/ffmpeg-cli-wrapper)) para crear un video a partir de los fotogramas. + +### **Convertir PowerPoint a Video** + +1. Descargue ffmpeg [aquí](https://ffmpeg.org/download.html). + +2. Ejecute el código JavaScript de PowerPoint a video. + +Este código JavaScript le muestra cómo convertir una presentación (que contiene una figura y dos efectos de animación) a un video: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Añade una forma de sonrisa y luego la anima + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Configura la carpeta de binarios de ffmpeg. Ver esta página: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Efectos de Video** + +Puede aplicar animaciones a objetos en las diapositivas y usar transiciones entre diapositivas. + +{{% alert color="primary" %}} + +Es posible que desee ver estos artículos: [Animación de PowerPoint](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/), [Animación de Forma](https://docs.aspose.com/slides/nodejs-java/shape-animation/), y [Efecto de Forma](https://docs.aspose.com/slides/nodejs-java/shape-effect/). + +{{% /alert %}} + +Las animaciones y transiciones hacen que las presentaciones sean más atractivas e interesantes—y hacen lo mismo con los videos. Añadamos otra diapositiva y transición al código de la presentación anterior: +```javascript +// Añade una forma de sonrisa y la anima +// ... +// Añade una diapositiva nueva y transición animada +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +Aspose.Slides también admite animación para textos. Así animamos párrafos en objetos, que aparecerán uno tras otro (con el retraso establecido en un segundo): +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Añade texto y animaciones + var autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 120, 300, 300); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Aspose Slides for Node.js via Java")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("convert PowerPoint Presentation with text to video")); + var para3 = new aspose.slides.Paragraph(); + para3.getPortions().add(new aspose.slides.Portion("paragraph by paragraph")); + var paragraphCollection = autoShape.getTextFrame().getParagraphs(); + paragraphCollection.add(para1); + paragraphCollection.add(para2); + paragraphCollection.add(para3); + paragraphCollection.add(new aspose.slides.Paragraph()); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effect1 = mainSequence.addEffect(para1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect2 = mainSequence.addEffect(para2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect3 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect4 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + effect1.getTiming().setTriggerDelayTime(1.0); + effect2.getTiming().setTriggerDelayTime(1.0); + effect3.getTiming().setTriggerDelayTime(1.0); + effect4.getTiming().setTriggerDelayTime(1.0); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Configura la carpeta de binarios de ffmpeg. Ver esta página: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Clases de Conversión de Video** + +Para permitirle realizar tareas de conversión de PowerPoint a video, Aspose.Slides proporciona las clases [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) y [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). + +[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) le permite establecer el tamaño del fotograma para el video (que se creará más adelante) a través de su constructor. Si pasa una instancia de la presentación, `Presentation.getSlideSize` se utilizará y genera animaciones que [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) usa. + +Cuando se generan animaciones, se genera un evento `NewAnimation` para cada animación subsiguiente, que tiene el parámetro [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/). Este último es una clase que representa un reproductor para una animación independiente. + +Para trabajar con [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/), se utilizan los métodos [getDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#getDuration--) (la duración total de la animación) y [setTimePosition](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#setTimePosition-double-). Cada posición de animación se establece dentro del rango *0 a duration*, y luego el método `getFrame` devolverá un BufferedImage que corresponde al estado de la animación en ese momento: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Añade una forma de sonrisa y la anima + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// estado inicial de la animación + try { + // bitmap del estado inicial de la animación + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// estado final de la animación + try { + // último fotograma de la animación + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Para que todas las animaciones de una presentación se reproduzcan a la vez, se utiliza la clase [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). Esta clase toma una instancia de [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) y FPS para los efectos en su constructor y luego llama al evento `FrameTick` para todas las animaciones para que se reproduzcan: +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Luego los fotogramas generados pueden compilarse para producir un video. Consulte la sección [Convertir PowerPoint a Video](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video). + +## **Animaciones y Efectos admitidos** + +**Entrada**: + +| Tipo de Animación | Aspose.Slides | PowerPoint | +|---|---|---| +| **Appear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly In** | ![supported](v.png) | ![supported](v.png) | +| **Float In** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Wheel** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Grow & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**Énfasis**: + +| Tipo de Animación | Aspose.Slides | PowerPoint | +|---|---|---| +| **Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Color Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Teeter** | ![supported](v.png) | ![supported](v.png) | +| **Spin** | ![supported](v.png) | ![supported](v.png) | +| **Grow/Shrink** | ![not supported](x.png) | ![supported](v.png) | +| **Desaturate** | ![not supported](x.png) | ![supported](v.png) | +| **Darken** | ![not supported](x.png) | ![supported](v.png) | +| **Lighten** | ![not supported](x.png) | ![supported](v.png) | +| **Transparency** | ![not supported](x.png) | ![supported](v.png) | +| **Object Color** | ![not supported](x.png) | ![supported](v.png) | +| **Complementary Color** | ![not supported](x.png) | ![supported](v.png) | +| **Line Color** | ![not supported](x.png) | ![supported](v.png) | +| **Fill Color** | ![not supported](x.png) | ![supported](v.png) | + +**Salida**: + +| Tipo de Animación | Aspose.Slides | PowerPoint | +|---|---|---| +| **Disappear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly Out** | ![supported](v.png) | ![supported](v.png) | +| **Float Out** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Shrink & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**Rutas de Movimiento:** + +| Tipo de Animación | Aspose.Slides | PowerPoint | +|---|---|---| +| **Lines** | ![supported](v.png) | ![supported](v.png) | +| **Arcs** | ![supported](v.png) | ![supported](v.png) | +| **Turns** | ![supported](v.png) | ![supported](v.png) | +| **Shapes** | ![supported](v.png) | ![supported](v.png) | +| **Loops** | ![supported](v.png) | ![supported](v.png) | +| **Custom Path** | ![supported](v.png) | ![supported](v.png) | + +## **Preguntas frecuentes** + +**¿Es posible convertir presentaciones protegidas con contraseña?** + +Sí, Aspose.Slides permite trabajar con presentaciones protegidas con contraseña. Al procesar dichos archivos, debe proporcionar la contraseña correcta para que la biblioteca pueda acceder al contenido de la presentación. + +**¿Aspose.Slides admite su uso en soluciones en la nube?** + +Sí, Aspose.Slides puede integrarse en aplicaciones y servicios en la nube. La biblioteca está diseñada para funcionar en entornos de servidor, garantizando alto rendimiento y escalabilidad para el procesamiento por lotes de archivos. + +**¿Existen limitaciones de tamaño para las presentaciones durante la conversión?** + +Aspose.Slides es capaz de manejar presentaciones de prácticamente cualquier tamaño. Sin embargo, al trabajar con archivos muy grandes, pueden requerirse recursos adicionales del sistema, y a veces se recomienda optimizar la presentación para mejorar el rendimiento. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..0b891c663e --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,94 @@ +--- +title: Convertir PowerPoint a XPS +type: docs +weight: 70 +url: /es/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX a XPS" +description: "Convertir PowerPoint PPT(X) a XPS en JavaScript" +--- + +## **Acerca de XPS** + +Microsoft desarrolló [XPS](https://docs.fileformat.com/page-description-language/xps/) como una alternativa a [PDF](https://docs.fileformat.com/pdf/). Permite imprimir contenido generando un archivo muy parecido a un PDF. El formato XPS se basa en XML. El diseño o la estructura de un archivo XPS permanece igual en todos los sistemas operativos e impresoras. + +## **Cuándo usar el formato Microsoft XPS** + +{{% alert color="primary" %}} +Para ver cómo Aspose.Slides convierte una presentación PPT o PPTX al formato XPS, puede consultar [esta aplicación gratuita de conversión en línea](https://products.aspose.app/slides/conversion). +{{% /alert %}} + +Si desea reducir los costos de almacenamiento, puede convertir su presentación de Microsoft PowerPoint al formato XPS. De esta forma encontrará más fácil guardar, compartir e imprimir sus documentos. + +Microsoft sigue implementando un fuerte soporte para XPS en Windows (incluso en Windows 10), por lo que puede considerar guardar archivos en este formato. Si está trabajando con Windows 8.1, Windows 8, Windows 7 y Windows Vista, XPS podría ser su mejor opción para ciertas operaciones. + +- **Windows 8** usa el formato OXPS (Open XPS) para los archivos XPS. OXPS es una versión estandarizada del formato XPS original. Windows 8 ofrece mejor compatibilidad con archivos XPS que con archivos PDF. + - **XPS:** Visor/lector XPS incorporado y función de impresión a XPS disponible. + - **PDF:** Lector PDF disponible pero sin función de impresión a PDF. + +- **Windows 7 y Windows Vista** usan el formato XPS original. Estos sistemas operativos también brindan mejor compatibilidad con archivos XPS que con PDFs. + - **XPS:** Visor XPS incorporado y función de impresión a XPS disponible. + - **PDF:** No hay lector PDF. No hay función de impresión a PDF. + +|

**Entrada PPT(X):

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**Salida XPS:

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| +| :- | :- | + + + +Microsoft implementó finalmente el soporte para operaciones de impresión en PDF mediante la función Imprimir a PDF en Windows 10. Anteriormente, se esperaba que los usuarios imprimieran documentos a través del formato XPS. + +## **Conversión a XPS con Aspose.Slides** + +En [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), puede usar el método [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) expuesto por la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) para convertir toda la presentación en un documento XPS. + +Al convertir una presentación a XPS, debe guardar la presentación usando una de estas configuraciones: + +- Configuración predeterminada (sin [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) +- Configuración personalizada (con [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) + +### **Convertir presentaciones a XPS usando la configuración predeterminada** + +Este código de muestra en JavaScript muestra cómo convertir una presentación a un documento XPS usando la configuración estándar: +```javascript +// Instanciar un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // Guardar la presentación en un documento XPS + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Convertir presentaciones a XPS usando la configuración personalizada** + +Este código de muestra muestra cómo convertir una presentación a un documento XPS usando configuraciones personalizadas en JavaScript: +```javascript +// Instanciar un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // Instanciar la clase TiffOptions + var options = new aspose.slides.XpsOptions(); + // Guardar MetaFiles como PNG + options.setSaveMetafilesAsPng(true); + // Guardar la presentación en un documento XPS + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Puedo guardar XPS en un flujo (stream) en lugar de un archivo?** + +Sí—Aspose.Slides le permite exportar directamente a un flujo, lo que es ideal para API web, canalizaciones del lado del servidor o cualquier escenario en el que necesite enviar el XPS sin tocar el sistema de archivos. + +**¿Se conservan las diapositivas ocultas al exportar a XPS y puedo excluirlas?** + +Por defecto, solo se renderizan las diapositivas regulares (visibles). Puede [incluir o excluir diapositivas ocultas](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/) mediante [configuraciones de exportación](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/) antes de guardar a XPS, garantizando que la salida contenga exactamente las páginas que desea. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..f49e18606f --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,101 @@ +--- +title: Convertir PPT a PPTX en JavaScript +linktitle: Convertir PPT a PPTX +type: docs +weight: 20 +url: /es/nodejs-java/convert-ppt-to-pptx/ +keywords: "Java Convertir PPT a PPTX, PowerPoint PPT a PPTX en JavaScript" +description: "Convertir PowerPoint PPT a PPTX en JavaScript." +--- + +## **Visión general** + +Este artículo explica cómo convertir una presentación de PowerPoint en formato PPT a formato PPTX usando JavaScript y con la aplicación en línea de conversión de PPT a PPTX. Se cubre el siguiente tema. + +- Convertir PPT a PPTX en JavaScript + +## **Java Convertir PPT a PPTX** + +Para el código de ejemplo en JavaScript que convierte PPT a PPTX, consulte la sección a continuación, es decir, [Convertir PPT a PPTX](#convert-ppt-to-pptx). Simplemente carga el archivo PPT y lo guarda en formato PPTX. Al especificar diferentes formatos de guardado, también puede guardar el archivo PPT en muchos otros formatos como PDF, XPS, ODP, HTML, etc., como se discute en estos artículos. + +- [Java Convertir PPT a PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java Convertir PPT a XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java Convertir PPT a HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java Convertir PPT a ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java Convertir PPT a Imagen](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **Acerca de la conversión de PPT a PPTX** +Convierta el formato PPT antiguo a PPTX con la API Aspose.Slides. Si necesita convertir miles de presentaciones PPT a formato PPTX, la mejor solución es hacerlo mediante código. Con la API Aspose.Slides es posible hacerlo en solo unas pocas líneas de código. La API soporta completa compatibilidad para convertir presentaciones PPT a PPTX y permite: + +- Convertir estructuras complejas de maestros, diseños y diapositivas. +- Convertir presentaciones con gráficos. +- Convertir presentaciones con formas agrupadas, autoformas (como rectángulos y elipses), formas con geometría personalizada. +- Convertir presentaciones que tienen texturas y estilos de relleno de imágenes para autoformas. +- Convertir presentaciones con marcadores de posición, marcos de texto y contenedores de texto. + +{{% alert color="primary" %}} + +Eche un vistazo a la aplicación [**Aspose.Slides PPT a PPTX Conversion**](https://products.aspose.app/slides/conversion/ppt-to-pptx): + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +Esta aplicación está construida sobre la [**API Aspose.Slides**](https://products.aspose.com/slides/nodejs-java/), por lo que puede ver un ejemplo en vivo de las capacidades básicas de conversión de PPT a PPTX. Aspose.Slides Conversion es una aplicación web que permite arrastrar un archivo de presentación en formato PPT y descargarlo convertido a PPTX. + +Encuentre otros ejemplos en vivo de [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/). +{{% /alert %}} + +## **Convertir PPT a PPTX** +Aspose.Slides para Node.js mediante Java ahora facilita a los desarrolladores acceder al PPT mediante la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) y convertirlo al respectivo formato [PPTX](https://docs.fileformat.com/presentation/pptx/). Actualmente, soporta la conversión parcial de [PPT](https://docs.fileformat.com/presentation/ppt/) a PPTX. Para obtener más detalles sobre qué características están soportadas y no soportadas en la conversión de PPT a PPTX, consulte esta documentación [enlace](/slides/es/nodejs-java/ppt-to-pptx-conversion/). + +Aspose.Slides para Node.js mediante Java ofrece la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) que representa un archivo de presentación **PPTX**. La clase Presentation ahora también puede acceder a **PPT** a través de Presentation cuando se instancia el objeto. El siguiente ejemplo muestra cómo convertir una presentación PPT en una presentación PPTX. +```javascript +// Instanciar un objeto Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // Guardando la presentación PPTX en formato PPTX + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**Figura: Presentación PPT de origen**| + +El fragmento de código anterior genera la siguiente presentación PPTX después de la conversión + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**Figura: Presentación PPTX generada después de la conversión**| + +## **Preguntas frecuentes** + +**¿Cuál es la diferencia entre los formatos PPT y PPTX?** + +PPT es el formato binario más antiguo usado por Microsoft PowerPoint, mientras que PPTX es el formato basado en XML introducido con Microsoft Office 2007. Los archivos PPTX ofrecen mejor rendimiento, menor tamaño y recuperación de datos más eficaz. + +**¿Aspose.Slides soporta la conversión por lotes de varios archivos PPT a PPTX?** + +Sí, puede usar Aspose.Slides en un bucle para convertir múltiples archivos PPT a PPTX programáticamente, lo que lo hace adecuado para escenarios de conversión por lotes. + +**¿Se preservarán el contenido y el formato después de la conversión?** + +Aspose.Slides mantiene alta fidelidad al convertir presentaciones. Los diseños de diapositivas, animaciones, formas, gráficos y otros elementos de diseño se conservan durante la conversión de PPT a PPTX. + +**¿Puedo convertir otros formatos como PDF o HTML a partir de archivos PPT?** + +Sí, Aspose.Slides soporta la conversión de archivos PPT a varios formatos, incluidos PDF, XPS, HTML, ODP y formatos de imagen como PNG y JPEG. + +**¿Es posible convertir PPT a PPTX sin tener Microsoft PowerPoint instalado?** + +Sí, Aspose.Slides es una API independiente y no requiere Microsoft PowerPoint ni ningún software de terceros para realizar la conversión. + +**¿Existe una herramienta en línea disponible para la conversión de PPT a PPTX?** + +Sí, puede usar la aplicación web gratuita [Aspose.Slides PPT a PPTX Converter](https://products.aspose.app/slides/conversion/ppt-to-pptx) para realizar la conversión directamente en su navegador sin escribir código. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..8d6a9adf79 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: Convertir PPTX a PPT en JavaScript +linktitle: Convertir PPTX a PPT +type: docs +weight: 21 +url: /es/nodejs-java/convert-pptx-to-ppt/ +keywords: "Java Convertir PPTX a PPT, Convertir presentación de PowerPoint, PPTX a PPT, Java, Aspose.Slides" +description: "Convertir PowerPoint PPTX a PPT en JavaScript" +--- + +## **Visión general** + +Este artículo explica cómo convertir una presentación de PowerPoint en formato PPTX a formato PPT usando JavaScript. Se cubre el siguiente tema. + +- Convertir PPTX a PPT en JavaScript + +## **Java Convertir PPTX a PPT** + +Para el código de muestra en JavaScript que convierte PPTX a PPT, vea la sección a continuación, es decir, [Convert PPTX to PPT](#convert-pptx-to-ppt). Simplemente carga el archivo PPTX y lo guarda en formato PPT. Al especificar diferentes formatos de guardado, también puede guardar el archivo PPTX en muchos otros formatos como PDF, XPS, ODP, HTML, etc., como se discute en estos artículos. + +- [Java Convertir PPTX a PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java Convertir PPTX a XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java Convertir PPTX a HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java Convertir PPTX a ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java Convertir PPTX a Imagen](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **Convertir PPTX a PPT** + +Para convertir un PPTX a PPT, simplemente pase el nombre del archivo y el formato de guardado al método **Save** de la clase [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). El ejemplo de código JavaScript a continuación convierte una Presentation de PPTX a PPT usando opciones predeterminadas. +```javascript +// instancia un objeto Presentation que representa un archivo PPTX +var presentation = new aspose.slides.Presentation("template.pptx"); +// guarda la presentación como PPT +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **Preguntas frecuentes** + +**¿Todos los efectos y características de PPTX se conservan al guardar en el formato PPT heredado (97–2003)?** + +No siempre. El formato PPT carece de algunas capacidades más recientes (p. ej., ciertos efectos, objetos y comportamientos), por lo que las características pueden simplificarse o rasterizarse durante la conversión. + +**¿Puedo convertir solo diapositivas seleccionadas a PPT en lugar de toda la presentación?** + +El guardado directo se aplica a toda la presentación. Para convertir diapositivas específicas, cree una nueva presentación con solo esas diapositivas y guárdela como PPT; alternativamente, utilice un servicio/API que admita parámetros de conversión por diapositiva. + +**¿Se admiten presentaciones protegidas con contraseña?** + +Sí. Puede detectar si un archivo está protegido, abrirlo con una contraseña y también [configurar la protección/ajustes de cifrado](/slides/es/nodejs-java/password-protected-presentation/) para el PPT guardado. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..adb415dec8 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,65 @@ +--- +title: PPT vs PPTX +type: docs +weight: 10 +url: /es/nodejs-java/ppt-vs-pptx/ +keywords: "PPT vs PPTX" +description: "Lea sobre las diferencias entre PPT y PPTX en Aspose.Slides." +--- + +## **¿Qué es PPT?** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) es un formato de archivo binario, es decir, es imposible ver su contenido sin herramientas especiales. Las primeras versiones de PowerPoint 97-2003 trabajaban con el formato de archivo PPT, sin embargo su expandibilidad es limitada. + +## **¿Qué es PPTX?** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) es un nuevo formato de archivo de presentación, basado en el estándar Office Open XML (ISO 29500:2008-2016, ECMA-376). PPTX es un conjunto archivado de archivos XML y de medios. El formato PPTX es fácilmente ampliable. Por ejemplo, es sencillo añadir soporte para un nuevo tipo de gráfico o forma, sin cambiar el formato PPTX en cada nueva versión de PowerPoint. El formato PPTX se usa a partir de PowerPoint 2007. + +## **PPT vs PPTX** + +Aunque PPTX ofrece una funcionalidad mucho más amplia, PPT sigue siendo bastante popular. La necesidad de convertir de PPT a PPTX y viceversa es muy demandada. + +Sin embargo, la conversión entre el antiguo formato PPT y el nuevo formato PPTX es el desafío más complicado entre los demás formatos de Microsoft Office. Aunque la especificación del formato PPT es abierta, resulta difícil trabajar con ella. PowerPoint puede crear partes especiales (MetroBlob) en archivos PPT para almacenar información de PPTX que no es compatible con el formato PPT y que no puede mostrarse en versiones antiguas de PowerPoint. Esta información puede restaurarse cuando un archivo PPT se carga en una versión moderna de PowerPoint o se convierte al formato PPTX. + +Aspose.Slides proporciona una clase común para trabajar con todos los formatos de presentación. Permite convertir de PPT a PPTX y de PPTX a PPT de forma muy sencilla. Aspose.Slides admite completamente la conversión de PPT a PPTX y también admite la conversión de PPTX a PPT con algunas restricciones. Recomendamos usar el formato PPTX siempre que sea posible. + +{{% alert color="primary" %}} + +Comprueba la calidad de las conversiones de PPT a PPTX y de PPTX a PPT con la [**aplicación de conversión Aspose.Slides**](https://products.aspose.app/slides/conversion/). + +{{% /alert %}} +```javascript +// Instanciar un objeto Presentation que representa un archivo PPT +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // Guardar la presentación PPT en formato PPTX + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Lea más [**Cómo convertir presentaciones PPT a PPTX**.](/slides/es/nodejs-java/convert-ppt-to-pptx/) +{{% /alert %}} + +## **FAQ** + +**¿Tiene sentido mantener presentaciones antiguas en PPT si se abren sin errores?** + +Si una presentación se abre de manera fiable y no necesita colaboración ni funciones más recientes, puede conservarse en PPT. Pero para garantizar la compatibilidad futura y la extensibilidad, es mejor [convertir a PPTX](/slides/es/nodejs-java/convert-ppt-to-pptx/): el formato se basa en el estándar abierto OOXML y es más fácilmente compatible con herramientas modernas. + +**¿Cómo decidir qué archivos son críticos para convertir a PPTX primero?** + +Convierta primero las presentaciones que: sean editadas por varias personas; contengan gráficos [charts](/slides/es/nodejs-java/create-chart/) o formas [shapes](/slides/es/nodejs-java/shape-manipulations/) complejas; se usen en comunicaciones externas; o generen advertencias al [abrirse](/slides/es/nodejs-java/open-presentation/). + +**¿Se conservará la protección con contraseña al convertir de PPT a PPTX y viceversa?** + +La protección con contraseña solo se mantiene con una conversión correcta y con soporte de cifrado en la herramienta utilizada. Es más fiable [eliminar la protección](/slides/es/nodejs-java/password-protected-presentation/), [convertir](/slides/es/nodejs-java/convert-ppt-to-pptx/), y luego volver a aplicar la protección según la política de seguridad. + +**¿Por qué algunos efectos desaparecen o se simplifican al convertir PPTX nuevamente a PPT?** + +Porque PPT no admite algunos objetos o propiedades más recientes. PowerPoint y otras herramientas pueden almacenar "rastros" de esa información en bloques especiales para su restauración posterior, pero las versiones antiguas de PowerPoint no pueden renderizarlos. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..132bf4149c --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,66 @@ +--- +title: Renderizar una diapositiva como una imagen SVG +type: docs +weight: 50 +url: /es/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **Formato SVG** + +SVG—un acrónimo de Scalable Vector Graphics—es un tipo o formato gráfico estándar utilizado para renderizar imágenes bidimensionales. SVG almacena imágenes como vectores en XML con detalles que definen su comportamiento o apariencia. + +SVG es uno de los pocos formatos de imágenes que cumple con estándares muy altos en estos aspectos: escalabilidad, interactividad, rendimiento, accesibilidad, programabilidad y otros. Por estas razones, se utiliza comúnmente en el desarrollo web. + +Puede que desee usar archivos SVG cuando necesite + +- **imprimir su presentación en un *formato muy grande*.** Las imágenes SVG pueden escalar a cualquier resolución o nivel. Puede redimensionar las imágenes SVG tantas veces como sea necesario sin sacrificar la calidad. +- **utilizar gráficos y diagramas de sus diapositivas en *diferentes medios o plataformas*.** La mayoría de los lectores pueden interpretar archivos SVG. +- **usar el *tamaño más pequeño posible de imágenes***. Los archivos SVG suelen ser más pequeños que sus equivalentes de alta resolución en otros formatos, especialmente aquellos basados en mapas de bits (JPEG o PNG). + +## **Renderizar diapositivas como imágenes SVG** + +Aspose.Slides for Node.js a través de Java le permite exportar diapositivas de sus presentaciones como imágenes SVG. Siga estos pasos para generar imágenes SVG: + +1. Cree una instancia de la clase Presentation. +2. Recorra todas las diapositivas de la presentación. +3. Escriba cada diapositiva en su propio archivo SVG mediante FileOutputStream. + +{{% alert color="primary" %}} +Puede que desee probar nuestra [aplicación web gratuita](https://products.aspose.app/slides/conversion/ppt-to-svg) en la que implementamos la función de conversión de PPT a SVG de Aspose.Slides para Node.js a través de Java. +{{% /alert %}} + +Este fragmento de código en JavaScript le muestra cómo convertir PPT a SVG usando Aspose.Slides: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Por qué el SVG resultante puede verse diferente en distintos navegadores?** + +El soporte de características específicas de SVG se implementa de manera diferente en los motores de los navegadores. Los parámetros [SVGOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) ayudan a suavizar las incompatibilidades. + +**¿Es posible exportar no solo diapositivas sino también formas individuales a SVG?** + +Sí. Cualquier [forma puede guardarse como un SVG independiente](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/), lo cual es conveniente para íconos, pictogramas y reutilizar gráficos. + +**¿Se pueden combinar varias diapositivas en un solo SVG (tira/documento)?** + +El escenario estándar es una diapositiva → un SVG. Combinar varias diapositivas en un único lienzo SVG es un paso de postprocesamiento que se realiza a nivel de aplicación. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..0c4134c421 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,154 @@ +--- +title: Exportar a HTML5 +type: docs +weight: 40 +url: /es/nodejs-java/export-to-html5/ +keywords: +- PowerPoint a HTML +- diapositivas a HTML +- HTML5 +- exportación HTML +- exportar presentación +- convertir presentación +- convertir diapositivas +- Java +- Aspose.Slides para Node.js mediante Java +description: "Exportar PowerPoint a HTML5 en JavaScript" +--- + +{{% alert title="Información" color="info" %}} + +En [Aspose.Slides 21.9](/slides/es/nodejs-java/aspose-slides-for-java-21-9-release-notes/), implementamos soporte para exportación a HTML5. + +{{% /alert %}} + +El proceso de exportación a HTML5 aquí le permite convertir PowerPoint a HTML sin extensiones web ni dependencias. De este modo, usando sus propias plantillas, puede aplicar opciones muy flexibles que definen el proceso de exportación y el HTML, CSS, JavaScript y atributos de animación resultantes. + +## **Exportar PowerPoint a HTML5** + +Este código JavaScript muestra cómo exportar una presentación a HTML5 sin extensiones web ni dependencias: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +En este caso, obtiene HTML limpio. + +{{% /alert %}} + +Puede especificar configuraciones para animaciones de formas y transiciones de diapositivas de esta manera: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exportar PowerPoint a HTML** + +Este JavaScript demuestra el proceso estándar de PowerPoint a HTML: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +En este caso, el contenido de la presentación se renderiza mediante SVG en una forma como esta: +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="Nota" color="warning" %}} + +Al usar este método para exportar PowerPoint a HTML, debido a la renderización SVG, no podrá aplicar estilos ni animar elementos específicos. + +{{% /alert %}} + +## **Exportar PowerPoint a Vista de Diapositivas HTML5** + +**Aspose.Slides** le permite convertir una presentación de PowerPoint a un documento HTML5 en el que las diapositivas se presentan en modo vista de diapositivas. En este caso, al abrir el archivo HTML5 resultante en un navegador, verá la presentación en modo vista de diapositivas en una página web. + +Este código JavaScript muestra el proceso de exportación a Vista de Diapositivas HTML5: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir una Presentación a un Documento HTML5 con Comentarios** + +Los comentarios en PowerPoint son una herramienta que permite a los usuarios dejar notas o comentarios en las diapositivas de la presentación. Son especialmente útiles en proyectos colaborativos, donde varias personas pueden añadir sus sugerencias o observaciones a elementos específicos de la diapositiva sin alterar el contenido principal. Cada comentario muestra el nombre del autor, lo que facilita identificar quién dejó la observación. + +Supongamos que tenemos la siguiente presentación de PowerPoint guardada en el archivo "sample.pptx". + +![Dos comentarios en la diapositiva de la presentación](two_comments_pptx.png) + +Al convertir una presentación de PowerPoint a un documento HTML5, puede especificar fácilmente si se incluyen los comentarios de la presentación en el documento de salida. Para ello, debe establecer los parámetros de visualización de los comentarios en la propiedad `notes_comments_layouting` de la clase [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/). + +El siguiente ejemplo de código convierte una presentación a un documento HTML5 con los comentarios mostrados a la derecha de las diapositivas. +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +El documento "output.html" se muestra en la imagen a continuación. + +![Los comentarios en el documento HTML5 de salida](two_comments_html5.png) + +## **Preguntas frecuentes** + +**¿Puedo controlar si las animaciones de objetos y las transiciones de diapositivas se reproducen en HTML5?** + +Sí, HTML5 ofrece opciones independientes para habilitar o deshabilitar [animaciones de formas](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) y [transiciones de diapositivas](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/). + +**¿Se admite la salida de comentarios y dónde pueden ubicarse respecto a la diapositiva?** + +Sí, los comentarios pueden añadirse en HTML5 y posicionarse (por ejemplo, a la derecha de la diapositiva) mediante la [configuración de diseño](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) de notas y comentarios. + +**¿Puedo omitir enlaces que invoquen JavaScript por motivos de seguridad o CSP?** + +Sí, existe una [configuración](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks) que permite omitir hipervínculos con llamadas a JavaScript durante el guardado. Esto ayuda a cumplir con políticas de seguridad estrictas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..bc97b4a88e --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,68 @@ +--- +title: Exportar a XAML +type: docs +weight: 30 +url: /es/nodejs-java/export-to-xaml/ +--- + +## **Exportar presentaciones a XAML** + +{{% alert color="primary" %}} + +En [Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/), implementamos soporte para la exportación a XAML. Ahora puedes exportar tus presentaciones a XAML. + +{{% /alert %}} + +## **Acerca de XAML** + +XAML es un lenguaje de programación descriptivo que permite crear o escribir clases de usuario para aplicaciones, especialmente aquellas que utilizan WPF (Windows Presentation Foundation), UWP (Universal Windows Platform) y Xamarin Forms. + +XAML, que es un lenguaje basado en XML, es la variante de Microsoft para describir una interfaz gráfica de usuario. Es probable que utilices un diseñador para trabajar con archivos XAML la mayor parte del tiempo, pero aún puedes escribir y editar tu GUI. + +## **Exportar presentaciones a XAML con opciones predeterminadas** + +Este código JavaScript muestra cómo exportar una presentación a XAML con la configuración predeterminada: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exportar presentaciones a XAML con opciones personalizadas** + +Puedes seleccionar opciones de la clase [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions) que controlan el proceso de exportación y determinan cómo Aspose.Slides exporta tu presentación a XAML. + +Por ejemplo, si deseas que Aspose.Slides añada diapositivas ocultas de tu presentación al exportarla a XAML, puedes establecer el método [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-) en true. Consulta este código JavaScript de ejemplo: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Cómo puedo garantizar fuentes predecibles si la fuente original no está disponible en la máquina?** + +Utiliza [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) en [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — se usa como fuente de reserva cuando la original falta. Esto ayuda a evitar sustituciones inesperadas. + +**¿El XAML exportado está pensado solo para WPF o puede usarse también en otras pilas XAML?** + +XAML es un lenguaje de marcado de UI general utilizado en WPF, UWP y Xamarin.Forms. La exportación apunta a la compatibilidad con las pilas XAML de Microsoft; el comportamiento exacto y el soporte de constructos específicos dependen de la plataforma de destino. Prueba el marcado en tu entorno. + +**¿Se admiten diapositivas ocultas y cómo puedo evitar que se exporten de forma predeterminada?** + +De forma predeterminada, las diapositivas ocultas no se incluyen. Puedes controlar este comportamiento mediante [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/) en [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — mantenlo deshabilitado si no necesitas exportarlas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/es/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..24e9725ee5 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,74 @@ +--- +title: Crear presentación de PowerPoint en JavaScript +linktitle: Crear presentación +type: docs +weight: 10 +url: /es/nodejs-java/create-presentation/ +keywords: crear ppt java, crear presentación ppt, crear pptx java +description: Aprenda a crear presentaciones de PowerPoint, p. ej., PPT, PPTX usando JavaScript desde cero. +--- + +## **Crear presentación de PowerPoint** + +Para agregar una línea simple y sencilla a una diapositiva seleccionada de la presentación, siga los pasos a continuación: + +1. Cree una instancia de la clase Presentation. +1. Obtenga la referencia de una diapositiva usando su índice. +1. Agregue un AutoShape de tipo Línea usando el método addAutoShape expuesto por el objeto Shapes. +1. Guarde la presentación modificada como un archivo PPTX. + +En el ejemplo a continuación, hemos agregado una línea a la primera diapositiva de la presentación. +```javascript +// Instanciar un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation(); +try { + // Obtener la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Agregar una autoshape de tipo línea + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿En qué formatos puedo guardar una nueva presentación?** + +Puede guardar en [PPTX, PPT y ODP](/slides/es/nodejs-java/save-presentation/), y exportar a [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/), [XPS](/slides/es/nodejs-java/convert-powerpoint-to-xps/), [HTML](/slides/es/nodejs-java/convert-powerpoint-to-html/), [SVG](/slides/es/nodejs-java/convert-powerpoint-to-png/), y [imágenes](/slides/es/nodejs-java/convert-powerpoint-to-png/), entre otros. + +**¿Puedo iniciar desde una plantilla (POTX/POTM) y guardarla como un PPTX normal?** + +Sí. Cargue la plantilla y guárdela en el formato deseado; los formatos POTX/POTM/PPTM y similares [son compatibles](/slides/es/nodejs-java/supported-file-formats/). + +**¿Cómo controlo el tamaño/relación de aspecto de la diapositiva al crear una presentación?** + +Establezca el [tamaño de diapositiva](/slides/es/nodejs-java/slide-size/) (incluyendo ajustes predefinidos como 4:3 y 16:9 o dimensiones personalizadas) y elija cómo debe escalar el contenido. + +**¿En qué unidades se miden los tamaños y coordenadas?** + +En puntos: 1 pulgada equivale a 72 unidades. + +**¿Cómo manejo presentaciones muy grandes (con muchos archivos multimedia) para reducir el uso de memoria?** + +Utilice [estrategias de gestión de BLOB](/slides/es/nodejs-java/manage-blob/), limite el almacenamiento en memoria mediante archivos temporales y prefiera flujos de trabajo basados en archivos en lugar de flujos puramente en memoria. + +**¿Puedo crear/guardar presentaciones en paralelo?** + +No se puede operar sobre la misma instancia de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) desde [múltiples hilos](/slides/es/nodejs-java/multithreading/). Ejecute instancias separadas y aisladas por hilo o proceso. + +**¿Cómo elimino la marca de agua de prueba y las limitaciones?** + +[Aplique una licencia](/slides/es/nodejs-java/licensing/) una vez por proceso. El XML de la licencia debe permanecer sin modificar, y la configuración de la licencia debe sincronizarse si participan varios hilos. + +**¿Puedo firmar digitalmente el PPTX que creo?** + +Sí. Las [firmas digitales](/slides/es/nodejs-java/digital-signature-in-powerpoint/) (agregar y verificar) son compatibles con las presentaciones. + +**¿Se admiten macros (VBA) en las presentaciones creadas?** + +Sí. Puede [crear/editar proyectos VBA](/slides/es/nodejs-java/presentation-via-vba/) y guardar archivos con macros habilitadas como PPTM/PPSM. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/es/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..96828fff18 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,117 @@ +--- +title: Examinar presentación +type: docs +weight: 30 +url: /es/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- presentación +- formato de presentación +- propiedades de la presentación +- propiedades del documento +- obtener propiedades +- leer propiedades +- cambiar propiedades +- modificar propiedades +- PPTX +- PPT +- JavaScript +- Node +description: "Leer y modificar las propiedades de la presentación PowerPoint en Node" +--- + +Aspose.Slides for Node.js via Java le permite examinar una presentación para descubrir sus propiedades y comprender su comportamiento. + +{{% alert title="Info" color="info" %}} + +Las clases [PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) y [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) contienen las propiedades y métodos usados en las operaciones aquí. + +{{% /alert %}} + +## **Comprobar el formato de una presentación** + +Antes de trabajar con una presentación, es posible que desee averiguar en qué formato (PPT, PPTX, ODP y otros) se encuentra la presentación en este momento. + +Puede comprobar el formato de una presentación sin cargarla. Vea este código JavaScript: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP +``` + + +## **Obtener propiedades de la presentación** + +Este código JavaScript le muestra cómo obtener las propiedades de la presentación (información sobre la presentación): +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +Puede ver las [propiedades bajo DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--) de la clase. + +## **Actualizar propiedades de la presentación** + +Aspose.Slides proporciona el método [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-) que le permite realizar cambios en las propiedades de la presentación. + +Supongamos que tenemos una presentación de PowerPoint con las propiedades del documento mostradas a continuación. + +![Propiedades originales del documento de la presentación PowerPoint](input_properties.png) + +Este ejemplo de código le muestra cómo editar algunas propiedades de la presentación: +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +Los resultados de cambiar las propiedades del documento se muestran a continuación. + +![Propiedades modificadas del documento de la presentación PowerPoint](output_properties.png) + +## **Enlaces útiles** + +Para obtener más información sobre una presentación y sus atributos de seguridad, puede encontrar útiles los siguientes enlaces: + +- [Comprobando si una presentación está cifrada](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [Comprobando si una presentación está protegida contra escritura (solo lectura)](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [Comprobando si una presentación está protegida con contraseña antes de cargarla](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [Confirmando la contraseña usada para proteger una presentación](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **Preguntas frecuentes** + +**¿Cómo puedo comprobar si las fuentes están incrustadas y cuáles son?** + +Busque la [información de fuentes incrustadas](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/) a nivel de presentación, luego compare esas entradas con el conjunto de [fuentes realmente usadas en el contenido](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/) para identificar qué fuentes son críticas para la renderización. + +**¿Cómo puedo saber rápidamente si el archivo tiene diapositivas ocultas y cuántas?** + +Itere a través de la [colección de diapositivas](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) y examine la [bandera de visibilidad](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/) de cada diapositiva. + +**¿Puedo detectar si se usa un tamaño y orientación de diapositiva personalizados, y si difieren de los valores predeterminados?** + +Sí. Compare el [tamaño de diapositiva actual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) y la orientación con los valores predeterminados; esto ayuda a anticipar el comportamiento al imprimir o exportar. + +**¿Existe una forma rápida de ver si los gráficos hacen referencia a fuentes de datos externas?** + +Sí. Recorra todos los [gráficos](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), verifique su [fuente de datos](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/), y observe si los datos son internos o basados en enlaces, incluyendo enlaces rotos. + +**¿Cómo puedo evaluar las diapositivas “pesadas” que pueden ralentizar la renderización o la exportación a PDF?** + +Para cada diapositiva, cuente los objetos y busque imágenes grandes, transparencias, sombras, animaciones y contenido multimedia; asigne una puntuación de complejidad aproximada para identificar posibles cuellos de botella de rendimiento. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/es/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..c9a42406e4 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,85 @@ +--- +title: Importar Presentación +type: docs +weight: 60 +url: /es/nodejs-java/import-presentation/ +keywords: "Importar PowerPoint, PDF a Presentación, PDF a PPTX, PDF a PPT, Java, Aspose.Slides for Node.js via Java" +description: "Importar presentación PowerPoint desde PDF. Convertir PDF a PowerPoint" +--- + +Usando [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), puedes importar presentaciones desde archivos en otros formatos. Aspose.Slides proporciona la clase [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) para permitirte importar presentaciones desde PDFs, documentos HTML, etc. + +## **Importar PowerPoint desde PDF** + +En este caso, conviertes un PDF a una presentación PowerPoint. + +pdf-to-powerpoint + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Llama al método [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) y pasa el archivo PDF. +3. Utiliza el método [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) para guardar el archivo en formato PowerPoint. + +Este código JavaScript demuestra la operación de PDF a PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Puede que quieras echar un vistazo a la aplicación web **Aspose free** [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint) porque es una implementación en vivo del proceso descrito aquí. +{{% /alert %}} + +## **Importar PowerPoint desde HTML** + +En este caso, conviertes un documento HTML a una presentación PowerPoint. + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Llama al método [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) y pasa el archivo PDF. +3. Utiliza el método [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) para guardar el archivo en formato PowerPoint. + +Este código JavaScript demuestra la operación de HTML a PowerPoint: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**¿Se conservan las tablas al importar un PDF, y puede mejorarse su detección?** + +Las tablas pueden detectarse durante la importación; [PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) incluye un método [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables) que habilita el reconocimiento de tablas. La efectividad depende de la estructura del PDF. + +{{% alert title="Note" color="warning" %}} +También puedes usar Aspose.Slides para convertir HTML a otros formatos de archivo populares: + +* [HTML a imagen](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML a JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML a XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML a TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/es/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..21750ff4e1 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,123 @@ +--- +title: Administrar presentación de diapositivas +type: docs +weight: 90 +url: /es/nodejs-java/manage-slide-show/ +keywords: +- tipo de presentación +- presentado por un orador +- navegado por un individuo +- navegado en un quiosco +- opciones de presentación +- repetir continuamente +- presentación sin narración +- presentación sin animación +- color del lápiz +- mostrar diapositivas +- presentación personalizada +- avanzar diapositivas +- manualmente +- usando cronometrajes +- PowerPoint +- presentación +- Node.js +- JavaScript +- Aspose.Slides para Node.js mediante Java +description: "Administrar la configuración de la presentación de diapositivas en presentaciones de PowerPoint usando JavaScript" +--- + +En Microsoft PowerPoint, la configuración de **Slide Show** es una herramienta clave para preparar y presentar presentaciones profesionales. Una de las funciones más importantes de esta sección es **Set Up Show**, que le permite adaptar su presentación a condiciones y audiencias específicas, garantizando flexibilidad y comodidad. Con esta función, puede seleccionar el tipo de presentación (p. ej., presentada por un orador, navegada por un individuo o navegada en un kiosco), habilitar o desactivar el bucle, elegir diapositivas específicas para mostrar y utilizar cronometraje. Este paso en la preparación es crucial para que su presentación sea más eficaz y profesional. + +`getSlideShowSettings` es un método de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) que devuelve un objeto del tipo [SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/), lo que le permite gestionar la configuración del pase de diapositivas en una presentación de PowerPoint. En este artículo, exploraremos cómo usar este método para configurar y controlar varios aspectos de la configuración del pase de diapositivas. + +## **Select Show Type** + +`SlideShowSettings.setSlideShowType` define el tipo de pase de diapositivas, que puede ser una instancia de las siguientes clases: [PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/), [BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/), o [BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/). Usar este método le permite adaptar la presentación a diferentes escenarios de uso, como kioscos automatizados o presentaciones manuales. + +El ejemplo de código a continuación crea una nueva presentación y establece el tipo de pase en “Browsed by an individual” sin mostrar la barra de desplazamiento. +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Enable Show Options** + +`SlideShowSettings.setLoop` determina si el pase de diapositivas debe repetirse en bucle hasta que se detenga manualmente. Esto es útil para presentaciones automatizadas que deben ejecutarse de forma continua. `SlideShowSettings.setShowNarration` determina si se deben reproducir narraciones de voz durante el pase de diapositivas. Es útil para presentaciones automatizadas que contienen guías de voz para la audiencia. `SlideShowSettings.setShowAnimation` determina si se deben reproducir las animaciones añadidas a los objetos de diapositiva. Esto es útil para proporcionar el efecto visual completo de la presentación. + +El siguiente ejemplo de código crea una nueva presentación y pone el pase de diapositivas en bucle. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Select Slides to Show** + +El método `SlideShowSettings.setSlides` le permite seleccionar un rango de diapositivas que se mostrarán durante la presentación. Esto es útil cuando necesita mostrar solo una parte de la presentación en lugar de todas las diapositivas. El siguiente ejemplo de código crea una nueva presentación y establece el rango de diapositivas para mostrarlas desde la diapositiva `2` hasta la `9`. +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Use Advance Slides** + +El método `SlideShowSettings.setUseTimings` le permite habilitar o deshabilitar el uso de cronometrajes predefinidos para cada diapositiva. Esto es útil para mostrar automáticamente diapositivas con duraciones de visualización preestablecidas. El ejemplo de código a continuación crea una nueva presentación y desactiva el uso de cronometrajes. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Show Media Controls** + +`SlideShowSettings.setShowMediaControls` determina si los controles de medios (como reproducir, pausar y detener) deben mostrarse durante el pase de diapositivas cuando se reproduce contenido multimedia (p. ej., video o audio). Esto es útil cuando desea dar al presentador control sobre la reproducción de medios durante la presentación. + +El siguiente ejemplo de código crea una nueva presentación y habilita la visualización de los controles de medios. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **FAQ** + +**¿Puedo guardar una presentación para que se abra directamente en modo de pase de diapositivas?** + +Sí. Guarde el archivo como PPSX o PPSM; estos formatos se inician directamente en modo de pase de diapositivas al abrirse en PowerPoint. En Aspose.Slides, elija el formato de guardado correspondiente [durante la exportación](/slides/es/nodejs-java/save-presentation/). + +**¿Puedo excluir diapositivas individuales del pase sin eliminarlas del archivo?** + +Sí. Marque una diapositiva como [hidden](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/). Las diapositivas ocultas permanecen en la presentación pero no se muestran durante el pase de diapositivas. + +**¿Aspose.Slides puede reproducir un pase de diapositivas o controlar una presentación en vivo en pantalla?** + +No. Aspose.Slides edita, analiza y convierte archivos de presentación; la reproducción real la gestiona una aplicación de visualización como PowerPoint. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/es/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..c63a0a31b0 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,275 @@ +--- +title: Fusionar presentación +type: docs +weight: 40 +url: /es/nodejs-java/merge-presentation/ +keywords: "Combinar PowerPoint, PPTX, PPT, combinar PowerPoint, fusionar presentación, combinar presentación, Java" +description: "Fusionar o combinar presentaciones de PowerPoint en JavaScript" +--- + +## **Fusión de Presentaciones** + +Al combinar una presentación con otra, efectivamente unes sus diapositivas en una sola presentación para obtener un archivo único. + +{{% alert title="Info" color="info" %}} + +La mayoría de los programas de presentaciones (PowerPoint u OpenOffice) carecen de funciones que permitan a los usuarios combinar presentaciones de esta manera. + +[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), sin embargo, permite fusionar presentaciones de diferentes formas. Puedes fusionar presentaciones con todas sus formas, estilos, textos, formato, comentarios, animaciones, etc., sin preocuparte por la pérdida de calidad o datos. + +**Ver también** + +[Clonar Diapositivas](https://docs.aspose.com/slides/nodejs-java/clone-slides/). + +{{% /alert %}} + +### **Qué se Puede Fusionar** + +Con Aspose.Slides, puedes fusionar + +* presentaciones completas. Todas las diapositivas de las presentaciones terminan en una sola presentación +* diapositivas específicas. Las diapositivas seleccionadas terminan en una sola presentación +* presentaciones en un mismo formato (PPT a PPT, PPTX a PPTX, etc.) y en formatos diferentes (PPT a PPTX, PPTX a ODP, etc.) entre sí. + +{{% alert title="Note" color="warning" %}} + +Además de presentaciones, Aspose.Slides permite fusionar otros archivos: + +* [Imágenes](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/), como [JPG a JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) o [PNG a PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/) +* Documentos, como [PDF a PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) o [HTML a HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/) +* Y dos archivos diferentes como [imagen a PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) o [JPG a PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) o [TIFF a PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/). + +{{% /alert %}} + +### **Opciones de Fusión** + +Puedes aplicar opciones que determinen si + +* cada diapositiva en la presentación de salida conserva un estilo único +* se utiliza un estilo específico para todas las diapositivas en la presentación de salida. + +Para fusionar presentaciones, Aspose.Slides proporciona los métodos [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) (de la clase [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection)). Existen varias implementaciones de los métodos `addClone` que definen los parámetros del proceso de fusión de presentaciones. Cada objeto Presentation tiene una colección [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) , por lo que puedes llamar a un método `addClone` desde la presentación a la que deseas fusionar diapositivas. + +El método `addClone` devuelve un objeto `Slide`, que es una copia de la diapositiva origen. Las diapositivas en la presentación de salida son simplemente una copia de las diapositivas de origen. Por lo tanto, puedes modificar las diapositivas resultantes (por ejemplo, aplicar estilos, opciones de formato o diseños) sin preocuparte de que las presentaciones de origen se vean afectadas. + +## **Fusionar Presentaciones** + +Aspose.Slides proporciona el método [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) que permite combinar diapositivas mientras las diapositivas conservan sus diseños y estilos (parámetros predeterminados). + +Este código JavaScript muestra cómo fusionar presentaciones: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Fusionar Presentaciones con Patrón de Diapositiva Maestra** + +Aspose.Slides proporciona el método [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-) que permite combinar diapositivas aplicando una plantilla de patrón de diapositiva maestra. De este modo, si es necesario, puedes cambiar el estilo de las diapositivas en la presentación de salida. + +Este código JavaScript demuestra la operación descrita: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} + +El diseño de diapositiva para la maestra se determina automáticamente. Cuando no se puede determinar un diseño apropiado, si el parámetro booleano `allowCloneMissingLayout` del método `addClone` está establecido en true, se utiliza el diseño de la diapositiva origen. De lo contrario, se lanzará una [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException). + +{{% /alert %}} + +Si deseas que las diapositivas en la presentación de salida tengan un diseño de diapositiva diferente, utiliza el método [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-) en su lugar al fusionar. + +## **Fusionar Diapositivas Específicas de Presentaciones** + +Fusionar diapositivas específicas de varias presentaciones es útil para crear paquetes de diapositivas personalizados. Aspose.Slides for Node.js via Java te permite seleccionar e importar solo las diapositivas que necesitas. La API conserva el formato, el diseño y el estilo de las diapositivas originales. + +El siguiente código JavaScript crea una nueva presentación, agrega diapositivas de título de dos presentaciones diferentes y guarda el resultado en un archivo: +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **Fusionar Presentaciones con Diseño de Diapositiva** + +Este código JavaScript muestra cómo combinar diapositivas de presentaciones aplicando tu diseño de diapositiva preferido para obtener una única presentación de salida: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Fusionar Presentaciones con Diferentes Tamaños de Diapositiva** + +{{% alert title="Note" color="warning" %}} + +No puedes fusionar presentaciones con tamaños de diapositiva diferentes. + +{{% /alert %}} + +Para fusionar 2 presentaciones con tamaños de diapositiva diferentes, debes redimensionar una de las presentaciones para que su tamaño coincida con el de la otra. + +Este código de ejemplo demuestra la operación descrita: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Fusionar Diapositivas a una Sección de Presentación** + +Este código JavaScript muestra cómo fusionar una diapositiva específica a una sección en una presentación: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +La diapositiva se agrega al final de la sección. + +## **Preguntas Frecuentes** + +**¿Se conservan las notas del orador durante la fusión?** + +Sí. Al clonar diapositivas, Aspose.Slides transfiere todos los elementos de la diapositiva, incluidas notas, formato y animaciones. + +**¿Se transfieren los comentarios y sus autores?** + +Los comentarios, como parte del contenido de la diapositiva, se copian con la diapositiva. Las etiquetas de autor de los comentarios se conservan como objetos de comentario en la presentación resultante. + +**¿Qué ocurre si la presentación origen está protegida con contraseña?** + +Debe [abrirse con la contraseña](/slides/es/nodejs-java/password-protected-presentation/) mediante [LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/); después de cargarla, esas diapositivas pueden clonarse de forma segura en un archivo de destino sin protección (o también protegido). + +**¿Qué tan segura es la operación de fusión en entornos multihilo?** + +No utilice la misma instancia de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) desde [múltiples hilos](/slides/es/nodejs-java/multithreading/). La regla recomendada es "un documento — un hilo"; diferentes archivos pueden procesarse en paralelo en hilos independientes. + +## **Ver También** + +Aspose ofrece un [Creador de Collage GRATUITO en línea](https://products.aspose.app/slides/collage). Con este servicio en línea, puedes fusionar [JPG a JPG](https://products.aspose.app/slides/collage/jpg) o imágenes PNG a PNG, crear [rejillas de fotos](https://products.aspose.app/slides/collage/photo-grid) y más. + +Prueba el [MERGER GRATUITO en línea de Aspose](https://products.aspose.app/slides/merger). Permite fusionar presentaciones PowerPoint en el mismo formato (p. ej., PPT a PPT, PPTX a PPTX) o entre formatos diferentes (p. ej., PPT a PPTX, PPTX a ODP). + +[![Aspose FREE Online Merger](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/es/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..36728af455 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: Abrir una presentación en JavaScript +linktitle: Abrir presentaciones +type: docs +weight: 20 +url: /es/nodejs-java/open-presentation/ +keywords: +- abrir PowerPoint +- abrir presentación +- abrir PPTX +- abrir PPT +- abrir ODP +- cargar presentación +- cargar PPTX +- cargar PPT +- cargar ODP +- presentación protegida +- presentación grande +- recurso externo +- objeto binario +- Node.js +- JavaScript +- Aspose.Slides +description: "Abra presentaciones PowerPoint (.pptx, .ppt) y OpenDocument (.odp) sin esfuerzo con Aspose.Slides para Node.js: rápido, fiable y con todas las funciones." +--- + +## **Descripción general** + +Además de crear presentaciones de PowerPoint desde cero, Aspose.Slides también permite abrir presentaciones existentes. Después de cargar una presentación, puedes obtener información sobre ella, editar el contenido de las diapositivas, agregar nuevas diapositivas, eliminar las existentes y mucho más. + +## **Abrir presentaciones** + +Para abrir una presentación existente, instancia la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) y pasa la ruta del archivo a su constructor. + +El siguiente ejemplo de JavaScript muestra cómo abrir una presentación y obtener el recuento de diapositivas: +```js +// Instancie la clase Presentation y pase una ruta de archivo a su constructor. +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // Imprima el número total de diapositivas en la presentación. + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **Abrir presentaciones protegidas con contraseña** + +Cuando necesites abrir una presentación protegida con contraseña, pasa la contraseña mediante el método [setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword) de la clase [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) para descifrarla y cargarla. El siguiente código JavaScript demuestra esta operación: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // Realice operaciones en la presentación descifrada. +} finally { + presentation.dispose(); +} +``` + + +## **Abrir presentaciones de gran tamaño** + +Aspose.Slides proporciona opciones—en particular el método [getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions) en la clase [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/)—para ayudar a cargar presentaciones de gran tamaño. + +El siguiente código JavaScript muestra cómo cargar una presentación grande (por ejemplo, 2 GB): +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// Elija el comportamiento KeepLocked: el archivo de la presentación permanecerá bloqueado durante la vida de +// la instancia Presentation, pero no necesita cargarse en memoria ni copiarse a un archivo temporal. +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // La presentación grande se ha cargado y puede usarse, mientras el consumo de memoria se mantiene bajo. + + // Realice cambios en la presentación. + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // Guarde la presentación en otro archivo. El consumo de memoria se mantiene bajo durante esta operación. + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // ¡No haga esto! Se lanzará una excepción de E/S porque el archivo está bloqueado hasta que se deseche el objeto Presentation. + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// Está bien hacerlo aquí. El archivo fuente ya no está bloqueado por el objeto Presentation. +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +Para evitar ciertas limitaciones al trabajar con streams, Aspose.Slides puede copiar el contenido de un stream. Cargar una presentación grande desde un stream provoca que la presentación se copie y puede ralentizar la carga. Por lo tanto, cuando necesites cargar una presentación grande, recomendamos encarecidamente usar la ruta del archivo de la presentación en lugar de un stream. + +Al crear una presentación que contenga objetos de gran tamaño (vídeo, audio, imágenes de alta resolución, etc.), puedes usar la [gestión de BLOB](/slides/es/nodejs-java/manage-blob/) para reducir el consumo de memoria. +{{%/alert %}} + +## **Controlar recursos externos** + +Aspose.Slides proporciona la interfaz [IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/) que permite gestionar recursos externos. El siguiente código JavaScript muestra cómo usar la interfaz `IResourceLoadingCallback`: +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // Cargar una imagen de sustitución. + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // Establecer una URL de sustitución. + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // Omitir todas las demás imágenes. + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **Cargar presentaciones sin objetos binarios incrustados** + +Una presentación de PowerPoint puede contener los siguientes tipos de objetos binarios incrustados: + +- proyecto VBA (accesible mediante [Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject)); +- datos incrustados de objeto OLE (accesibles mediante [OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData)); +- datos binarios de control ActiveX (accesibles mediante [Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary)). + +Mediante el método [LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects), puedes cargar una presentación sin objetos binarios incrustados. + +Este método es útil para eliminar contenido binario potencialmente malicioso. El siguiente código JavaScript muestra cómo cargar una presentación sin contenido binario incrustado: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // Realice operaciones en la presentación. +} finally { + presentation.dispose(); +} +``` + + +## **Preguntas frecuentes** + +**¿Cómo puedo saber si un archivo está dañado y no se puede abrir?** + +Se producirá una excepción de validación de análisis/formato durante la carga. Estos errores a menudo mencionan una estructura ZIP no válida o registros de PowerPoint dañados. + +**¿Qué ocurre si faltan fuentes requeridas al abrir?** + +El archivo se abrirá, pero luego la [renderización/exportación](/slides/es/nodejs-java/convert-presentation/) puede sustituir fuentes. [Configura sustituciones de fuentes](/slides/es/nodejs-java/font-substitution/) o [agrega las fuentes requeridas](/slides/es/nodejs-java/custom-font/) al entorno de ejecución. + +**¿Qué pasa con los medios incrustados (vídeo/audio) al abrir?** + +Se convierten en recursos de la presentación. Si los medios se referencian mediante rutas externas, asegúrate de que esas rutas sean accesibles en tu entorno; de lo contrario, la [renderización/exportación](/slides/es/nodejs-java/convert-presentation/) puede omitir los medios. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/es/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..6e0e52d4a8 --- /dev/null +++ b/es/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,211 @@ +--- +title: Guardar presentaciones en JavaScript +linktitle: Guardar presentaciones +type: docs +weight: 80 +url: /es/nodejs-java/save-presentation/ +keywords: +- guardar PowerPoint +- guardar OpenDocument +- guardar presentación +- guardar diapositiva +- guardar PPT +- guardar PPTX +- guardar ODP +- presentación a archivo +- presentación a flujo +- tipo de vista predefinido +- Formato Strict Office Open XML +- modo Zip64 +- refrescar miniatura +- progreso de guardado +- Node.js +- JavaScript +- Aspose.Slides +description: "Descubra cómo guardar presentaciones en JavaScript usando Aspose.Slides—exportar a PowerPoint o OpenDocument manteniendo diseños, fuentes y efectos." +--- + +## **Resumen** + +[Open Presentations in JavaScript](/slides/es/nodejs-java/open-presentation/) describió cómo usar la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) para abrir una presentación. Este artículo explica cómo crear y guardar presentaciones. La clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) contiene el contenido de una presentación. Ya sea que esté creando una presentación desde cero o modificando una existente, querrá guardarla cuando haya terminado. Con Aspose.Slides para Node.js, puede guardar en un **archivo** o **flujo**. Este artículo explica las diferentes formas de guardar una presentación. + +## **Guardar presentaciones en archivos** + +Guarde una presentación en un archivo llamando al método `save` de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). Pase el nombre del archivo y el formato de guardado al método. El siguiente ejemplo muestra cómo guardar una presentación con Aspose.Slides. +```js +// Instanciar la clase Presentation que representa un archivo de presentación. +let presentation = new aspose.slides.Presentation(); +try { + // Realizar algún trabajo aquí... + + // Guardar la presentación en un archivo. + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Guardar presentaciones en flujos** + +Puede guardar una presentación en un flujo pasando un flujo de salida al método `save` de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). Una presentación puede escribirse en muchos tipos de flujo. En el ejemplo a continuación, creamos una nueva presentación y la guardamos en un flujo de archivo. +```js +// Instanciar la clase Presentation que representa un archivo de presentación. +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // Guardar la presentación en el flujo. + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **Guardar presentaciones con un tipo de vista predefinido** + +Aspose.Slides le permite establecer la vista inicial que PowerPoint usa cuando la presentación generada se abre mediante la clase [ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/). Use el método [setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) con un valor de la enumeración [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/). +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Guardar presentaciones en el formato Strict Office Open XML** + +Aspose.Slides le permite guardar una presentación en el formato Strict Office Open XML. Use la clase [PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) y establezca su propiedad **conformance** al guardar. Si establece [Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict), el archivo de salida se guarda en el formato Strict Office Open XML. + +El ejemplo a continuación crea una presentación y la guarda en el formato Strict Office Open XML. +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// Instanciar la clase Presentation que representa un archivo de presentación. +let presentation = new aspose.slides.Presentation(); +try { + // Guardar la presentación en el formato Strict Office Open XML. + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **Guardar presentaciones en el formato Office Open XML en modo Zip64** + +Un archivo Office Open XML es un archivo ZIP que impone límites de 4 GB (2^32 bytes) al tamaño sin comprimir de cualquier archivo, al tamaño comprimido de cualquier archivo y al tamaño total del archivo, y también limita el archivo a 65 535 (2^16‑1) archivos. Las extensiones de formato ZIP64 elevan estos límites a 2^64. + +El método [PptxOptions.setZip64Mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) le permite elegir cuándo usar extensiones de formato ZIP64 al guardar un archivo Office Open XML. + +Este método puede usarse con los siguientes modos: + +- [IfNecessary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#IfNecessary) usa extensiones ZIP64 solo si la presentación supera las limitaciones anteriores. Este es el modo predeterminado. +- [Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) nunca usa extensiones ZIP64. +- [Always](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Always) siempre usa extensiones ZIP64. + +El siguiente código muestra cómo guardar una presentación como PPTX con extensiones de formato ZIP64 habilitadas: +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="NOTA" color="warning" %}} + +Cuando guarda con [Zip64Mode.Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never), se lanza una [PptxException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxexception/) si la presentación no puede guardarse en formato ZIP32. + +{{% /alert %}} + +## **Guardar presentaciones sin actualizar la miniatura** + +El método [PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) controla la generación de miniaturas al guardar una presentación en PPTX: + +- Si se establece en `true`, la miniatura se actualiza durante el guardado. Este es el valor predeterminado. +- Si se establece en `false`, se conserva la miniatura actual. Si la presentación no tiene miniatura, no se genera ninguna. + +En el código a continuación, la presentación se guarda en PPTX sin actualizar su miniatura. +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="Información" color="info" %}} + +Esta opción ayuda a reducir el tiempo necesario para guardar una presentación en formato PPTX. + +{{% /alert %}} + +## **Actualizar el progreso de guardado en porcentaje** + +Los informes de progreso de guardado se configuran mediante el método [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) en [SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) y sus subclases. Proporcione un proxy Java que implemente la interfaz [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/); durante la exportación, la devolución de llamada recibe actualizaciones periódicas de porcentaje. + +Los siguientes fragmentos de código muestran cómo usar `IProgressCallback`. +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // Utilice el valor del porcentaje de progreso aquí. + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Información" color="info" %}} + +Aspose ha desarrollado una [aplicación gratuita PowerPoint Splitter](https://products.aspose.app/slides/splitter) usando su propia API. La aplicación le permite dividir una presentación en varios archivos guardando diapositivas seleccionadas como nuevos archivos PPTX o PPT. + +{{% /alert %}} + +## **Preguntas frecuentes** + +**¿Se admite "guardado rápido" (guardado incremental) para que solo se escriban los cambios?** + +No. Cada guardado crea el archivo de destino completo; el "guardado rápido" incremental no está soportado. + +**¿Es seguro guardar la misma instancia de Presentation desde varios hilos?** + +No. Una [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) [no es segura para subprocesos](/slides/es/nodejs-java/multithreading/); guárdela desde un solo hilo. + +**¿Qué ocurre con los hipervínculos y los archivos enlazados externamente al guardar?** + +Los [hipervínculos](/slides/es/nodejs-java/manage-hyperlinks/) se conservan. Los archivos enlazados externamente (por ejemplo, videos mediante rutas relativas) no se copian automáticamente; asegúrese de que las rutas referenciadas sigan siendo accesibles. + +**¿Puedo establecer/guardar metadatos del documento (Autor, Título, Empresa, Fecha)?** + +Sí. Las [propiedades estándar del documento](/slides/es/nodejs-java/presentation-properties/) son compatibles y se escribirán en el archivo al guardarlo. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/modern-api/_index.md b/es/nodejs-java/developer-guide/modern-api/_index.md index a088132c78..54c1458130 100644 --- a/es/nodejs-java/developer-guide/modern-api/_index.md +++ b/es/nodejs-java/developer-guide/modern-api/_index.md @@ -1,36 +1,35 @@ --- -title: API Moderna +title: API moderna type: docs weight: 237 url: /es/nodejs-java/modern-api/ -keywords: "API Moderna Multiplataforma" -description: "API Moderna" +keywords: "API moderna multiplataforma" +description: "API moderna" --- -## Introducción +## **Introducción** -Históricamente, Aspose Slides tiene una dependencia de java.awt y tiene en la API pública las siguientes clases de allí: +Históricamente, Aspose Slides tiene una dependencia de java.awt y en la API pública tiene las siguientes clases de allí: - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -A partir de la versión 24.4, esta API pública se declara en desuso. +A partir de la versión 24.4, esta API pública está declarada como obsoleta. -Con el fin de deshacerse de las dependencias en estas clases, añadimos la llamada "API Moderna", es decir, la API que debe ser utilizada en lugar de la que está en desuso, cuyas firmas contienen dependencias en BufferedImage. Graphics2D está declarado en desuso y su soporte ha sido eliminado de la API pública de Slides. +Para eliminar las dependencias de estas clases, añadimos la llamada “API moderna”, es decir, la API que debe usarse en lugar de la obsoleta, cuyas firmas contienen dependencias de BufferedImage. Graphics2D está declarada obsoleta y su soporte se eliminó de la API pública de Slides. -La eliminación de la API pública en desuso con dependencias en System.Drawing estará en la versión 24.8. +La eliminación de la API pública obsoleta con dependencias en System.Drawing será en la versión 24.8. -## API Moderna +## **API moderna** Se añadieron las siguientes clases y enumeraciones a la API pública: -- IImage - representa la imagen rasterizada o vectorial. +- IImage - representa la imagen raster o vectorial. - ImageFormat - representa el formato de archivo de la imagen. -- Images - métodos para instanciar y trabajar con la interfaz IImage. +- Images - métodos para instanciar y trabajar con la clase IImage. -Tenga en cuenta que IImage es desechable (implementa la interfaz IDisposable y su uso debe estar envuelto en using o ser desechado de otra manera conveniente). - -Un escenario típico de uso de la nueva API podría verse de la siguiente manera: +Tenga en cuenta que IImage es desechable (implementa la clase IDisposable y su uso debe envolver en using o descartarse de otra manera conveniente). +Un escenario típico de uso de la nueva API puede verse como sigue: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -61,9 +60,10 @@ try { } ``` -## Reemplazando el código antiguo con la API Moderna -En general, necesitará reemplazar la llamada al antiguo método usando ImageIO con el nuevo. +## **Reemplazar código antiguo con la API moderna** + +En general, necesitará reemplazar la llamada al método antiguo que usa ImageIO por el nuevo. Antiguo: ``` javascript @@ -73,6 +73,7 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` + Nuevo: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -81,10 +82,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### Obteniendo una miniatura de la diapositiva -Código usando una API en desuso: +### **Obtener una miniatura de diapositiva** +Código que usa una API obsoleta: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +98,8 @@ try { } ``` -API Moderna: +API moderna: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +111,10 @@ try { } ``` -### Obteniendo una miniatura de una forma -Código usando una API en desuso: +### **Obtener una miniatura de forma** +Código que usa una API obsoleta: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +127,8 @@ try { } ``` -API Moderna: +API moderna: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +140,10 @@ try { } ``` -### Obteniendo una miniatura de una presentación -Código usando una API en desuso: +### **Obtener una miniatura de presentación** +Código que usa una API obsoleta: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +161,8 @@ try { } ``` -API Moderna: +API moderna: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +185,10 @@ try { } ``` -### Añadiendo una imagen a una presentación -Código usando una API en desuso: +### **Agregar una imagen a una presentación** +Código que usa una API obsoleta: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +203,8 @@ try { } ``` -API Moderna: +API moderna: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,26 +218,27 @@ try { } ``` -## Métodos que serán eliminados y su reemplazo en la API Moderna -### Presentación -| Firma del Método | Firma del Método de Reemplazo | +## **Métodos que se eliminarán y su reemplazo en la API moderna** + +### **Presentation** +| Firma del método | Firma del método de reemplazo | |-----------------------------------------------|---------------------------------------------------------| -| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | -| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### Forma -| Firma del Método | Firma del Método de Reemplazo | +### **Shape** +| Firma del método | Firma del método de reemplazo | |----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### Diapositiva -| Firma del Método | Firma del Método de Reemplazo | +### **Slide** +| Firma del método | Firma del método de reemplazo | |----------------------------------------------------------------------|-----------------------------------------------------------------------| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | @@ -245,45 +247,54 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Será eliminado completamente | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Será eliminado completamente | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Será eliminado completamente | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Se eliminará por completo | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Se eliminará por completo | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Se eliminará por completo | -### Salida -| Firma del Método | Firma del Método de Reemplazo | +### **Output** +| Firma del método | Firma del método de reemplazo | |-----------------------------------------------------------------|-------------------------------------------------------------| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### Colección de Imágenes -| Firma del Método | Firma del Método de Reemplazo | +### **ImageCollection** +| Firma del método | Firma del método de reemplazo | |-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| Firma del Método | Firma del Método de Reemplazo | +### **PPImage** +| Firma del método | Firma del método de reemplazo | |--------------------------------------|-----------------------------------------| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### Formato de Patrón -| Firma del Método | Firma del Método de Reemplazo | +### **PatternFormat** +| Firma del método | Firma del método de reemplazo | |-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### Datos Efectivos de Formato de Patrón -| Firma del Método | Firma del Método de Reemplazo | +### **PatternFormatEffectiveData** +| Firma del método | Firma del método de reemplazo | |-----------------------------------------------------------|-----------------------------------------------------| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | +## **El soporte de la API para Graphics2D será descontinuado** + +Los métodos con [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) están declarados como obsoletos y su soporte se eliminará de la API pública. + +La parte de la API que lo usa se eliminará: + +[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) -## El soporte de la API para Graphics2D será descontinuado +# **FAQ** -Los métodos con [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) están declarados en desuso y su soporte será eliminado de la API pública. +**¿Cuál es el beneficio práctico de IImage en comparación con Image/Bitmap?** -La parte de la API que los utiliza será eliminada: +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) unifica el trabajo con imágenes raster y vectoriales y simplifica el guardado en varios formatos mediante [ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/). -[Diapositiva](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +**¿Afectará la API moderna al rendimiento de la generación de miniaturas?** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +Cambiar de `getThumbnail` a `getImage` no empeora los escenarios: los nuevos métodos ofrecen las mismas capacidades para producir imágenes con opciones y tamaños, conservando el soporte para opciones de renderizado. La ganancia o pérdida específica depende del escenario, pero funcionalmente los reemplazos son equivalentes. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/powerpoint-animation/_index.md b/es/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..a493ad54bf --- /dev/null +++ b/es/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,84 @@ +--- +title: "Animación de PowerPoint" +type: docs +weight: 150 +url: /es/nodejs-java/powerpoint-animation/ +keywords: "Animación de PowerPoint" +description: "Animación de PowerPoint, animación de diapositivas de PowerPoint con Aspose.Slides." +--- + +Dado que las presentaciones están destinadas a presentar algo, su apariencia visual y comportamiento interactivo siempre se consideran al crearlas. + +**PowerPoint animation** juega un papel importante para que la presentación sea llamativa y atractiva para los espectadores. Aspose.Slides for Node.js via Java ofrece una amplia gama de opciones para **añadir animación** a una presentación de PowerPoint: + +- aplicar varios tipos de efectos de animación de PowerPoint en formas, gráficos, tablas, objetos OLE y otros elementos de la presentación. +- usar múltiples efectos de animación de PowerPoint en una forma. +- usar la línea de tiempo de animación para controlar los efectos. +- crear animaciones personalizadas. + +En Aspose.Slides for Node.js via Java, se pueden aplicar diversos efectos de animación en las formas. Como cada elemento de la diapositiva, incluido texto, imágenes, objeto OLE, tabla, etc., se considera una forma, podemos aplicar efectos de animación a **cualquier** elemento de una diapositiva. + +## **Animation Effects** +Aspose.Slides admite **más de 150 efectos de animación**, incluidos efectos básicos como Bounce, PathFootball, Zoom y efectos específicos como OLEObjectShow, OLEObjectOpen. Puede encontrar un listado completo de efectos de animación en la enumeración [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/). + +Además, estos efectos de animación pueden combinarse con: + +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **Custom Animation** +Es posible crear sus propias **animaciones personalizadas** en Aspose.Slides. +Esto se logra combinando varios comportamientos en una nueva animación personalizada. + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) es la unidad de construcción de cualquier efecto de animación de PowerPoint. Todos los efectos son, en realidad, un conjunto de comportamientos compuestos en una estrategia. Puede combinar comportamientos en una animación personalizada **una vez** y reutilizarla en otras presentaciones. Si añade un nuevo comportamiento a un efecto de animación estándar de PowerPoint, obtendrá otra animación personalizada. Por ejemplo, puede añadir un comportamiento de repetición a una animación para que se repita varias veces. + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) es el punto donde se debe aplicar el comportamiento. + +## **Animation Time Line** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) es una colección de efectos de animación, aplicados a una forma concreta. + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) es un conjunto de Sequences usado en una diapositiva concreta. Es el motor de animación introducido desde PowerPoint 2002. En versiones anteriores de PowerPoint, agregar efectos de animación a una presentación era complicado y solo se lograba mediante diferentes soluciones alternativas. La línea de tiempo reemplaza la antigua clase AnimationSettings y proporciona un modelo de objetos más claro para la animación de PowerPoint. Una diapositiva puede tener **solo una** línea de tiempo de animación. + +## **Interactive Animation** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) permite definir acciones del usuario (p. ej., clic en un botón) que harán que comience una animación específica. Los disparadores se añadieron solo en la versión más reciente de PowerPoint. + +## **Shape Animation** +Aspose.Slides permite aplicar animación a formas, que pueden ser texto, rectángulo, línea, marco, objeto OLE, etc. + +{{% alert color="primary" %}} +Leer más [**Acerca de la animación de formas**](/slides/es/nodejs-java/shape-animation/). +{{% /alert %}} + +## **Animated Charts** +Para crear gráficos animados, debe usar las mismas clases que para las formas. Sin embargo, es posible aplicar la animación de PowerPoint solo a categorías o series del gráfico. También puede aplicar un efecto de animación a un elemento de categoría o a un elemento de serie. + +{{% alert color="primary" %}} +Leer más [**Acerca de los gráficos animados**](/slides/es/nodejs-java/animated-charts/). +{{% /alert %}} + +## **Animated text** +Además del texto animado, también es posible aplicar animación a un párrafo. + +{{% alert color="primary" %}} +Leer más [**Acerca del texto animado**](/slides/es/nodejs-java/animated-text/). +{{% /alert %}} + +## **FAQ** + +**¿Se conservarán las animaciones al exportar a PDF?** + +No. PDF es un formato estático, por lo que las animaciones y las [transiciones de diapositivas](/slides/es/nodejs-java/slide-transition/) no se reproducen. Si necesita movimiento, exporte a [HTML5](/slides/es/nodejs-java/export-to-html5/), [GIF animado](/slides/es/nodejs-java/convert-powerpoint-to-animated-gif/) o [video](/slides/es/nodejs-java/convert-powerpoint-to-video/) en su lugar. + +**¿Puedo convertir una presentación animada en un video y controlar la tasa de fotogramas y el tamaño del cuadro?** + +Sí. Puede [renderizar la presentación como fotogramas](/slides/es/nodejs-java/convert-powerpoint-to-video/) y codificarlos en un video (p. ej., con ffmpeg), eligiendo FPS y resolución. Las animaciones y transiciones de diapositiva se reproducen durante el renderizado. + +**¿Las animaciones permanecerán intactas al trabajar con ODP (no solo PPTX)?** + +PPT, PPTX y ODP son compatibles para [lectura](/slides/es/nodejs-java/open-presentation/) y [escritura](/slides/es/nodejs-java/save-presentation/), pero las diferencias de formato pueden hacer que ciertos efectos se vean o se comporten ligeramente distintos. Valide los casos críticos con muestras reales. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-comments/_index.md b/es/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..9ea906ccc8 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,228 @@ +--- +title: Comentarios de la presentación +type: docs +weight: 100 +url: /es/nodejs-java/presentation-comments/ +keywords: "Comentarios, Comentarios de PowerPoint, Presentación de PowerPoint, Java, Aspose.Slides para Node.js mediante Java" +description: "Agregar comentarios y respuestas en una presentación de PowerPoint con JavaScript" +--- + +En PowerPoint, un comentario aparece como una nota o anotación en una diapositiva. Cuando se hace clic en un comentario, se revelan sus contenidos o mensajes. + +## **¿Por qué agregar comentarios a las presentaciones?** + +Es posible que desee usar comentarios para proporcionar retroalimentación o comunicarse con sus colegas al revisar presentaciones. + +Para permitirle usar comentarios en presentaciones de PowerPoint, Aspose.Slides for Node.js via Java proporciona + +* La clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), que contiene las colecciones de autores (de la clase [CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection)). Los autores añaden comentarios a las diapositivas. +* La clase [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection), que contiene la colección de comentarios para autores individuales. +* La clase [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment), que contiene información sobre los autores y sus comentarios: quién añadió el comentario, la hora en que se añadió, la posición del comentario, etc. +* La clase [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor), que contiene información sobre autores individuales: el nombre del autor, sus iniciales, los comentarios asociados al nombre del autor, etc. + +## **Agregar comentario a la diapositiva** +Este código JavaScript le muestra cómo agregar un comentario a una diapositiva en una presentación de PowerPoint: +```javascript +// Instancia la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Añade una diapositiva vacía + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // Añade un autor + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // Establece la posición para los comentarios + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // Añade un comentario de diapositiva para un autor en la diapositiva 1 + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // Añade un comentario de diapositiva para un autor en la diapositiva 2 + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // Accede a ISlide 1 + var slide = pres.getSlides().get_Item(0); + // Cuando se pasa null como argumento, se traen los comentarios de todos los autores a la diapositiva seleccionada + var Comments = slide.getSlideComments(author); + // Accede al comentario en el índice 0 de la diapositiva 1 + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // Selecciona la colección de comentarios del autor en el índice 0 + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Acceder a los comentarios de la diapositiva** +Este código JavaScript le muestra cómo acceder a un comentario existente en una diapositiva en una presentación de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Responder a comentarios** +Un comentario principal es el comentario superior u original en una jerarquía de comentarios o respuestas. Usando los métodos [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) o [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) (de la clase [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)), puede obtener o establecer un comentario principal. + +Este código JavaScript le muestra cómo agregar comentarios y obtener sus respuestas: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Añade un comentario + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // Añade una respuesta al comentario 1 + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // Añade otra respuesta al comentario 1 + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // Añade una respuesta a una respuesta existente + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // Muestra la jerarquía de comentarios en la consola + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // Elimina el comentario 1 y todas sus respuestas + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Attention" %}} + +* Cuando se utiliza el método [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--) (de la clase [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)) para eliminar un comentario, también se eliminan las respuestas al comentario. +* Si la configuración de [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) produce una referencia circular, se lanzará una [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException). + +{{% /alert %}} + +## **Agregar comentario moderno** + +En 2021, Microsoft introdujo *comentarios modernos* en PowerPoint. La función de comentarios modernos mejora significativamente la colaboración en PowerPoint. Gracias a los comentarios modernos, los usuarios de PowerPoint pueden resolver comentarios, anclar comentarios a objetos y textos, y participar en interacciones de forma mucho más sencilla que antes. + +En [Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/), implementamos soporte para comentarios modernos añadiendo la clase [ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment). Se añadieron los métodos [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) e [insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) a la clase [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection). + +Este código JavaScript le muestra cómo agregar un comentario moderno a una diapositiva en una presentación de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Eliminar comentario** + +### **Eliminar todos los comentarios y autores** + +Este código JavaScript le muestra cómo eliminar todos los comentarios y autores en una presentación: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Elimina todos los comentarios de la presentación + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // Elimina todos los autores + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Eliminar comentarios específicos** + +Este código JavaScript le muestra cómo eliminar comentarios específicos en una diapositiva: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // añadir comentarios... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // eliminar todos los comentarios que contengan el texto "comment 1" + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Aspose.Slides admite un estado como “resuelto” para los comentarios modernos?** + +Sí. Los [comentarios modernos](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) exponen los métodos [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) y [setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/); puede leer y establecer el [estado del comentario](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncommentstatus/) (por ejemplo, marcarlo como resuelto), y este estado se guarda en el archivo y es reconocido por PowerPoint. + +**¿Se admiten discusiones en hilo (cadenas de respuestas) y existe un límite de anidación?** + +Sí. Cada comentario puede referenciar su [comentario principal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/), lo que permite cadenas de respuestas arbitrarias. La API no declara un límite específico de profundidad de anidación. + +**¿En qué sistema de coordenadas se define la posición del marcador de comentario en una diapositiva?** + +La posición se almacena como un punto de coma flotante en el sistema de coordenadas de la diapositiva. Esto le permite colocar el marcador de comentario exactamente donde lo necesite. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..dafbfc859b --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,206 @@ +--- +title: Gestionar Blob +type: docs +weight: 10 +url: /es/nodejs-java/manage-blob/ +description: Administrar Blob en una presentación de PowerPoint usando JavaScript. Usar Blob para reducir el consumo de memoria en una presentación de PowerPoint usando JavaScript. Añadir un archivo grande mediante Blob a una presentación de PowerPoint usando JavaScript. Exportar un archivo grande mediante Blob desde una presentación de PowerPoint usando JavaScript. Cargar una presentación de PowerPoint grande como Blob usando JavaScript. +--- + +## **Acerca de BLOB** + +**BLOB** (**Binary Large Object**) suele ser un elemento grande (foto, presentación, documento o medio) guardado en formatos binarios. + +Aspose.Slides for Node.js via Java le permite usar BLOBs para objetos de manera que reduzca el consumo de memoria cuando se manejan archivos grandes. + +{{% alert title="Información" color="info" %}} +Para evitar ciertas limitaciones al interactuar con flujos, Aspose.Slides puede copiar el contenido del flujo. Cargar una presentación grande a través de su flujo provocará la copia del contenido de la presentación y causará una carga lenta. Por lo tanto, cuando pretenda cargar una presentación grande, le recomendamos encarecidamente que utilice la ruta del archivo de la presentación y no su flujo. +{{% /alert %}} + +## **Usar BLOB para reducir el consumo de memoria** + +### **Agregar un archivo grande mediante BLOB a una presentación** + +[Aspose.Slides](/slides/es/nodejs-java/) for Node.js via Java le permite agregar archivos grandes (en este caso, un archivo de video grande) mediante un proceso que involucra BLOBs para reducir el consumo de memoria. + +Este JavaScript le muestra cómo agregar un archivo de video grande mediante el proceso BLOB a una presentación: +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// Crea una nueva presentación a la que se añadirá el video +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // Añadamos el video a la presentación - elegimos el comportamiento KeepLocked porque + // no tenemos intención de acceder al archivo "veryLargeVideo.avi". + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // Guarda la presentación. Mientras se genera una presentación grande, el consumo de memoria + // se mantiene bajo durante el ciclo de vida del objeto pres + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Exportar archivo grande mediante BLOB desde una presentación** + +Aspose.Slides for Node.js via Java le permite exportar archivos grandes (en este caso, un archivo de audio o video) mediante un proceso que involucra BLOBs desde presentaciones. Por ejemplo, puede necesitar extraer un archivo multimedia grande de una presentación pero no desea que el archivo se cargue en la memoria de su ordenador. Exportando el archivo mediante el proceso BLOB, mantiene bajo el consumo de memoria. + +Este código en JavaScript demuestra la operación descrita: +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// Bloquea el archivo fuente y NO lo carga en memoria +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// Crea la instancia de Presentation y bloquea el archivo "hugePresentationWithAudiosAndVideos.pptx". +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // Guardemos cada video en un archivo. Para evitar un alto uso de memoria, necesitamos un búfer que se utilizará + // para transferir los datos del flujo de video de la presentación a un flujo de un archivo de video recién creado. + var buffer = new byte[8 * 1024]; + // Recorre los videos + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // Abre el flujo de video de la presentación. Por favor, note que evitamos intencionalmente acceder a propiedades + // como video.BinaryData - porque esta propiedad devuelve un arreglo de bytes que contiene un video completo, lo que entonces + // hace que los bytes se carguen en memoria. Usamos video.GetStream, que devuelve un Stream - y NO + // requiere que carguemos el video completo en la memoria. + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // El consumo de memoria se mantendrá bajo independientemente del tamaño del video o la presentación. + } + // Si es necesario, puede aplicar los mismos pasos para archivos de audio. +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **Agregar imagen como BLOB en una presentación** + +Con los métodos de la clase [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) y la clase [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection), puede agregar una imagen grande como flujo para que se trate como un BLOB. + +Este código JavaScript le muestra cómo agregar una imagen grande mediante el proceso BLOB: +```javascript +var pathToLargeImage = "large_image.jpg"; +// crea una nueva presentación a la que se añadirá la imagen. +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // Añadamos la imagen a la presentación - elegimos el comportamiento KeepLocked porque + // NO pretendemos acceder al archivo "largeImage.png" file. + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // Guarda la presentación. Mientras se genera una presentación grande, el consumo de memoria + // se mantiene bajo durante el ciclo de vida del objeto pres + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Memoria y presentaciones grandes** + +Normalmente, para cargar una presentación grande, los equipos requieren mucha memoria temporal. Todo el contenido de la presentación se carga en la memoria y el archivo (del que se cargó la presentación) deja de usarse. + +Considere una presentación de PowerPoint grande (large.pptx) que contiene un archivo de video de 1,5 GB. El método estándar para cargar la presentación se describe en este código JavaScript: +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Pero este método consume alrededor de 1,6 GB de memoria temporal. + +### **Cargar una presentación grande como BLOB** + +Mediante el proceso que involucra un BLOB, puede cargar una presentación grande usando poca memoria. Este código JavaScript describe la implementación donde se usa el proceso BLOB para cargar un archivo de presentación grande (large.pptx): +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Cambiar la carpeta para archivos temporales** + +Cuando se utiliza el proceso BLOB, su computadora crea archivos temporales en la carpeta predeterminada para archivos temporales. Si desea que los archivos temporales se guarden en una carpeta diferente, puede cambiar la configuración de almacenamiento usando `setTempFilesRootPath`: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Información" color="info" %}} +Cuando usa `setTempFilesRootPath`, Aspose.Slides no crea automáticamente una carpeta para almacenar los archivos temporales. Debe crear la carpeta manualmente. +{{% /alert %}} + +## **Preguntas frecuentes** + +**¿Qué datos en una presentación de Aspose.Slides se tratan como BLOB y son controlados por opciones BLOB?** + +Los objetos binarios grandes como imágenes, audio y video se tratan como BLOB. El archivo completo de la presentación también implica manejo de BLOB cuando se carga o guarda. Estos objetos están gobernados por políticas BLOB que le permiten gestionar el uso de memoria y volcar a archivos temporales cuando sea necesario. + +**¿Dónde configuro las reglas de manejo de BLOB durante la carga de una presentación?** + +Utilice [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) con [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/). Allí establece el límite en memoria para BLOB, permite o no los archivos temporales, elige la ruta raíz para los archivos temporales y selecciona el comportamiento de bloqueo de la fuente. + +**¿Los ajustes de BLOB afectan el rendimiento y cómo equilibro velocidad vs memoria?** + +Sí. Mantener BLOB en memoria maximiza la velocidad pero aumenta el consumo de RAM; reducir el límite de memoria desplaza más trabajo a archivos temporales, disminuyendo la RAM a costa de I/O adicional. Use el método [setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/) para lograr el equilibrio adecuado para su carga de trabajo y entorno. + +**¿Las opciones BLOB ayudan al abrir presentaciones extremadamente grandes (p.ej., gigabytes)?** + +Sí. [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) están diseñadas para esos escenarios: habilitar archivos temporales y usar bloqueo de fuente pueden reducir significativamente el uso máximo de RAM y estabilizar el procesamiento de presentaciones muy grandes. + +**¿Puedo usar políticas BLOB al cargar desde streams en lugar de archivos en disco?** + +Sí. Las mismas reglas se aplican a los streams: la instancia de la presentación puede poseer y bloquear el stream de entrada (según el modo de bloqueo elegido), y se utilizan archivos temporales cuando están permitidos, manteniendo predecible el uso de memoria durante el procesamiento. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..d7a40adf95 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,309 @@ +--- +title: Administrar hipervínculos +type: docs +weight: 20 +url: /es/nodejs-java/manage-hyperlinks/ +keywords: "Hipervínculo PowerPoint, hipervínculo de texto, hipervínculo de diapositiva, hipervínculo de forma, hipervínculo de imagen, hipervínculo de video, Java" +description: "Cómo agregar un hipervínculo a una presentación de PowerPoint en JavaScript" +--- + +Un hipervínculo es una referencia a un objeto, a datos o a un lugar en algo. Estos son hipervínculos comunes en presentaciones de PowerPoint: + +* Enlaces a sitios web dentro de textos, formas o medios +* Enlaces a diapositivas + +Aspose.Slides for Node.js via Java le permite realizar muchas tareas relacionadas con hipervínculos en presentaciones. + +{{% alert color="primary" %}} +Es posible que desee probar Aspose simple, [editor de PowerPoint en línea gratuito.](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **Agregar hipervínculos URL** + +### **Agregar hipervínculos URL a textos** + +Este código JavaScript le muestra cómo agregar un hipervínculo a un sitio web en un texto: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Agregar hipervínculos URL a formas o marcos** + +Este ejemplo de código en JavaScript le muestra cómo agregar un hipervínculo a un sitio web en una forma: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Agregar hipervínculos URL a medios** + +Aspose.Slides le permite agregar hipervínculos a imágenes, archivos de audio y video. + +Este ejemplo de código le muestra cómo agregar un hipervínculo a una **imagen**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega imagen a la presentación + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // Crea un marco de imagen en la diapositiva 1 basado en la imagen añadida previamente + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este ejemplo de código le muestra cómo agregar un hipervínculo a un **archivo de audio**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este ejemplo de código le muestra cómo agregar un hipervínculo a un **video**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Es posible que desee ver *[Administrar OLE](/slides/es/nodejs-java/manage-ole/)*. +{{% /alert %}} + +## **Usar hipervínculos para crear tabla de contenido** + +Dado que los hipervínculos le permiten agregar referencias a objetos o lugares, puede utilizarlos para crear una tabla de contenido. + +Este ejemplo de código le muestra cómo crear una tabla de contenido con hipervínculos: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Formato de los hipervínculos** + +### **Color** + +Con el método [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) de la clase [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink), puede establecer el color de los hipervínculos y también obtener la información de color de los hipervínculos. La función se introdujo por primera vez en PowerPoint 2019, por lo que los cambios relacionados con la propiedad no se aplican a versiones anteriores de PowerPoint. + +Este ejemplo de código demuestra una operación en la que se agregaron hipervínculos con diferentes colores a la misma diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Eliminar hipervínculos en presentaciones** + +### **Eliminar hipervínculos de textos** + +Este código JavaScript le muestra cómo eliminar el hipervínculo de un texto en una diapositiva de presentación: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // Comprueba si la forma admite un marco de texto (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Itera a través de los párrafos en el marco de texto + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // Itera a través de cada porción en el párrafo + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// Cambia el texto + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Cambia el formato + } + } + } + } + } + // Guarda la presentación modificada + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Eliminar hipervínculos de formas o marcos** + +Este código JavaScript le muestra cómo eliminar el hipervínculo de una forma en una diapositiva de presentación: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Hipervínculo mutable** + +La clase [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) es mutable. Con esta clase, puede cambiar los valores de estas propiedades: + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +El fragmento de código le muestra cómo agregar un hipervínculo a una diapositiva y editar su información sobre herramientas más tarde: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Propiedades compatibles en IHyperlinkQueries** + +Puede acceder a [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) desde una presentación, diapositiva o texto para el que está definido el hipervínculo. + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +La clase [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) admite estos métodos y propiedades: + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **Preguntas frecuentes** + +**¿Cómo puedo crear una navegación interna no solo a una diapositiva, sino a una “sección” o a la primera diapositiva de una sección?** + +Las secciones en PowerPoint son agrupaciones de diapositivas; la navegación técnicamente apunta a una diapositiva específica. Para “navegar a una sección”, normalmente se enlaza a su primera diapositiva. + +**¿Puedo adjuntar un hipervínculo a elementos de la diapositiva maestra para que funcione en todas las diapositivas?** + +Sí. Los elementos de la diapositiva maestra y de diseño admiten hipervínculos. Tales enlaces aparecen en las diapositivas derivadas y son clicables durante la presentación. + +**¿Se conservarán los hipervínculos al exportar a PDF, HTML, imágenes o video?** + +En [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/) y [HTML](/slides/es/nodejs-java/convert-powerpoint-to-html/), sí: los enlaces generalmente se conservan. Al exportar a [imágenes](/slides/es/nodejs-java/convert-powerpoint-to-png/) y [video](/slides/es/nodejs-java/convert-powerpoint-to-video/), la capacidad de hacer clic no se transfiere debido a la naturaleza de esos formatos (los fotogramas rasterizados/video no admiten hipervínculos). \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..9ed14a2cae --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,239 @@ +--- +title: Administrar audio en presentaciones usando JavaScript +linktitle: Marco de audio +type: docs +weight: 10 +url: /es/nodejs-java/audio-frame/ +keywords: +- audio +- marco de audio +- miniatura +- agregar audio +- propiedades de audio +- opciones de audio +- extraer audio +- Node.js +- JavaScript +- Aspose.Slides +description: "Crear y controlar marcos de audio en Aspose.Slides para Node.js—ejemplos en JavaScript para incrustar, recortar, reproducir en bucle y configurar la reproducción en presentaciones PPT, PPTX y ODP." +--- + +## **Crear marcos de audio** + +Aspose.Slides para Node.js mediante Java le permite agregar archivos de audio a las diapositivas. Los archivos de audio se incrustan en las diapositivas como marcos de audio. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga una referencia a la diapositiva mediante su índice. +3. Cargue el flujo del archivo de audio que desea incrustar en la diapositiva. +4. Agregue el marco de audio incrustado (que contiene el archivo de audio) a la diapositiva. +5. Establezca [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) y `Volume` expuestos por el objeto [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame). +6. Guarde la presentación modificada. + +Este código JavaScript le muestra cómo agregar un marco de audio incrustado a una diapositiva: +```javascript +// Instancia una clase Presentation que representa un archivo de presentación +const pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva + const sld = pres.getSlides().get_Item(0); + // Carga el archivo de sonido wav a un flujo + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // Añade el Marco de Audio + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // Establece el modo de reproducción y el volumen del audio + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // Escribe el archivo PowerPoint en disco + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Cambiar la miniatura del marco de audio** + +Cuando agrega un archivo de audio a una presentación, el audio aparece como un marco con una imagen predeterminada estándar (vea la imagen en la sección siguiente). Puede cambiar la imagen de vista previa del marco de audio (establezca la imagen que prefiera). + +Este código JavaScript le muestra cómo cambiar la miniatura o la imagen de vista previa de un marco de audio: +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // Agrega un marco de audio a la diapositiva con una posición y tamaño especificados. + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // Agrega una imagen a los recursos de la presentación. + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Establece la imagen para el marco de audio. + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // Saves the modified presentation to disk + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Cambiar las opciones de reproducción de audio** + +Aspose.Slides para Node.js mediante Java le permite cambiar opciones que controlan la reproducción o propiedades de un audio. Por ejemplo, puede ajustar el volumen del audio, configurar que el audio se reproduzca en bucle o incluso ocultar el ícono de audio. + +El panel **Audio Options** en Microsoft PowerPoint: + +![example1_image](audio_frame_0.png) + +Opciones de audio de PowerPoint **Audio Options** que corresponden a las propiedades de [AudioFrame] de Aspose.Slides: +- **Start** la lista desplegable coincide con el método [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode) +- **Volume** coincide con el método [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume) +- **Play Across Slides** coincide con el método [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides) +- **Loop until Stopped** coincide con el método [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode) +- **Hide During Show** coincide con el método [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing) +- **Rewind after Playing** coincide con el método [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio) + +Opciones de **Editing** de PowerPoint que corresponden a las propiedades de [AudioFrame] de Aspose.Slides: +- **Fade In** coincide con el método [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration) +- **Fade Out** coincide con el método [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration) +- **Trim Audio Start Time** coincide con el método [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart) +- **Trim Audio End Time** el valor equivale a la duración del audio menos el valor del método [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd) + +El **Volume controll** de PowerPoint en el panel de control de audio corresponde al método [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue). Permite cambiar el volumen del audio como un porcentaje. + +Así es como se cambian las opciones de reproducción de audio: +1. [Crear](#create-audio-frame) o obtener el Marco de audio. +2. Establezca nuevos valores para las propiedades del Marco de audio que desea ajustar. +3. Guarde el archivo PowerPoint modificado. + +Este código JavaScript demuestra una operación en la que se ajustan las opciones de un audio: +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // Obtiene la forma AudioFrame + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // Establece el modo de reproducción para reproducir al hacer clic + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // Establece el volumen a bajo + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // Establece que el audio se reproduzca a través de las diapositivas + audioFrame.setPlayAcrossSlides(true); + // Desactiva el bucle del audio + audioFrame.setPlayLoopMode(false); + // Oculta el AudioFrame durante la presentación + audioFrame.setHideAtShowing(true); + // Retrocede el audio al inicio después de reproducir + audioFrame.setRewindAudio(true); + // Guarda el archivo PowerPoint en disco + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este ejemplo JavaScript muestra cómo agregar un nuevo marco de audio con audio incrustado, recortarlo y establecer las duraciones de desvanecimiento: +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // Establece el desplazamiento de inicio del recorte a 1.5 segundos + audioFrame.setTrimFromStart(1500); + // Establece el desplazamiento de fin del recorte a 2 segundos + audioFrame.setTrimFromEnd(2000); + + // Establece la duración de fundido de entrada a 200 ms + audioFrame.setFadeInDuration(200); + // Establece la duración de fundido de salida a 500 ms + audioFrame.setFadeOutDuration(500); + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +El siguiente fragmento de código muestra cómo obtener un marco de audio con audio incrustado y establecer su volumen al 85%: +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // Obtiene una forma de marco de audio + const audioFrame = slide.getShapes().get_Item(0); + + // Establece el volumen del audio al 85% + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **Extraer audio** + +Aspose.Slides para Node.js mediante Java le permite extraer el sonido utilizado en las transiciones de la presentación de diapositivas. Por ejemplo, puede extraer el sonido usado en una diapositiva específica. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) y cargue la presentación que contiene el audio. +2. Obtenga la referencia de la diapositiva pertinente mediante su índice. +3. Acceda a las [slideshow transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--) de la diapositiva. +4. Extraiga el sonido en datos de bytes. + +Este código en JavaScript le muestra cómo extraer el audio usado en una diapositiva: +```javascript +// Instancia una clase Presentation que representa un archivo de presentación +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // Accede a la diapositiva deseada + const slide = pres.getSlides().get_Item(0); + // Obtiene los efectos de transición de la presentación para la diapositiva + const transition = slide.getSlideShowTransition(); + // Extrae el sonido en un array de bytes + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Puedo reutilizar el mismo recurso de audio en varias diapositivas sin inflar el tamaño del archivo?** + +Sí. Añada el audio una sola vez a la [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) compartida de la presentación y cree marcos de audio adicionales que referencien ese recurso existente. Esto evita duplicar los datos multimedia y mantiene el tamaño de la presentación bajo control. + +**¿Puedo reemplazar el sonido en un marco de audio existente sin recrear la forma?** + +Sí. Para un sonido vinculado, actualice la [link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) para que apunte al nuevo archivo. Para un sonido incrustado, reemplace el objeto [embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) por otro de la [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) de la presentación. El formato del marco y la mayoría de los ajustes de reproducción permanecen intactos. + +**¿El recorte modifica los datos de audio subyacentes almacenados en la presentación?** + +No. El recorte solo ajusta los límites de reproducción. Los bytes originales del audio permanecen sin cambios y accesibles a través del audio incrustado o de la colección de audio de la presentación. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..9911812204 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: Flash +type: docs +weight: 10 +url: /es/nodejs-java/flash/ +description: Extracción de objetos Flash de presentaciones PowerPoint usando JavaScript +--- + +## **Extraer objetos Flash de la presentación** + +Aspose.Slides para Node.js a través de Java ofrece una funcionalidad para extraer objetos flash de una presentación. Puede acceder al control flash por nombre y extraerlo de la presentación, incluyendo el almacenamiento de datos de objetos SWF. +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Qué formatos de presentación son compatibles al extraer contenido Flash?** + +[Aspose.Slides soporta](/slides/es/nodejs-java/supported-file-formats/) los principales formatos de PowerPoint como PPT y PPTX, ya que puede cargar estos contenedores y acceder a sus controles, incluidos los elementos ActiveX relacionados con Flash. + +**¿Puedo convertir una presentación con Flash a HTML5 y conservar la interactividad de Flash?** + +No. Aspose.Slides no ejecuta contenido SWF ni convierte su interactividad. Aunque la exportación a [HTML](/slides/es/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/es/nodejs-java/export-to-html5/) está soportada, Flash no se reproducirá en los navegadores modernos debido al fin del soporte. La ruta recomendada es reemplazar Flash por alternativas como video o animaciones HTML5 antes de la exportación. + +**Desde una perspectiva de seguridad, ¿Aspose.Slides ejecuta archivos SWF al leer una presentación?** + +No. Aspose.Slides trata Flash como datos binarios incrustados en el archivo y no ejecuta contenido SWF durante el procesamiento. + +**¿Cómo debo manejar presentaciones que incluyen Flash junto con otros archivos incrustados a través de OLE?** + +Aspose.Slides soporta [extraer objetos OLE incrustados](/slides/es/nodejs-java/manage-ole/), por lo que puede procesar todo el contenido incrustado relacionado en un solo paso, manejando los controles Flash y otros documentos incrustados mediante OLE juntos. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..b71a2a2360 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,305 @@ +--- +title: Imagen +type: docs +weight: 10 +url: /es/nodejs-java/image/ +keywords: +- agregar imagen +- agregar imagen +- agregar mapa de bits +- reemplazar imagen +- reemplazar imagen +- desde la web +- fondo +- agregar PNG +- agregar JPG +- agregar SVG +- agregar EMF +- agregar WMF +- agregar TIFF +- PowerPoint +- OpenDocument +- presentación +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "Optimiza la gestión de imágenes en PowerPoint y OpenDocument con Aspose.Slides para Node.js, mejorando el rendimiento y automatizando tu flujo de trabajo." +--- + +## **Imágenes en diapositivas en presentaciones** + +Las imágenes hacen que las presentaciones sean más atractivas e interesantes. En Microsoft PowerPoint, puedes insertar imágenes desde un archivo, internet u otras ubicaciones en las diapositivas. De manera similar, Aspose.Slides permite agregar imágenes a las diapositivas de tus presentaciones mediante diferentes procedimientos. + +{{% alert title="Tip" color="primary" %}} + +Aspose ofrece convertidores gratuitos—[JPEG a PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) y [PNG a PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)—que permiten crear presentaciones rápidamente a partir de imágenes. + +{{% /alert %}} + +{{% alert title="Info" color="info" %}} + +Si deseas agregar una imagen como un objeto de marco—especialmente si planeas usar opciones de formato estándar para cambiar su tamaño, agregar efectos, etc.—consulta [Marco de imagen](https://docs.aspose.com/slides/nodejs-java/picture-frame/). + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +Puedes manipular operaciones de entrada/salida que involucren imágenes y presentaciones de PowerPoint para convertir una imagen de un formato a otro. Consulta estas páginas: convertir [imagen a JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); convertir [JPG a imagen](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); convertir [JPG a PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), convertir [PNG a JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); convertir [PNG a SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), convertir [SVG a PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +Aspose.Slides admite operaciones con imágenes en estos formatos populares: JPEG, PNG, GIF y otros. + +## **Agregar imágenes almacenadas localmente a las diapositivas** + +Puedes agregar una o varias imágenes de tu computadora a una diapositiva en una presentación. Este código de ejemplo en JavaScript muestra cómo agregar una imagen a una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar imágenes desde el flujo a las diapositivas** + +Si la imagen que deseas agregar a una diapositiva no está disponible en tu computadora, puedes agregarla directamente desde la web. + +Este código de ejemplo muestra cómo agregar una imagen desde la web a una diapositiva en JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Accede a la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Carga un archivo Excel al flujo + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // Crea un objeto de datos para incrustar + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // Agrega una forma de marco de objeto Ole + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // Escribe el archivo PPTX en disco + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar imágenes a los maestros de diapositivas** + +Un maestro de diapositivas es la diapositiva superior que almacena y controla información (tema, diseño, etc.) sobre todas las diapositivas que están bajo ella. Por lo tanto, cuando agregas una imagen a un maestro de diapositivas, esa imagen aparece en cada diapositiva bajo ese maestro. + +Este código de ejemplo en JavaScript muestra cómo agregar una imagen a un maestro de diapositivas: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar imágenes como fondo de diapositiva** + +Puedes decidir usar una imagen como fondo para una diapositiva específica o varias diapositivas. En ese caso, debes consultar *[Configurar imágenes como fondos para diapositivas](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)*. + +## **Agregar SVG a presentaciones** +Puedes agregar o insertar cualquier imagen en una presentación usando el método [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) que pertenece a la clase [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +Para crear un objeto de imagen basado en una imagen SVG, puedes hacerlo de esta manera: + +1. Crear un objeto SvgImage para insertarlo en ImageShapeCollection +2. Crear un objeto PPImage a partir de ISvgImage +3. Crear un objeto PictureFrame usando la clase PPImage + +Este código de ejemplo muestra cómo implementar los pasos anteriores para agregar una imagen SVG en una presentación: +```javascript +// Instanciar la clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir SVG a un conjunto de formas** +La conversión de SVG a un conjunto de formas de Aspose.Slides es similar a la funcionalidad de PowerPoint utilizada para trabajar con imágenes SVG: + +![PowerPoint Popup Menu](img_01_01.png) + +La funcionalidad se proporciona mediante una de las sobrecargas del método [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) de la clase [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) que recibe un objeto [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage) como primer argumento. + +Este código de ejemplo muestra cómo usar el método descrito para convertir un archivo SVG a un conjunto de formas: +```javascript +// Crear nueva presentación +var presentation = new aspose.slides.Presentation(); +try { + // Leer el contenido del archivo SVG + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // Crear objeto SvgImage + var svgImage = new aspose.slides.SvgImage(svgContent); + // Obtener el tamaño de la diapositiva + var slideSize = presentation.getSlideSize().getSize(); + // Convertir la imagen SVG a un grupo de formas escalándola al tamaño de la diapositiva + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // Guardar la presentación en formato PPTX + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Agregar imágenes como EMF en diapositivas** +Aspose.Slides for Node.js via Java permite generar imágenes EMF a partir de hojas de Excel y agregar las imágenes como EMF en diapositivas con Aspose.Cells. + +Este código de ejemplo muestra cómo realizar la tarea descrita: +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); +// Guardar el libro en el flujo +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Reemplazar imágenes en la colección de imágenes** + +Aspose.Slides permite reemplazar imágenes almacenadas en la colección de imágenes de una presentación (incluidas las usadas por formas de diapositivas). Esta sección muestra varios enfoques para actualizar imágenes en la colección. La API ofrece métodos sencillos para reemplazar una imagen usando datos de bytes sin procesar, una instancia [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) o otra imagen que ya exista en la colección. + +1. Cargar el archivo de presentación que contiene imágenes usando la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Cargar una nueva imagen desde un archivo en un arreglo de bytes. +1. Reemplazar la imagen objetivo con la nueva imagen usando el arreglo de bytes. +1. En el segundo enfoque, cargar la imagen en un objeto [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) y reemplazar la imagen objetivo con ese objeto. +1. En el tercer enfoque, reemplazar la imagen objetivo con una imagen que ya exista en la colección de imágenes de la presentación. +1. Guardar la presentación modificada como un archivo PPTX. +```js +// Instanciar la clase Presentation que representa un archivo de presentación. +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // La primera forma. + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // La segunda forma. + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // La tercera forma. + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // Guardar la presentación en un archivo. + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} + +Usando el convertidor GRATUITO de Aspose [Text to GIF](https://products.aspose.app/slides/text-to-gif), puedes animar textos fácilmente, crear GIFs a partir de textos, etc. + +{{% /alert %}} + +## **Preguntas frecuentes** + +**¿Se mantiene la resolución original de la imagen después de la inserción?** + +Sí. Los píxeles originales se conservan, pero la apariencia final depende de cómo se escale la [imagen](/slides/es/nodejs-java/picture-frame/) en la diapositiva y de cualquier compresión aplicada al guardar. + +**¿Cuál es la mejor manera de reemplazar el mismo logo en decenas de diapositivas a la vez?** + +Coloca el logo en la diapositiva maestra o en una disposición y reemplázalo en la colección de imágenes de la presentación; las actualizaciones se propagarán a todos los elementos que usan ese recurso. + +**¿Puede un SVG insertado convertirse en formas editables?** + +Sí. Puedes convertir un SVG en un grupo de formas, después de lo cual las partes individuales se vuelven editables con las propiedades estándar de formas. + +**¿Cómo puedo establecer una imagen como fondo de varias diapositivas a la vez?** + +[Asignar la imagen como fondo](/slides/es/nodejs-java/presentation-background/) en la diapositiva maestra o en la disposición correspondiente—cualquier diapositiva que use esa maestra/disposición heredará el fondo. + +**¿Cómo evitar que la presentación se inflccione en tamaño debido a muchas imágenes?** + +Reutiliza un solo recurso de imagen en lugar de duplicados, elige resoluciones razonables, aplica compresión al guardar y mantén los gráficos repetidos en la maestra cuando sea apropiado. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..6546cc4f9d --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,448 @@ +--- +title: Marco de Imagen +type: docs +weight: 10 +url: /es/nodejs-java/picture-frame/ +keywords: +- marco de imagen +- agregar un marco de imagen +- crear un marco de imagen +- agregar una imagen +- crear una imagen +- extraer una imagen +- recortar una imagen +- propiedad StretchOff +- formato de marco de imagen +- propiedades del marco de imagen +- efecto de imagen +- relación de aspecto +- PowerPoint +- presentación +- Node.js +- JavaScript +- Aspose.Slides para Node.js vía Java +description: "Agregar un marco de imagen a una presentación de PowerPoint con JavaScript" +--- + +Un marco de imagen es una forma que contiene una imagen—es como una foto en un marco. + +Puede agregar una imagen a una diapositiva a través de un marco de imagen. De esta manera, puede dar formato a la imagen formateando el marco de imagen. + +{{% alert title="Tip" color="primary" %}} + +Aspose ofrece conversores gratuitos—[JPEG a PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) y [PNG a PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)—que permiten crear presentaciones rápidamente a partir de imágenes. + +{{% /alert %}} + +## **Crear Marco de Imagen** + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva mediante su índice. +3. Cree un objeto `PPImage` añadiendo una imagen a la [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) asociada al objeto de presentación que se utilizará para rellenar la forma. +4. Especifique el ancho y la altura de la imagen. +5. Cree un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) basado en el ancho y la altura de la imagen mediante el método `addPictureFrame` expuesto por el objeto de forma asociado a la diapositiva referenciada. +6. Añada un marco de imagen (que contiene la foto) a la diapositiva. +7. Guarde la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de imagen: +```javascript +// Instancia la clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Instancia la clase Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Añade un marco de imagen con la altura y anchura equivalentes de la imagen + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Escribe el archivo PPTX en disco + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" %}} + +Los marcos de imagen le permiten crear rápidamente diapositivas de presentación basadas en imágenes. Cuando combina el marco de imagen con las opciones de guardado de Aspose.Slides, puede manipular operaciones de entrada/salida para convertir imágenes de un formato a otro. Es posible que desee ver estas páginas: convertir [imagen a JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); convertir [JPG a imagen](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); convertir [JPG a PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), convertir [PNG a JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); convertir [PNG a SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), convertir [SVG a PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Crear Marco de Imagen con Escala Relativa** + +Al modificar la escala relativa de una imagen, puede crear un marco de imagen más complejo. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva mediante su índice. +3. Añada una imagen a la colección de imágenes de la presentación. +4. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) asociada al objeto de presentación que se utilizará para rellenar la forma. +5. Especifique el ancho y la altura relativos de la imagen en el marco de imagen. +6. Guarde la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de imagen con escala relativa: +```javascript +// Instanciar la clase Presentation que representa el PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtener la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Instanciar la clase Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Añadir un Marco de Imagen con altura y anchura equivalentes de la Imagen + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Establecer escala relativa de ancho y alto + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // Escribir el archivo PPTX en disco + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Extraer Imágenes Raster de Marcos de Imagen** + +Puede extraer imágenes raster de objetos [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) y guardarlas en PNG, JPG y otros formatos. El ejemplo de código a continuación muestra cómo extraer una imagen del documento "sample.pptx" y guardarla en formato PNG. +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Extraer Imágenes SVG de Marcos de Imagen** + +Cuando una presentación contiene gráficos SVG colocados dentro de formas [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), Aspose.Slides for Node.js via Java le permite recuperar las imágenes vectoriales originales con fidelidad completa. Al recorrer la colección de formas de la diapositiva, puede identificar cada [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), comprobar si el [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) subyacente contiene contenido SVG y luego guardar esa imagen en disco o en un flujo en su formato SVG nativo. + +El siguiente ejemplo de código muestra cómo extraer una imagen SVG de un marco de imagen: +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Obtener Transparencia de la Imagen** + +Aspose.Slides permite obtener el efecto de transparencia aplicado a una imagen. Este código JavaScript demuestra la operación: +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **Formato de Marco de Imagen** + +Aspose.Slides proporciona muchas opciones de formato que pueden aplicarse a un marco de imagen. Con esas opciones, puede modificar un marco de imagen para que cumpla requisitos específicos. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva mediante su índice. +3. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) asociada al objeto de presentación que se utilizará para rellenar la forma. +4. Especifique el ancho y la altura de la imagen. +5. Cree un `PictureFrame` basado en el ancho y la altura de la imagen mediante el método [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) expuesto por el objeto [Shapes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) asociado a la diapositiva referenciada. +6. Añada el marco de imagen (que contiene la foto) a la diapositiva. +7. Establezca el color de línea del marco de imagen. +8. Establezca el ancho de línea del marco de imagen. +9. Gire el marco de imagen asignándole un valor positivo o negativo. + * Un valor positivo gira la imagen en sentido horario. + * Un valor negativo gira la imagen en sentido antihorario. +10. Añada el marco de imagen (que contiene la foto) a la diapositiva. +11. Guarde la presentación modificada como un archivo PPTX. + +Este código JavaScript demuestra el proceso de formato del marco de imagen: +```javascript +// Instancia la clase Presentation que representa el PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Instancia la clase Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Añade un marco de imagen con altura y anchura equivalentes de la imagen + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Aplica algo de formato a PictureFrameEx + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // Escribe el archivo PPTX en disco + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose desarrolló recientemente un [Collage Maker gratuito](https://products.aspose.app/slides/collage). Si alguna vez necesita [combinar JPG/JPEG](https://products.aspose.app/slides/collage/jpg) o imágenes PNG, [crear cuadrículas a partir de fotos](https://products.aspose.app/slides/collage/photo-grid), puede usar este servicio. + +{{% /alert %}} + +## **Agregar Imagen como Enlace** + +Para evitar presentaciones de gran tamaño, puede agregar imágenes (o videos) mediante enlaces en lugar de incrustar los archivos directamente en la presentación. Este código JavaScript le muestra cómo agregar una imagen y un video en un marcador de posición: +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Recortar Imagen** + +Este código JavaScript le muestra cómo recortar una imagen existente en una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +// Crea un nuevo objeto de imagen +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Añade un PictureFrame a una diapositiva + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // Recorta la imagen (valores en porcentaje) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // Guarda el resultado + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Eliminar Áreas Recortadas de la Imagen** + +Si desea eliminar las áreas recortadas de una imagen contenida en un marco, puede usar el método [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) . Este método devuelve la imagen recortada o la imagen original si el recorte no es necesario. + +Este código JavaScript demuestra la operación: +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // Obtiene el PictureFrame de la primera diapositiva + var picFrame = slide.getShapes().get_Item(0); + // Elimina las áreas recortadas de la imagen del PictureFrame y devuelve la imagen recortada + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // Guarda el resultado + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +El método [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) añade la imagen recortada a la colección de imágenes de la presentación. Si la imagen se usa solo en el [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) procesado, esta configuración puede reducir el tamaño de la presentación. De lo contrario, el número de imágenes en la presentación resultante aumentará. + +Este método convierte metarchivos WMF/EMF a imágenes PNG raster en la operación de recorte. + +{{% /alert %}} + +## **Bloquear Relación de Aspecto** + +Si desea que una forma que contiene una imagen mantenga su relación de aspecto incluso después de cambiar las dimensiones de la imagen, puede usar el método [setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-) para establecer la configuración *Bloquear Relación de Aspecto*. + +Este código JavaScript le muestra cómo bloquear la relación de aspecto de una forma: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // establecer la forma para que preserve la relación de aspecto al redimensionar + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +Esta configuración *Bloquear Relación de Aspecto* conserva solo la relación de aspecto de la forma y no de la imagen que contiene. + +{{% /alert %}} + +## **Usar Propiedad StretchOff** + +Utilizando los métodos [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-), [setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--), [setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) y [setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) de la clase [PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat), puede especificar un rectángulo de relleno. + +Cuando se especifica estiramiento para una imagen, un rectángulo fuente se escala para ajustarse al rectángulo de relleno especificado. Cada borde del rectángulo de relleno se define mediante un desplazamiento porcentual desde el borde correspondiente del cuadro delimitador de la forma. Un porcentaje positivo indica una inserción mientras que un porcentaje negativo indica una expansión. + +1. Cree una instancia de la [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio) clase. +2. Obtenga la referencia de una diapositiva mediante su índice. +3. Añada un rectángulo `AutoShape`. +4. Cree una imagen. +5. Establezca el tipo de relleno de la forma. +6. Establezca el modo de relleno de imagen de la forma. +7. Añada una imagen establecida para rellenar la forma. +8. Especifique los desplazamientos de la imagen desde el borde correspondiente del cuadro delimitador de la forma +9. Guarde la presentación modificada como un archivo PPTX. + +Este código JavaScript demuestra un proceso en el que se utiliza la propiedad StretchOff: +```javascript +// Instancia la clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Instancia la clase ImageEx + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Añade un AutoShape configurado como Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Establece el tipo de relleno de la forma + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // Establece el modo de relleno de imagen de la forma + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // Establece la imagen para rellenar la forma + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // Especifica los desplazamientos de la imagen desde el borde correspondiente del cuadro delimitador de la forma + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // Escribe el archivo PPTX en disco + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Cómo puedo averiguar qué formatos de imagen son compatibles con PictureFrame?** + +Aspose.Slides es compatible tanto con imágenes raster (PNG, JPEG, BMP, GIF, etc.) como con imágenes vectoriales (por ejemplo, SVG) a través del objeto de imagen que se asigna a un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/). La lista de formatos compatibles generalmente se superpone con las capacidades del motor de conversión de diapositivas e imágenes. + +**¿Cómo afectará la adición de decenas de imágenes grandes al tamaño y rendimiento del PPTX?** + +Incrustar imágenes grandes incrementa el tamaño del archivo y el uso de memoria; enlazar imágenes ayuda a mantener pequeño el tamaño de la presentación pero requiere que los archivos externos permanezcan accesibles. Aspose.Slides permite agregar imágenes mediante enlace para reducir el tamaño del archivo. + +**¿Cómo puedo bloquear un objeto de imagen para que no se mueva o redimensione accidentalmente?** + +Utilice [bloqueos de forma](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/) para un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) (por ejemplo, desactivar mover o redimensionar). El mecanismo de bloqueo se describe para formas en un [artículo de protección](/slides/es/nodejs-java/applying-protection-to-presentation/) y es compatible con varios tipos de forma, incluidos los [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/). + +**¿Se conserva la fidelidad vectorial del SVG al exportar una presentación a PDF/imágenes?** + +Aspose.Slides permite extraer un SVG de un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) como el vector original. Al [exportar a PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/) o a [formatos raster](/slides/es/nodejs-java/convert-powerpoint-to-png/), el resultado puede rasterizarse según la configuración de exportación; el hecho de que el SVG original se almacene como vector se confirma mediante el comportamiento de extracción. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..134a5c8170 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,180 @@ +--- +title: Marco de video +type: docs +weight: 10 +url: /es/nodejs-java/video-frame/ +keywords: "Agregar video, crear marco de video, extraer video, presentación de PowerPoint, Java, Aspose.Slides para Node.js via Java" +description: "Agregar marco de video a una presentación de PowerPoint en JavaScript" +--- + +Un video bien colocado en una presentación puede hacer que tu mensaje sea más impactante y aumentar los niveles de compromiso con tu audiencia. + +PowerPoint te permite agregar videos a una diapositiva en una presentación de dos maneras: + +* Agregar o incrustar un video local (almacenado en tu equipo) +* Agregar un video en línea (desde una fuente web como YouTube). + +Para permitirte agregar videos (objetos de video) a una presentación, Aspose.Slides proporciona la clase [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/), la clase [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) y otros tipos relevantes. + +## **Crear Marco de Video Incrustado** + +Si el archivo de video que deseas agregar a tu diapositiva está almacenado localmente, puedes crear un marco de video para incrustar el video en tu presentación. + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtén una referencia a la diapositiva mediante su índice. +1. Agrega un objeto [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) y pasa la ruta del archivo de video para incrustar el video en la presentación. +1. Agrega un objeto [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) para crear un marco para el video. +1. Guarda la presentación modificada. + +Este código JavaScript te muestra cómo agregar un video almacenado localmente a una presentación: +```javascript +// Instancia la clase Presentation +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Carga el video + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // Obtiene la primera diapositiva y agrega un videoframe + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // Guarda la presentación en disco + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Alternativamente, puedes agregar un video pasando su ruta de archivo directamente al método [addVideoFrame(float x, float y, float width, float height, IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-) : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Crear Marco de Video con Video de Fuente Web** + +Microsoft [PowerPoint 2013 y versiones posteriores](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us) admite videos de YouTube en las presentaciones. Si el video que deseas usar está disponible en línea (p. ej., en YouTube), puedes agregarlo a tu presentación a través de su enlace web. + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) +1. Obtén una referencia a la diapositiva mediante su índice. +1. Agrega un objeto [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) y pasa el enlace al video. +1. Establece una miniatura para el marco de video. +1. Guarda la presentación. + +Este código JavaScript te muestra cómo agregar un video desde la web a una diapositiva en una presentación de PowerPoint: +```javascript +// Instancia un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **Extraer Video de la Diapositiva** + +Además de agregar videos a las diapositivas, Aspose.Slides te permite extraer videos incrustados en presentaciones. + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) para cargar la presentación que contiene el video. +2. Recorre todos los objetos [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). +3. Recorre todos los objetos [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) para encontrar un [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). +4. Guarda el video en el disco. + +Este código JavaScript te muestra cómo extraer el video de una diapositiva de la presentación: +```javascript +// Instancia un objeto Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // Obtiene la extensión del archivo + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Qué parámetros de reproducción de video se pueden cambiar para un VideoFrame?** + +Puedes controlar el [modo de reproducción](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/) (automático o al hacer clic) y el [bucle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/). Estas opciones están disponibles a través de las propiedades del objeto [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). + +**¿Agregar un video afecta el tamaño del archivo PPTX?** + +Sí. Cuando incrustas un video local, los datos binarios se incluyen en el documento, por lo que el tamaño de la presentación crece en proporción al tamaño del archivo. Cuando agregas un video en línea, se incrustan un enlace y una miniatura, por lo que el aumento de tamaño es menor. + +**¿Puedo reemplazar el video en un VideoFrame existente sin cambiar su posición y tamaño?** + +Sí. Puedes intercambiar el [contenido de video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/) dentro del marco manteniendo la geometría de la forma; este es un escenario común para actualizar medios en un diseño existente. + +**¿Se puede determinar el tipo de contenido (MIME) de un video incrustado?** + +Sí. Un video incrustado tiene un [tipo de contenido](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/) que puedes leer y usar, por ejemplo al guardarlo en el disco. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..e2dd193e3e --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,334 @@ +--- +title: Gestionar OLE en presentaciones usando JavaScript +linktitle: Gestionar OLE +type: docs +weight: 40 +url: /es/nodejs-java/manage-ole/ +keywords: +- objeto OLE +- Enlace y incrustación de objetos +- agregar OLE +- incrustar OLE +- agregar objeto +- incrustar objeto +- agregar archivo +- incrustar archivo +- objeto enlazado +- archivo enlazado +- cambiar OLE +- icono OLE +- título OLE +- extraer OLE +- extraer objeto +- extraer archivo +- PowerPoint +- presentación +- Node.js +- JavaScript +- Aspose.Slides +description: "Optimice la gestión de objetos OLE en PowerPoint y archivos OpenDocument con Aspose.Slides para Node.js. Incruste, actualice y exporte contenido OLE sin problemas." +--- + +{{% alert color="primary" %}} + +OLE (Object Linking & Embedding) es una tecnología de Microsoft que permite que datos y objetos creados en una aplicación se coloquen en otra aplicación mediante enlace o incrustación. + +{{% /alert %}} + +Considere un gráfico creado en MS Excel. El gráfico se coloca dentro de una diapositiva de PowerPoint. Ese gráfico de Excel se considera un objeto OLE. + +- Un objeto OLE puede aparecer como un ícono. En este caso, al hacer doble clic en el ícono, el gráfico se abre en su aplicación asociada (Excel), o se le solicita seleccionar una aplicación para abrir o editar el objeto. +- Un objeto OLE puede mostrar su contenido real, como el contenido de un gráfico. En este caso, el gráfico se activa en PowerPoint, se carga la interfaz del gráfico y puede modificar los datos del gráfico dentro de PowerPoint. + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) permite insertar objetos OLE en diapositivas como marcos de objetos OLE ([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)). + +## **Agregar marcos de objetos OLE a diapositivas** + +Supongamos que ya ha creado un gráfico en Microsoft Excel y desea incrustarlo en una diapositiva como un marco de objeto OLE usando Aspose.Slides for Node.js via Java, puede hacerlo de la siguiente manera: + +1. Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtener la referencia de una diapositiva mediante su índice. +1. Leer el archivo Excel como una matriz de bytes. +1. Agregar el [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) a la diapositiva que contiene la matriz de bytes y otra información sobre el objeto OLE. +1. Escribir la presentación modificada como un archivo PPTX. + +En el ejemplo a continuación, agregamos un gráfico de un archivo Excel a una diapositiva como un marco de objeto OLE usando Aspose.Slides for Node.js via Java. +**Nota** que el constructor [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) recibe una extensión de objeto incrustable como segundo parámetro. Esta extensión permite a PowerPoint interpretar correctamente el tipo de archivo y elegir la aplicación adecuada para abrir este objeto OLE. +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// Prepare data for the OLE object. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// Add the OLE object frame to the slide. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **Agregar marcos de objetos OLE enlazados** + +Aspose.Slides for Node.js via Java permite agregar un [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) sin incrustar datos, solo con un enlace al archivo. + +Este código JavaScript muestra cómo agregar un [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) con un archivo Excel enlazado a una diapositiva: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// Add an OLE object frame with a linked Excel file. +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Acceder a marcos de objetos OLE** + +Si un objeto OLE ya está incrustado en una diapositiva, puede encontrarlo o acceder a él fácilmente de esta manera: + +1. Cargar una presentación con el objeto OLE incrustado creando una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtener la referencia de la diapositiva usando su índice. +3. Acceder a la forma [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame). En nuestro ejemplo, usamos el PPTX creado anteriormente que tiene solo una forma en la primera diapositiva. +4. Una vez accedido al marco del objeto OLE, puede realizar cualquier operación sobre él. + +En el ejemplo a continuación, se accede a un marco de objeto OLE (un objeto de gráfico de Excel incrustado en una diapositiva) y a sus datos de archivo. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Obtener los datos del archivo incrustado. + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + + // Obtener la extensión del archivo incrustado. + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + // ... +} +``` + + +### **Acceder a propiedades del marco de objeto OLE enlazado** + +Aspose.Slides permite acceder a las propiedades del marco de objeto OLE enlazado. + +Este código JavaScript muestra cómo comprobar si un objeto OLE está enlazado y luego obtener la ruta al archivo enlazado: +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Verificar si el objeto OLE está enlazado. + if (oleFrame.isObjectLink()) { + // Imprimir la ruta completa al archivo enlazado. + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // Imprimir la ruta relativa al archivo enlazado si está presente. + // Solo las presentaciones PPT pueden contener la ruta relativa. + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **Cambiar datos del objeto OLE** + +{{% alert color="primary" %}} + +En esta sección, el ejemplo de código a continuación usa [Aspose.Cells for Java](/cells/java/). + +{{% /alert %}} + +Si un objeto OLE ya está incrustado en una diapositiva, puede acceder a ese objeto y modificar sus datos de esta manera: + +1. Cargar una presentación con el objeto OLE incrustado creando una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtener la referencia de la diapositiva mediante su índice. +3. Acceder a la forma del marco de objeto OLE. En nuestro ejemplo, usamos el PPTX creado anteriormente que tiene una forma en la primera diapositiva. +4. Una vez accedido al marco del objeto OLE, puede realizar cualquier operación sobre él. +5. Crear un objeto `Workbook` y acceder a los datos OLE. +6. Acceder a la `Worksheet` deseada y modificar los datos. +7. Guardar el `Workbook` actualizado en un flujo. +8. Cambiar los datos del objeto OLE desde el flujo. + +En el ejemplo a continuación, se accede a un marco de objeto OLE (un objeto de gráfico de Excel incrustado en una diapositiva) y se modifican sus datos de archivo para actualizar los datos del gráfico. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // Leer los datos del objeto OLE como un objeto Workbook. + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // Modificar los datos del Workbook. + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // Cambiar los datos del objeto del marco OLE. + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Incrustar otros tipos de archivo en diapositivas** + +Además de gráficos de Excel, Aspose.Slides for Node.js via Java permite incrustar otros tipos de archivos en diapositivas. Por ejemplo, puede insertar archivos HTML, PDF y ZIP como objetos. Cuando un usuario hace doble clic en el objeto insertado, se abre automáticamente en el programa correspondiente, o se le solicita al usuario seleccionar un programa adecuado para abrirlo. + +Este código JavaScript muestra cómo incrustar HTML y ZIP en una diapositiva: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Establecer tipos de archivo para objetos incrustados** + +Al trabajar con presentaciones, puede necesitar reemplazar objetos OLE antiguos por nuevos o sustituir un objeto OLE no compatible por uno compatible. Aspose.Slides for Node.js via Java permite establecer el tipo de archivo para un objeto incrustado, lo que le permite actualizar los datos del marco OLE o su extensión. + +Este código JavaScript muestra cómo establecer el tipo de archivo para un objeto OLE incrustado a `zip`: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// Cambiar el tipo de archivo a ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Establecer imágenes de ícono y títulos para objetos incrustados** + +Después de incrustar un objeto OLE, se agrega automáticamente una vista previa que consiste en una imagen de ícono. Esta vista previa es lo que los usuarios ven antes de acceder o abrir el objeto OLE. Si desea usar una imagen y texto específicos como elementos de la vista previa, puede establecer la imagen del ícono y el título usando Aspose.Slides for Node.js via Java. + +Este código JavaScript muestra cómo establecer la imagen del ícono y el título para un objeto incrustado: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// Añadir una imagen a los recursos de la presentación. +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// Establecer un título y la imagen para la vista previa del OLE. +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Evitar que un marco de objeto OLE se redimensione y reposicione** + +Después de agregar un objeto OLE enlazado a una diapositiva de presentación, al abrir la presentación en PowerPoint, puede aparecer un mensaje solicitando actualizar los enlaces. Al hacer clic en el botón “Update Links” el tamaño y la posición del marco del objeto OLE pueden cambiar porque PowerPoint actualiza los datos del objeto enlazado y refresca la vista previa del objeto. Para evitar que PowerPoint solicite actualizar los datos del objeto, use el método `setUpdateAutomatic` de la clase [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) con el valor `false`: +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **Extraer archivos incrustados** + +Aspose.Slides for Node.js via Java permite extraer los archivos incrustados en diapositivas como objetos OLE de la siguiente manera: + +1. Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que contenga los objetos OLE que desea extraer. +2. Recorrer todas las formas de la presentación y acceder a las formas [OLEObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe). +3. Acceder a los datos de los archivos incrustados desde los marcos de objetos OLE y escribirlos en disco. + +Este código JavaScript muestra cómo extraer archivos incrustados en una diapositiva como objetos OLE: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **FAQ** + +**¿Se renderizará el contenido OLE al exportar diapositivas a PDF/imágenes?** + +Lo que es visible en la diapositiva se renderiza: el ícono/imagen de sustitución (vista previa). El contenido OLE “en vivo” no se ejecuta durante el renderizado. Si es necesario, establezca su propia imagen de vista previa para garantizar la apariencia esperada en el PDF exportado. + +**¿Cómo puedo bloquear un objeto OLE en una diapositiva para que los usuarios no puedan moverlo/editarlo en PowerPoint?** + +Bloquee la forma: Aspose.Slides proporciona [bloqueos a nivel de forma](/slides/es/nodejs-java/applying-protection-to-presentation/). No es encriptación, pero impide eficazmente ediciones y movimientos accidentales. + +**¿Se conservarán las rutas relativas de los objetos OLE enlazados en el formato PPTX?** + +En PPTX no existe información de “ruta relativa”, solo la ruta completa. Las rutas relativas se encuentran en el formato PPT más antiguo. Para portabilidad, prefiera rutas absolutas confiables/URIs accesibles o la incrustación. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..d6013d1bc9 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,65 @@ +--- +title: Texto animado +type: docs +weight: 60 +url: /es/nodejs-java/animated-text/ +keywords: "Texto animado en PowerPoint" +description: "Texto animado en PowerPoint con Java" +--- + +## **Agregar efectos de animación a los párrafos** + +Añadimos el método [**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) a las clases [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) y [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence). Este método le permite agregar efectos de animación a un solo párrafo. El siguiente código de ejemplo muestra cómo agregar un efecto de animación a un solo párrafo: +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // seleccionar párrafo para agregar efecto + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // agregar efecto de animación Fly al párrafo seleccionado + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Obtener los efectos de animación en los párrafos** + +Es posible que desee averiguar los efectos de animación agregados a un párrafo; por ejemplo, en un caso, quiere obtener los efectos de animación de un párrafo porque planea aplicar esos efectos a otro párrafo o forma. + +Aspose.Slides for Node.js a través de Java le permite obtener todos los efectos de animación aplicados a los párrafos contenidos en un marco de texto (forma). El siguiente código de ejemplo muestra cómo obtener los efectos de animación en un párrafo: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **Preguntas frecuentes** + +**¿En qué se diferencian las animaciones de texto de las transiciones de diapositiva, y pueden combinarse?** + +Las animaciones de texto controlan el comportamiento de los objetos a lo largo del tiempo en una diapositiva, mientras que [transitions](/slides/es/nodejs-java/slide-transition/) controlan cómo cambian las diapositivas. Son independientes y pueden usarse juntas; el orden de reproducción lo determina la línea de tiempo de la animación y la configuración de la transición. + +**¿Se conservan las animaciones de texto al exportar a PDF o imágenes?** + +No. Los PDF y las imágenes rasterizadas son estáticos, por lo que verá un único estado de la diapositiva sin movimiento. Para conservar el movimiento, utilice la exportación a [video](/slides/es/nodejs-java/convert-powerpoint-to-video/) o a [HTML](/slides/es/nodejs-java/export-to-html5/). + +**¿Funcionan las animaciones de texto en los diseños y en la diapositiva maestra?** + +Los efectos aplicados a objetos de diseño/maestra se heredan en las diapositivas, pero su temporización e interacción con las animaciones a nivel de diapositiva dependen de la secuencia final en la diapositiva. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..5925446760 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,138 @@ +--- +title: Extraer texto de la presentación +type: docs +weight: 90 +url: /es/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +No es raro que los desarrolladores necesiten extraer el texto de una presentación. Para hacerlo, debe extraer el texto de todas las formas en todas las diapositivas de una presentación. Este artículo explica cómo extraer texto de presentaciones Microsoft PowerPoint PPTX usando Aspose.Slides. + +{{% /alert %}} + +## **Extraer texto de la diapositiva** + +Aspose.Slides para Node.js a través de Java proporciona la clase [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Esta clase expone una serie de métodos estáticos sobrecargados para extraer todo el texto de una presentación o diapositiva. Para extraer el texto de una diapositiva en una presentación PPTX, utilice el método estático sobrecargado [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) expuesto por la clase [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Este método acepta el objeto Slide como parámetro. +Al ejecutarse, el método Slide escanea todo el texto de la diapositiva pasada como parámetro y devuelve una matriz de objetos [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). Esto significa que cualquier formato de texto asociado está disponible. El siguiente fragmento de código extrae todo el texto de la primera diapositiva de la presentación: +```javascript +// Instanciar la clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // Obtener una matriz de objetos ITextFrame de todas las diapositivas en el PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // Recorrer la matriz de TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Recorrer los párrafos en el ITextFrame actual + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Recorrer las porciones en el IParagraph actual + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Mostrar el texto en la porción actual + console.log(port.getText()); + // Mostrar la altura de la fuente del texto + console.log(port.getPortionFormat().getFontHeight()); + // Mostrar el nombre de la fuente del texto + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); +} finally { + pres.dispose(); +} +``` + + +## **Extraer texto de la presentación** + +Para escanear el texto de toda la presentación, utilice el método estático [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) expuesto por la clase SlideUtil. Toma dos parámetros: + +1. Primero, un objeto [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) que representa la presentación de la que se extrae el texto. +2. Segundo, un valor booleano que determina si la diapositiva maestra debe incluirse al escanear el texto de la presentación. + +El método devuelve una matriz de objetos [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) con información de formato de texto. El siguiente código escanea el texto y la información de formato de una presentación, incluidas las diapositivas maestras: +```javascript +// Instanciar la clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // Obtener una matriz de objetos ITextFrame de todas las diapositivas en el PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // Recorrer la matriz de TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Recorrer los párrafos en el ITextFrame actual + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Recorrer las porciones en el IParagraph actual + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Mostrar el texto en la porción actual + console.log(port.getText()); + // Mostrar la altura de la fuente del texto + console.log(port.getPortionFormat().getFontHeight()); + // Mostrar el nombre de la fuente del texto + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **Extracción de texto categorizada y rápida** + +Se ha añadido el nuevo método estático getPresentationText a la clase Presentation. Hay tres sobrecargas para este método: +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + +The [TextExtractionArrangingMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode) enum argument indicates the mode to organize the output of text result and can be set to the following values: +- [Unarranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) - The raw text with no respect to position on the slide +- [Arranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Arranged) - The text is positioned in the same order as on the slide + +**Unarranged** mode can be used when speed is critical, it's faster than Arranged mode. + +[PresentationText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText) represents the raw text extracted from the presentation. It contains a [getSlidesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText#getSlidesText--) method which returns an array of [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) objects. Every object represent the text on the corresponding slide. [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) object have the following methods: + +- [SlideText.getText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getText--) - The text on the slide's shapes +- [SlideText.getMasterText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getMasterText--) - The text on the master page's shapes for this slide +- [SlideText.getLayoutText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getLayoutText--) - The text on the layout page's shapes for this slide +- [SlideText.getNotesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getNotesText--) - The text on the notes page's shapes for this slide + +There is also a [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class which implements the [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class. + +The new API can be used like this: + +```javascript +var text1 = aspose.slides.PresentationFactory.getInstance().getPresentationText("presentation.pptx", aspose.slides.TextExtractionArrangingMode.Unarranged); +console.log(text1.getSlidesText()[0].getText()); +console.log(text1.getSlidesText()[0].getLayoutText()); +console.log(text1.getSlidesText()[0].getMasterText()); +console.log(text1.getSlidesText()[0].getNotesText()); +``` + + +## **Preguntas frecuentes** + +**¿Qué tan rápido procesa Aspose.Slides presentaciones grandes durante la extracción de texto?** + +Aspose.Slides está optimizado para alto rendimiento y procesa eficientemente incluso presentaciones grandes, lo que lo hace adecuado para escenarios de procesamiento en tiempo real o por lotes. + +**¿Puede Aspose.Slides extraer texto de tablas y gráficos dentro de presentaciones?** + +Sí, Aspose.Slides admite completamente la extracción de texto de tablas, gráficos y otros elementos complejos de diapositivas, lo que le permite acceder y analizar todo el contenido textual fácilmente. + +**¿Necesito una licencia especial de Aspose.Slides para extraer texto de presentaciones?** + +Puede extraer texto usando la versión de prueba gratuita de Aspose.Slides, aunque tendrá ciertas limitaciones, como procesar solo un número limitado de diapositivas. Para un uso sin restricciones y para manejar presentaciones más grandes, se recomienda adquirir una licencia completa. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..3325b1c0b3 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,158 @@ +--- +title: "Administrar configuraciones de Autofit" +type: docs +weight: 30 +url: /es/nodejs-java/manage-autofit-settings/ +keywords: "Cuadro de texto, Autofit, presentación de PowerPoint, Java, Aspose.Slides para Node.js a través de Java" +description: "Establecer la configuración de autofit para cuadro de texto en PowerPoint con JavaScript" +--- + +Por defecto, cuando añades un cuadro de texto, Microsoft PowerPoint utiliza la configuración **Resize shape to fix text** para el cuadro de texto: redimensiona automáticamente el cuadro de texto para garantizar que su contenido siempre encaje. + +![cuadro-de-texto-en-powerpoint](textbox-in-powerpoint.png) + +* Cuando el texto del cuadro de texto se vuelve más largo o más grande, PowerPoint amplía automáticamente el cuadro de texto—incrementa su altura—para permitir que contenga más texto. +* Cuando el texto del cuadro de texto se vuelve más corto o más pequeño, PowerPoint reduce automáticamente el cuadro de texto—disminuye su altura—para eliminar el espacio redundante. + +En PowerPoint, estos son los 4 parámetros u opciones importantes que controlan el comportamiento de autofit para un cuadro de texto: + +* **Do not Autofit** +* **Shrink text on overflow** +* **Resize shape to fit text** +* **Wrap text in shape.** + +![opciones-autofit-powerpoint](autofit-options-powerpoint.png) + +Aspose.Slides for Node.js via Java ofrece opciones similares—algunas propiedades bajo la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)—que permiten controlar el comportamiento de autofit para los cuadros de texto en presentaciones. + +## **Resize Shape to Fit Text** + +Si deseas que el texto de un cuadro siempre encaje en él después de modificarlo, debes usar la opción **Resize shape to fix text**. Para especificar esta configuración, llama al método [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) de la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) con el valor `Shape`. + +![ajuste-automatico-powerpoint](alwaysfit-setting-powerpoint.png) + +Este código JavaScript muestra cómo especificar que un texto siempre debe encajar en su cuadro en una presentación de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Si el texto se vuelve más largo o más grande, el cuadro de texto se redimensionará automáticamente (aumentará su altura) para asegurarse de que todo el texto encaje. Si el texto se vuelve más corto, ocurrirá lo contrario. + +## **Do Not Autofit** + +Si deseas que un cuadro de texto o una forma mantenga sus dimensiones sin importar los cambios realizados en el texto que contiene, debes usar la opción **Do not Autofit**. Para especificar esta configuración, llama al método [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) de la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) con el valor `None`. + +![sin-autofit-powerpoint](donotautofit-setting-powerpoint.png) + +Este código JavaScript muestra cómo especificar que un cuadro de texto debe conservar siempre sus dimensiones en una presentación de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Cuando el texto se vuelve demasiado largo para su cuadro, se desborda. + +## **Shrink Text on Overflow** + +Si un texto se vuelve demasiado largo para su cuadro, mediante la opción **Shrink text on overflow** puedes especificar que el tamaño y el espaciado del texto se reduzcan para que quepa dentro del cuadro. Para especificar esta configuración, llama al método [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) de la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) con el valor `Normal`. + +![encoger-texto-overflow-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +Este código JavaScript muestra cómo especificar que un texto debe encogerse al desbordarse en una presentación de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +Cuando se utiliza la opción **Shrink text on overflow**, la configuración se aplica solo cuando el texto se vuelve demasiado largo para su cuadro. +{{% /alert %}} + +## **Wrap Text** + +Si deseas que el texto de una forma se envuelva dentro de ella cuando el texto supera el borde de la forma (solo el ancho), debes usar el parámetro **Wrap text in shape**. Para especificar esta configuración, debes llamar al método [setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setWrapText) de la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) con el valor `true`. + +Este código JavaScript muestra cómo usar la configuración Wrap Text en una presentación de PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +Si llamas al método `setWrapText` con el valor `False` para una forma, cuando el texto dentro de la forma se vuelve más largo que el ancho de la forma, el texto se extiende más allá de los bordes de la forma en una sola línea. +{{% /alert %}} + +## **FAQ** + +**¿Los márgenes internos del marco de texto afectan a AutoFit?** + +Sí. El padding (márgenes internos) reduce el área utilizable para el texto, por lo que AutoFit se activará antes—encogiendo la fuente o redimensionando la forma más pronto. Verifica y ajusta los márgenes antes de afinar AutoFit. + +**¿Cómo interactúa AutoFit con los saltos de línea manuales y suaves?** + +Los saltos forzados permanecen, y AutoFit adapta el tamaño de fuente y el espaciado alrededor de ellos. Eliminar saltos innecesarios suele reducir la agresividad con la que AutoFit necesita encoger el texto. + +**¿Cambiar la fuente del tema o activar la sustitución de fuentes afecta los resultados de AutoFit?** + +Sí. Sustituir a una fuente con métricas de glifos diferentes cambia el ancho/alto del texto, lo que puede alterar el tamaño final de la fuente y el ajuste de líneas. Después de cualquier cambio o sustitución de fuente, vuelve a comprobar las diapositivas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..736f3a109b --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,321 @@ +--- +title: Gestionar viñetas +type: docs +weight: 60 +url: /es/nodejs-java/manage-bullet/ +keywords: "Viñetas, Listas con viñetas, Números, Listas numeradas, Viñetas con imágenes, Viñetas multinivel, Presentación de PowerPoint, Java, Aspose.Slides para Node.js via Java" +description: "Crear listas con viñetas y numeradas en una presentación de PowerPoint en JavaScript" +--- + +En **Microsoft PowerPoint**, puedes crear listas con viñetas y numeradas de la misma forma que lo haces en Word y otros editores de texto. **Aspose.Slides for Node.js via Java** también permite usar viñetas y números en diapositivas de tus presentaciones. + +## **¿Por qué usar listas con viñetas?** + +Las listas con viñetas te ayudan a organizar y presentar información de forma rápida y eficiente. + +**Ejemplo de lista con viñetas** + +En la mayoría de los casos, una lista con viñetas cumple estas tres funciones principales: + +- llama la atención de tus lectores o espectadores a la información importante +- permite a tus lectores o espectadores escanear los puntos clave fácilmente +- comunica y entrega los detalles importantes de manera eficiente. + +## **¿Por qué usar listas numeradas?** + +Las listas numeradas también ayudan a organizar y presentar información. Idealmente, deberías usar números (en lugar de viñetas) cuando el orden de las entradas (por ejemplo, *paso 1, paso 2*, etc.) es importante o cuando una entrada debe ser referenciada (por ejemplo, *ver paso 3*). + +**Ejemplo de lista numerada** + +Este es un resumen de los pasos (del paso 1 al paso 15) en el procedimiento **Creating Bullets** a continuación: + +1. Crea una instancia de la clase de presentación. +2. Realiza varias tareas (del paso 3 al paso 14). +3. Guarda la presentación. + +## **Creating Bullets** + +Este tema también forma parte de la serie de temas sobre la gestión de párrafos de texto. Esta página ilustrará cómo podemos gestionar viñetas de párrafo. Las viñetas son más útiles cuando algo debe describirse paso a paso. Además, el texto se ve bien organizado con el uso de viñetas. Los párrafos con viñetas son siempre más fáciles de leer y comprender. Veremos cómo los desarrolladores pueden usar esta pequeña pero poderosa característica de Aspose.Slides for Node.js via Java. Sigue los pasos a continuación para gestionar las viñetas de párrafo usando Aspose.Slides for Node.js via Java: + +1. Crea una instancia de la clase [Presentación](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accede a la diapositiva deseada en la colección de diapositivas usando el objeto [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Añade un [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) en la diapositiva seleccionada. +1. Accede al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) de la forma añadida. +1. Elimina el párrafo predeterminado del TextFrame. +1. Crea la primera instancia de párrafo usando la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph). +1. Establece el tipo de viñeta del párrafo. +1. Establece el tipo de viñeta a [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) y define el carácter de la viñeta. +1. Establece el texto del párrafo. +1. Establece la sangría del párrafo para definir la viñeta. +1. Establece el color de la viñeta. +1. Establece la altura de las viñetas. +1. Añade el párrafo creado a la colección de párrafos del TextFrame. +1. Añade el segundo párrafo y repite el proceso indicado en los pasos **7 a 13**. +1. Guarda la presentación. + +Este fragmento de código en Java—una implementación de los pasos anteriores—muestra cómo crear una lista con viñetas en una diapositiva: +```javascript + // Instanciar una clase Presentation que representa un archivo PPTX + var pres = new aspose.slides.Presentation(); + try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Agregando y accediendo a Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accediendo al marco de texto del autoshape creado + var txtFrm = aShp.getTextFrame(); + // Eliminando el párrafo predeterminado existente + txtFrm.getParagraphs().removeAt(0); + // Creando un párrafo + var para = new aspose.slides.Paragraph(); + // Estableciendo el estilo de viñeta y el símbolo del párrafo + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Estableciendo el texto del párrafo + para.setText("Welcome to Aspose.Slides"); + // Estableciendo la sangría de la viñeta + para.getParagraphFormat().setIndent(25); + // Estableciendo el color de la viñeta + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // establecer IsBulletHardColor a true para usar un color de viñeta propio + para.getParagraphFormat().getBullet().isBulletHardColor(); + // Estableciendo la altura de la viñeta + para.getParagraphFormat().getBullet().setHeight(100); + // Añadiendo el párrafo al marco de texto + txtFrm.getParagraphs().add(para); + // guardando la presentación como archivo PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + pres.dispose(); + } +``` + + +## **Creating Picture Bullets** + +Aspose.Slides for Node.js via Java te permite cambiar las viñetas de las listas con viñetas. Puedes sustituir las viñetas por símbolos personalizados o imágenes. Si deseas agregar interés visual a una lista o llamar aún más la atención a las entradas, puedes usar tu propia imagen como viñeta. + +{{% alert color="primary" %}} + +Idealmente, si planeas reemplazar el símbolo de viñeta estándar por una imagen, deberías seleccionar una imagen gráfica simple con fondo transparente. Ese tipo de imágenes funciona mejor como símbolos de viñeta personalizados. + +En cualquier caso, la imagen que elijas será reducida a un tamaño muy pequeño, por lo que recomendamos encarecidamente seleccionar una imagen que se vea bien (como reemplazo del símbolo de viñeta) en una lista. + +{{% /alert %}} + +Para crear una viñeta con imagen, sigue estos pasos: + +1. Crea una instancia de la clase [Presentación](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) +1. Accede a la diapositiva deseada en la colección de diapositivas usando el objeto [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) +1. Añade un autoshape en la diapositiva seleccionada +1. Accede al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) de la forma añadida +1. Elimina el párrafo predeterminado en el [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +1. Crea la primera instancia de párrafo usando la clase Paragraph +1. Carga la imagen desde disco en [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage) +1. Establece el tipo de viñeta a Picture y asigna la imagen +1. Establece el texto del párrafo +1. Establece la sangría del párrafo para definir la viñeta +1. Establece el color de la viñeta +1. Establece la altura de las viñetas +1. Añade el párrafo creado a la colección de párrafos del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +1. Añade el segundo párrafo y repite el proceso indicado en los pasos anteriores +1. Guarda la presentación + +Este código JavaScript muestra cómo crear una viñeta con imagen en una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Instanciar la imagen para viñetas + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Añadiendo y accediendo al Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accediendo al marco de texto del autoshape creado + var txtFrm = aShp.getTextFrame(); + // Eliminando el párrafo predeterminado existente + txtFrm.getParagraphs().removeAt(0); + // Creando un nuevo párrafo + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // Estableciendo el estilo de viñeta del párrafo y la imagen + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Estableciendo la altura de la viñeta + para.getParagraphFormat().getBullet().setHeight(100); + // Añadiendo el párrafo al marco de texto + txtFrm.getParagraphs().add(para); + // Guardando la presentación como archivo PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Creating Multilevel Bullets** + +Para crear una lista con viñetas que contenga elementos en diferentes niveles—listas adicionales bajo la lista principal—sigue estos pasos: + +1. Crea una instancia de la clase [Presentación](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accede a la diapositiva deseada en la colección de diapositivas usando el objeto [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Añade un autoshape en la diapositiva seleccionada. +1. Accede al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) de la forma añadida. +1. Elimina el párrafo predeterminado en el [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Crea la primera instancia de párrafo usando la clase Paragraph y establece la profundidad en 0. +1. Crea la segunda instancia de párrafo usando la clase Paragraph y establece la profundidad en 1. +1. Crea la tercera instancia de párrafo usando la clase Paragraph y establece la profundidad en 2. +1. Crea la cuarta instancia de párrafo usando la clase Paragraph y establece la profundidad en 3. +1. Añade los párrafos creados a la colección de párrafos del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Guarda la presentación. + +Este código, que implementa los pasos anteriores, muestra cómo crear una lista de viñetas multinivel en JavaScript: +```javascript +// Instanciar una clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadiendo y accediendo al Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accediendo al marco de texto del autoshape creado + var txtFrm = aShp.addTextFrame(""); + // Eliminando el párrafo predeterminado existente + txtFrm.getParagraphs().clear(); + // Creando el primer párrafo + var para1 = new aspose.slides.Paragraph(); + // Estableciendo el estilo de viñeta del párrafo y el símbolo + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Estableciendo el nivel de viñeta + para1.getParagraphFormat().setDepth(0); + // Creando el segundo párrafo + var para2 = new aspose.slides.Paragraph(); + // Estableciendo el estilo de viñeta del párrafo y el símbolo + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Estableciendo el nivel de viñeta + para2.getParagraphFormat().setDepth(1); + // Creando el tercer párrafo + var para3 = new aspose.slides.Paragraph(); + // Estableciendo el estilo de viñeta del párrafo y el símbolo + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Estableciendo el nivel de viñeta + para3.getParagraphFormat().setDepth(2); + // Creando el cuarto párrafo + var para4 = new aspose.slides.Paragraph(); + // Estableciendo el estilo de viñeta del párrafo y el símbolo + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Estableciendo el nivel de viñeta + para4.getParagraphFormat().setDepth(3); + // Añadiendo el párrafo al marco de texto + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // guardando la presentación como archivo PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Create Custom Numbered List** + +Aspose.Slides for Node.js via Java proporciona una API sencilla para gestionar párrafos con formato de numeración personalizado. Para añadir una lista numerada personalizada en un párrafo, sigue los pasos a continuación: + +1. Crea una instancia de la clase [Presentación](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accede a la diapositiva deseada en la colección de diapositivas usando el objeto [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Añade un autoshape en la diapositiva seleccionada. +1. Accede al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) de la forma añadida. +1. Elimina el párrafo predeterminado en el [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Crea la primera instancia de párrafo usando la clase Paragraph y establece **NumberedBulletStartWith** en 2 +1. Crea la segunda instancia de párrafo usando la clase Paragraph y establece **NumberedBulletStartWith** en 3 +1. Crea la tercera instancia de párrafo usando la clase Paragraph y establece **NumberedBulletStartWith** en 7 +1. Añade los párrafos creados a la colección de párrafos del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Guarda la presentación. + +Este código JavaScript muestra cómo crear una lista numerada en una diapositiva: +```javascript +// Instanciar una clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadiendo y accediendo al Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accediendo al marco de texto del autoshape creado + var txtFrm = aShp.addTextFrame(""); + // Eliminando el párrafo predeterminado existente + txtFrm.getParagraphs().clear(); + // Primera lista + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // Segunda lista + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Se pueden exportar las listas con viñetas y numeradas creadas con Aspose.Slides a otros formatos como PDF o imágenes?** + +Sí, Aspose.Slides conserva totalmente el formato y la estructura de las listas con viñetas y numeradas al exportar presentaciones a formatos como PDF, imágenes y otros, garantizando resultados consistentes. + +**¿Es posible importar listas con viñetas o numeradas desde presentaciones existentes?** + +Sí, Aspose.Slides permite importar y editar listas con viñetas o numeradas de presentaciones existentes mientras conserva su formato y apariencia originales. + +**¿Aspose.Slides admite listas con viñetas y numeradas en presentaciones creadas en varios idiomas?** + +Sí, Aspose.Slides admite plenamente presentaciones multilingües, permitiendo crear listas con viñetas y numeradas en cualquier idioma, incluido el uso de caracteres especiales o no latinos. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..152122efb0 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,700 @@ +--- +title: Administrar párrafo de PowerPoint en JavaScript +type: docs +weight: 40 +url: /es/nodejs-java/manage-paragraph/ +keywords: +- agregar texto +- agregar párrafos +- administrar texto +- administrar párrafos +- sangría de párrafo +- viñeta de párrafo +- lista numerada +- propiedades del párrafo +- importar HTML +- texto a HTML +- párrafo a HTML +- párrafos a imágenes +- exportar párrafos +- presentación de PowerPoint +- JavaScript +- Aspose.Slides para Node.js vía Java +description: "Crear párrafos y administrar las propiedades de los párrafos en presentaciones de PowerPoint en JavaScript" +--- + +Aspose.Slides proporciona todas las clases que necesita para trabajar con textos, párrafos y porciones de PowerPoint en Java. + +* Aspose.Slides proporciona la clase [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) que le permite agregar objetos que representan un párrafo. Un objeto `ITextFame` puede tener uno o varios párrafos (cada párrafo se crea mediante un retorno de carro). +* Aspose.Slides proporciona la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) que le permite agregar objetos que representan porciones. Un objeto `IParagraph` puede tener una o varias porciones (colección de objetos iPortions). +* Aspose.Slides proporciona la clase [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) que le permite agregar objetos que representan textos y sus propiedades de formato. + +Un objeto `IParagraph` es capaz de manejar textos con diferentes propiedades de formato mediante sus objetos subyacentes `IPortion`. + +## **Agregar Múltiples Párrafos que Contienen Múltiples Porciones** + +Estos pasos le muestran cómo agregar un marco de texto que contiene 3 párrafos y cada párrafo contiene 3 porciones: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Acceda a la referencia de la diapositiva pertinente mediante su índice. +3. Agregue un [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) rectangular a la diapositiva. +4. Obtenga el ITextFrame asociado con el [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/). +5. Cree dos objetos [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) y añádalos a la colección `IParagraphs` del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +6. Cree tres objetos [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) para cada nuevo `IParagraph` (dos objetos Portion para el Párrafo predeterminado) y añada cada objeto `IPortion` a la colección IPortion de cada `IParagraph`. +7. Establezca algún texto para cada porción. +8. Aplique sus características de formato preferidas a cada porción usando las propiedades de formato expuestas por el objeto `IPortion`. +9. Guarde la presentación modificada. + +```javascript +// Instanciar una clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Agregar un AutoShape de tipo Rectángulo + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // Acceder al TextFrame del AutoShape + var tf = ashp.getTextFrame(); + // Crear Párrafos y Porciones con diferentes formatos de texto + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // Guardar PPTX en disco + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Administrar Viñetas de Párrafo** + +Las listas con viñetas le ayudan a organizar y presentar la información de manera rápida y eficiente. Los párrafos con viñetas siempre son más fáciles de leer y comprender. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Acceda a la referencia de la diapositiva pertinente mediante su índice. +3. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) a la diapositiva seleccionada. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) del autoshape. +5. Elimine el párrafo predeterminado en el `TextFrame`. +6. Cree la primera instancia de párrafo usando la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Establezca el `Type` de la viñeta para el párrafo en `Symbol` y defina el carácter de la viñeta. +8. Establezca el `Text` del párrafo. +9. Establezca la `Indent` del párrafo para la viña. +10. Defina un color para la viñeta. +11. Defina una altura para la viñeta. +12. Agregue el nuevo párrafo a la colección de párrafos del `TextFrame`. +13. Agregue el segundo párrafo y repita el proceso descrito en los pasos 7 a 13. +14. Guarde la presentación. + +```javascript + // Instancia una clase Presentation que representa un archivo PPTX + var pres = new aspose.slides.Presentation(); + try { + // Accede a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Agrega y accede a Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accede al marco de texto del autoshape + var txtFrm = aShp.getTextFrame(); + // Elimina el párrafo predeterminado + txtFrm.getParagraphs().removeAt(0); + // Crea un párrafo + var para = new aspose.slides.Paragraph(); + // Establece el estilo y el símbolo de viñeta del párrafo + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Establece el texto del párrafo + para.setText("Welcome to Aspose.Slides"); + // Establece la sangría de la viñeta + para.getParagraphFormat().setIndent(25); + // Establece el color de la viñeta + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True); // establecer IsBulletHardColor a true para usar color de viñeta propio + // Establece la altura de la viñeta + para.getParagraphFormat().getBullet().setHeight(100); + // Agrega el párrafo al marco de texto + txtFrm.getParagraphs().add(para); + // Crea el segundo párrafo + var para2 = new aspose.slides.Paragraph(); + // Establece el tipo y estilo de viñeta del párrafo + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // Agrega el texto al párrafo + para2.setText("This is numbered bullet"); + // Establece la sangría de la viñeta + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True); // establecer IsBulletHardColor a true para usar color de viñeta propio + // Establece la altura de la viñeta + para2.getParagraphFormat().getBullet().setHeight(100); + // Agrega el párrafo al marco de texto + txtFrm.getParagraphs().add(para2); + // Guarda la presentación modificada + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **Administrar Viñetas de Imagen** + +Las listas con viñetas le ayudan a organizar y presentar la información de manera rápida y eficiente. Los párrafos con imágenes son fáciles de leer y comprender. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Acceda a la referencia de la diapositiva pertinente mediante su índice. +3. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) a la diapositiva. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) del autoshape. +5. Elimine el párrafo predeterminado en el `TextFrame`. +6. Cree la primera instancia de párrafo usando la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Cargue la imagen en [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/). +8. Establezca el tipo de viñeta a [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) y configure la imagen. +9. Establezca el `Text` del párrafo. +10. Establezca la `Indent` del párrafo para la viña. +11. Defina un color para la viñeta. +12. Defina una altura para la viñeta. +13. Agregue el nuevo párrafo a la colección de párrafos del `TextFrame`. +14. Agregue el segundo párrafo y repita el proceso basado en los pasos anteriores. +15. Guarde la presentación modificada. + +```javascript +// Instancia una clase Presentation que representa un archivo PPTX +var presentation = new aspose.slides.Presentation(); +try { + // Accede a la primera diapositiva + var slide = presentation.getSlides().get_Item(0); + // Instancia la imagen para viñetas + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Agrega y accede a Autoshape + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accede al marco de texto del autoshape + var textFrame = autoShape.getTextFrame(); + // Elimina el párrafo predeterminado + textFrame.getParagraphs().removeAt(0); + // Crea un nuevo párrafo + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // Establece el estilo de viñeta del párrafo y la imagen + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Establece la altura de la viñeta + paragraph.getParagraphFormat().getBullet().setHeight(100); + // Agrega el párrafo al marco de texto + textFrame.getParagraphs().add(paragraph); + // Escribe la presentación como archivo PPTX + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // Escribe la presentación como archivo PPT + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Administrar Viñetas Multinivel** + +Las listas con viñetas le ayudan a organizar y presentar la información de manera rápida y eficiente. Las viñetas multinivel son fáciles de leer y comprender. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Acceda a la referencia de la diapositiva pertinente mediante su índice. +3. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) en la nueva diapositiva. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) del autoshape. +5. Elimine el párrafo predeterminado en el `TextFrame`. +6. Cree la primera instancia de párrafo a través de la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) y establezca la profundidad en 0. +7. Cree la segunda instancia de párrafo a través de la clase `Paragraph` y establezca la profundidad en 1. +8. Cree la tercera instancia de párrafo a través de la clase `Paragraph` y establezca la profundidad en 2. +9. Cree la cuarta instancia de párrafo a través de la clase `Paragraph` y establezca la profundidad en 3. +10. Agregue los nuevos párrafos a la colección de párrafos del `TextFrame`. +11. Guarde la presentación modificada. + +```javascript +// Instancia una clase Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accede a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Agrega y accede a Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accede al marco de texto del autoshape creado + var text = aShp.addTextFrame(""); + // Borra el párrafo predeterminado + text.getParagraphs().clear(); + // Agrega el primer párrafo + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Establece el nivel de viñeta + para1.getParagraphFormat().setDepth(0); + // Agrega el segundo párrafo + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Establece el nivel de viñeta + para2.getParagraphFormat().setDepth(1); + // Agrega el tercer párrafo + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Establece el nivel de viñeta + para3.getParagraphFormat().setDepth(2); + // Agrega el cuarto párrafo + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Establece el nivel de viñeta + para4.getParagraphFormat().setDepth(3); + // Agrega los párrafos a la colección + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // Escribe la presentación como archivo PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Administrar Párrafo con Lista Numerada Personalizada** + +La clase [BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) proporciona la propiedad [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) y otras que le permiten gestionar párrafos con numeración o formato personalizados. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Acceda a la diapositiva que contiene el párrafo. +3. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) a la diapositiva. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) del autoshape. +5. Elimine el párrafo predeterminado en el `TextFrame`. +6. Cree la primera instancia de párrafo a través de la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) y establezca [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) en 2. +7. Cree la segunda instancia de párrafo a través de la clase `Paragraph` y establezca `NumberedBulletStartWith` en 3. +8. Cree la tercera instancia de párrafo a través de la clase `Paragraph` y establezca `NumberedBulletStartWith` en 7. +9. Agregue los nuevos párrafos a la colección de párrafos del `TextFrame`. +10. Guarde la presentación modificada. + +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accede al marco de texto del autoshape creado + var textFrame = shape.getTextFrame(); + // Elimina el párrafo predeterminado existente + textFrame.getParagraphs().removeAt(0); + // Primera lista + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Establecer Sangría de Párrafo** + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Acceda a la referencia de la diapositiva pertinente mediante su índice. +1. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) rectangular a la diapositiva. +1. Agregue un [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) con tres párrafos al autoshape rectangular. +1. Oculte las líneas del rectángulo. +1. Establezca la sangría para cada [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) a través de su propiedad BulletOffset. +1. Escriba la presentación modificada como un archivo PPT. + +```javascript +// Instanciar la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtener la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Agregar una forma Rectángulo + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // Agregar un TextFrame al rectángulo + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // Ajustar el texto para que quepa en la forma + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Ocultar las líneas del rectángulo + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // Obtener el primer párrafo del TextFrame y establecer su sangría + var para1 = tf.getParagraphs().get_Item(0); + // Establecer estilo de viñeta del párrafo y símbolo + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // Obtener el segundo párrafo del TextFrame y establecer su sangría + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // Obtener el tercer párrafo del TextFrame y establecer su sangría + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // Guardar la presentación en disco + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Sangría Suspensa para Párrafo** + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Administrar Propiedades de Ejecución de Fin de Párrafo** + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Obtenga la referencia de la diapositiva que contiene el párrafo mediante su posición. +1. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) rectangular a la diapositiva. +1. Agregue un [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) con dos párrafos al rectángulo. +1. Establezca el `FontHeight` y el tipo de fuente para los párrafos. +1. Establezca las propiedades de fin para los párrafos. +1. Escriba la presentación modificada como un archivo PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Importar Texto HTML en Párrafos** + +Aspose.Slides proporciona soporte mejorado para importar texto HTML en párrafos. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Acceda a la referencia de la diapositiva pertinente mediante su índice. +3. Agregue un [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) a la diapositiva. +4. Añada y acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) del autoshape. +5. Elimine el párrafo predeterminado en el `ITextFrame`. +6. Lea el archivo HTML fuente en un TextReader. +7. Cree la primera instancia de párrafo a través de la clase [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +8. Añada el contenido del archivo HTML leído en el TextReader a la [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/) del TextFrame. +9. Guarde la presentación modificada. + +```javascript +// Crear una instancia vacía de presentación +var pres = new aspose.slides.Presentation(); +try { + // Acceder a la primera diapositiva predeterminada de la presentación + var slide = pres.getSlides().get_Item(0); + // Agregar el AutoShape para acomodar el contenido HTML + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Agregar un marco de texto a la forma + ashape.addTextFrame(""); + // Borrar todos los párrafos en el marco de texto añadido + ashape.getTextFrame().getParagraphs().clear(); + // Cargar el archivo HTML usando StreamReader + var tr = java.newInstanceSync("StreamReader", "file.html"); + // Agregar texto del lector de flujo HTML al marco de texto + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // Guardar la presentación + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exportar Texto de Párrafos a HTML** + +Aspose.Slides proporciona soporte mejorado para exportar textos (contenidos en párrafos) a HTML. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) y cargue la presentación deseada. +2. Acceda a la referencia de la diapositiva pertinente mediante su índice. +3. Acceda a la forma que contiene el texto que se exportará a HTML. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de la forma. +5. Cree una instancia de `StreamWriter` y añada el nuevo archivo HTML. +6. Proporcione un índice inicial a StreamWriter y exporte los párrafos que desee. + +```javascript +// Cargar el archivo de presentación +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // Acceder a la primera diapositiva predeterminada de la presentación + var slide = pres.getSlides().get_Item(0); + // Índice deseado + var index = 0; + // Accediendo a la forma añadida + var ashape = slide.getShapes().get_Item(index); + // Creando archivo HTML de salida + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // Extrayendo el primer párrafo como HTML + // Escribiendo datos de los párrafos a HTML proporcionando el índice inicial del párrafo y el total de párrafos a copiar + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Guardar un Párrafo como Imagen** + +En esta sección, exploraremos dos ejemplos que demuestran cómo guardar un párrafo de texto, representado por la interfaz [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/), como una imagen. Ambos ejemplos incluyen la obtención de la imagen de una forma que contiene el párrafo mediante los métodos `getImage` de la interfaz [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/), el cálculo de los límites del párrafo dentro de la forma y la exportación como una imagen bitmap. Estos enfoques le permiten extraer partes específicas del texto de presentaciones PowerPoint y guardarlas como imágenes independientes, lo que puede ser útil en diversos escenarios. + +Supongamos que tenemos un archivo de presentación llamado **sample.pptx** con una diapositiva, donde la primera forma es un cuadro de texto que contiene tres párrafos. + +![El cuadro de texto con tres párrafos](paragraph_to_image_input.png) + +**Ejemplo 1** + +En este ejemplo, obtenemos el segundo párrafo como una imagen. Para ello, extraemos la imagen de la forma de la primera diapositiva de la presentación y luego calculamos los límites del segundo párrafo en el marco de texto de la forma. El párrafo se vuelve a dibujar sobre una nueva imagen bitmap, que se guarda en formato PNG. Este método es especialmente útil cuando necesita guardar un párrafo específico como una imagen separada manteniendo sus dimensiones y formato exactos. +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Guardar la forma en memoria como un mapa de bits. + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // Crear un mapa de bits de la forma desde la memoria. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Calcular los límites del segundo párrafo. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // Calcular las coordenadas y el tamaño de la imagen de salida (tamaño mínimo - 1x1 píxel). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Recortar el mapa de bits de la forma para obtener solo el mapa de bits del párrafo. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +El resultado: + +![La imagen del párrafo](paragraph_to_image_output.png) + +**Ejemplo 2** + +En este ejemplo, ampliamos el enfoque anterior añadiendo factores de escala a la imagen del párrafo. La forma se extrae de la presentación y se guarda como una imagen con un factor de escala de `2`. Esto permite obtener una salida de mayor resolución al exportar el párrafo. Los límites del párrafo se calculan considerando la escala. La escala puede ser particularmente útil cuando se necesita una imagen más detallada, por ejemplo, para materiales impresos de alta calidad. +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Guardar la forma en memoria como un mapa de bits con escalado. + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // Crear un mapa de bits de la forma desde la memoria. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Calcular los límites del segundo párrafo. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // Calcular las coordenadas y el tamaño de la imagen de salida (tamaño mínimo - 1x1 píxel). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Recortar el mapa de bits de la forma para obtener solo el mapa de bits del párrafo. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**¿Puedo desactivar completamente el ajuste de línea dentro de un marco de texto?** + +Sí. Use la configuración de ajuste del marco de texto ([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/)) para desactivar el ajuste y que las líneas no se rompan en los bordes del marco. + +**¿Cómo puedo obtener los límites exactos en la diapositiva de un párrafo específico?** + +Puede obtener el rectángulo delimitador del párrafo (e incluso de una sola porción) para conocer su posición y tamaño precisos en la diapositiva. + +**¿Dónde se controla la alineación del párrafo (izquierda/derecha/centro/justificar)?** + +[setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/) es un método de configuración a nivel de párrafo en [ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/); se aplica a todo el párrafo sin importar el formato de cada porción individual. + +**¿Puedo establecer un idioma de corrección ortográfica solo para una parte del párrafo (p. ej., una palabra)?** + +Sí. El idioma se establece a nivel de porción ([PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)), por lo que pueden coexistir varios idiomas dentro de un mismo párrafo. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..f7fccb16b1 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,116 @@ +--- +title: Gestionar marcador de posición +type: docs +weight: 10 +url: /es/nodejs-java/manage-placeholder/ +description: Cambiar texto en un marcador de posición en diapositivas PowerPoint usando JavaScript. Establecer texto de sugerencia en un marcador de posición en diapositivas PowerPoint usando JavaScript. +--- + +## **Cambiar texto en marcador de posición** + +Usando [Aspose.Slides for Node.js via Java](/slides/es/nodejs-java/), puedes encontrar y modificar marcadores de posición en diapositivas de presentaciones. Aspose.Slides te permite realizar cambios en el texto de un marcador de posición. + +**Requisito previo**: Necesitas una presentación que contenga un marcador de posición. Puedes crear dicha presentación en la aplicación estándar Microsoft PowerPoint. + +Así es como utilizas Aspose.Slides para reemplazar el texto del marcador de posición en esa presentación: + +1. Instancia la clase [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) y pasa la presentación como argumento. +2. Obtén una referencia a la diapositiva mediante su índice. +3. Recorre las formas para encontrar el marcador de posición. +4. Convierte la forma del marcador de posición a un [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) y cambia el texto usando el [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) asociado al [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Guarda la presentación modificada. + +Este código JavaScript muestra cómo cambiar el texto en un marcador de posición: +```javascript +// Instancia una clase Presentation +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // Accede a la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Recorre las formas para encontrar el marcador de posición + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // Cambia el texto en cada marcador de posición + shp.getTextFrame().setText("This is Placeholder"); + } + } + // Guarda la presentación en disco + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer texto de sugerencia en el marcador de posición** + +Los diseños estándar y predefinidos contienen textos de sugerencia de marcadores de posición como ***Haga clic para agregar un título*** o ***Haga clic para agregar un subtítulo***. Con Aspose.Slides, puedes insertar tus textos de sugerencia preferidos en los diseños de marcadores de posición. + +Este código JavaScript muestra cómo establecer el texto de sugerencia en un marcador de posición: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // Recorre la diapositiva + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // PowerPoint muestra "Haz clic para agregar título" + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // Agrega subtítulo + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer la transparencia de la imagen del marcador de posición** + +Aspose.Slides te permite establecer la transparencia de la imagen de fondo en un marcador de posición de texto. Al ajustar la transparencia de la imagen en ese marco, puedes hacer que el texto o la imagen resalten (según los colores del texto y de la imagen). + +Este código JavaScript muestra cómo establecer la transparencia para el fondo de una imagen (dentro de una forma): +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Preguntas frecuentes** + +**¿Qué es un marcador de posición base y en qué se diferencia de una forma local en una diapositiva?** + +Un marcador de posición base es la forma original en un diseño o maestro del cual la forma de la diapositiva hereda—el tipo, la posición y parte del formato provienen de él. Una forma local es independiente; si no hay un marcador de posición base, la herencia no se aplica. + +**¿Cómo puedo actualizar todos los títulos o leyendas en una presentación sin iterar por cada diapositiva?** + +Edita el marcador de posición correspondiente en el diseño o en el maestro. Las diapositivas basadas en esos diseños/ese maestro heredarán automáticamente el cambio. + +**¿Cómo controlo los marcadores de posición estándar de encabezado/pie de página (fecha y hora, número de diapositiva y texto del pie)?** + +Utiliza los administradores HeaderFooter en el alcance apropiado (diapositivas normales, diseños, maestro, notas/folletos) para activar o desactivar esos marcadores de posición y establecer su contenido. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..0fe8a6ca27 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,298 @@ +--- +title: Administrar cuadro de texto +type: docs +weight: 20 +url: /es/nodejs-java/manage-textbox/ +keywords: +- cuadro de texto +- marco de texto +- agregar texto +- actualizar texto +- cuadro de texto con hipervínculo +- PowerPoint +- presentación +- Node.js +- JavaScript +- Aspose.Slides para Node.js mediante Java +description: "Administre un cuadro de texto o un marco de texto en presentaciones de PowerPoint usando JavaScript" +--- + +Los textos en las diapositivas normalmente existen en cuadros de texto o formas. Por lo tanto, para agregar texto a una diapositiva, debes agregar un cuadro de texto y luego colocar algo de texto dentro del cuadro de texto. Aspose.Slides for Node.js via Java proporciona la clase [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) que permite agregar una forma que contiene texto. + +{{% alert title="Info" color="info" %}} + +Aspose.Slides también proporciona la clase [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape) que permite agregar formas a las diapositivas. Sin embargo, no todas las formas añadidas mediante la clase `Shape` pueden contener texto. Pero las formas añadidas mediante la clase [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) pueden contener texto. + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +Por lo tanto, cuando trabajes con una forma a la que deseas agregar texto, puedes querer comprobar y confirmar que fue convertida mediante la clase `AutoShape`. Sólo entonces podrás trabajar con [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), que es una propiedad de `AutoShape`. Consulta la sección [Update Text](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text) en esta página. + +{{% /alert %}} + +## **Crear cuadro de texto en la diapositiva** + +Para crear un cuadro de texto en una diapositiva, sigue estos pasos: + +1. Crea una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtén una referencia a la primera diapositiva en la presentación recién creada. +3. Añade un objeto [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) con [ShapeType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GeometryShape#setShapeType-int-) configurado como `Rectangle` en una posición especificada de la diapositiva y obtén la referencia al objeto `AutoShape` recién añadido. +4. Agrega una propiedad `TextFrame` al objeto `AutoShape` que contendrá texto. En el ejemplo inferior, añadimos este texto: *Aspose TextBox* +5. Finalmente, escribe el archivo PPTX mediante el objeto `Presentation`. + +Este código JavaScript—una implementación de los pasos anteriores—te muestra cómo agregar texto a una diapositiva: +```javascript + // Instancia la presentación + var pres = new aspose.slides.Presentation(); + try { + // Obtiene la primera diapositiva de la presentación + var sld = pres.getSlides().get_Item(0); + // Añade un AutoShape con el tipo configurado como Rectángulo + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Añade un TextFrame al rectángulo + ashp.addTextFrame(" "); + // Accede al marco de texto + var txtFrame = ashp.getTextFrame(); + // Crea el objeto Paragraph para el marco de texto + var para = txtFrame.getParagraphs().get_Item(0); + // Crea un objeto Portion para el párrafo + var portion = para.getPortions().get_Item(0); + // Establece el texto + portion.setText("Aspose TextBox"); + // Guarda la presentación en disco + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **Comprobar forma de cuadro de texto** + +Aspose.Slides proporciona el método [isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox) de la clase [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) que permite examinar formas e identificar cuadros de texto. + +![Text box and shape](istextbox.png) + +Este código JavaScript te muestra cómo verificar si una forma se creó como un cuadro de texto: +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +Ten en cuenta que si simplemente añades una autoshape usando el método `addAutoShape` de la clase [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/), el método `isTextBox` de la autoshape devolverá `false`. Sin embargo, después de agregar texto a la autoshape mediante el método `addTextFrame` o el método `setText`, la propiedad `isTextBox` devolverá `true`. +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() devuelve false +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() devuelve true + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() devuelve false +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() devuelve true + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() devuelve false +shape3.addTextFrame(""); +// shape3.isTextBox() devuelve false + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() devuelve false +shape4.getTextFrame().setText(""); +// shape4.isTextBox() devuelve false +``` + + +## **Agregar columna en cuadro de texto** + +Aspose.Slides proporciona los métodos [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) y [setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-) de la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) que permiten agregar columnas a los cuadros de texto. Puedes especificar el número de columnas en un cuadro de texto y establecer la separación en puntos entre columnas. + +Este código en JavaScript demuestra la operación descrita: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva de la presentación + var slide = pres.getSlides().get_Item(0); + // Añade un AutoShape con el tipo configurado como Rectángulo + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Añade un TextFrame al rectángulo + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // Obtiene el formato de texto del TextFrame + var format = aShape.getTextFrame().getTextFrameFormat(); + // Especifica el número de columnas en el TextFrame + format.setColumnCount(3); + // Especifica el espaciado entre columnas + format.setColumnSpacing(10); + // Guarda la presentación + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar columna en marco de texto** + +Aspose.Slides for Node.js via Java proporciona el método [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) de la clase [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) que permite agregar columnas en marcos de texto. Mediante esta propiedad, puedes especificar el número de columnas que deseas en un marco de texto. + +Este código JavaScript te muestra cómo agregar una columna dentro de un marco de texto: +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Actualizar texto** + +Aspose.Slides permite cambiar o actualizar el texto contenido en un cuadro de texto o todos los textos contenidos en una presentación. + +Este código JavaScript demuestra una operación en la que se actualizan o cambian todos los textos de una presentación: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // Verifica si la forma soporta marco de texto (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // Itera a través de los párrafos en el marco de texto + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // Itera a través de cada porción en el párrafo + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// Cambia el texto + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Cambia el formato + } + } + } + } + } + // Guarda la presentación modificada + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar cuadro de texto con hipervínculo** + +Puedes insertar un enlace dentro de un cuadro de texto. Cuando se hace clic en el cuadro de texto, los usuarios son dirigidos a abrir el enlace. + +Para agregar un cuadro de texto que contenga un enlace, sigue estos pasos: + +1. Crea una instancia de la clase `Presentation`. +2. Obtén una referencia a la primera diapositiva en la presentación recién creada. +3. Añade un objeto `AutoShape` con `ShapeType` configurado como `Rectangle` en una posición especificada de la diapositiva y obtén la referencia al objeto `AutoShape` recién añadido. +4. Agrega un `TextFrame` al objeto `AutoShape` que contenga *Aspose TextBox* como texto predeterminado. +5. Instancia la clase `HyperlinkManager`. +6. Asigna el objeto `HyperlinkManager` a la propiedad [HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--) asociada a la porción preferida de tu `TextFrame`. +7. Finalmente, escribe el archivo PPTX mediante el objeto `Presentation`. + +Este código JavaScript—una implementación de los pasos anteriores—te muestra cómo agregar un cuadro de texto con un hipervínculo a una diapositiva: +```javascript +// Instancia una clase Presentation que representa un PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva de la presentación + var slide = pres.getSlides().get_Item(0); + // Añade un objeto AutoShape con el tipo establecido como Rectángulo + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // Convierte la forma a AutoShape + var pptxAutoShape = shape; + // Accede a la propiedad ITextFrame asociada al AutoShape + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // Añade algo de texto al marco + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // Establece el hipervínculo para el texto de la porción + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // Guarda la presentación PPTX + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Cuál es la diferencia entre un cuadro de texto y un marcador de posición de texto al trabajar con diapositivas maestras?** + +Un [placeholder](/slides/es/nodejs-java/manage-placeholder/) hereda estilo/posición de la [master](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/) y puede ser sobrescrito en los [layouts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/), mientras que un cuadro de texto normal es un objeto independiente en una diapositiva específica y no cambia cuando cambias de layout. + +**¿Cómo puedo realizar un reemplazo masivo de texto en toda la presentación sin tocar el texto dentro de gráficos, tablas y SmartArt?** + +Limita tu iteración a auto‑shapes que tengan marcos de texto y excluye los objetos incrustados ([charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), [tables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/), [SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/)) recorriendo sus colecciones por separado o omitendo esos tipos de objetos. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..71d15a3dd4 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: Localización de la presentación +type: docs +weight: 100 +url: /es/nodejs-java/presentation-localization/ +--- + +## **Cambiar el idioma de la presentación y del texto de la forma** + +- Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Obtener la referencia de una diapositiva usando su índice. +- Agregar un [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) de tipo [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) a la diapositiva. +- Añadir texto al TextFrame. +- [Setting Language Id](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setLanguageId-java.lang.String-) al texto. +- Guardar la presentación como archivo PPTX. + +La implementación de los pasos anteriores se muestra a continuación en un ejemplo. +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿El ID de idioma activa la traducción automática del texto?** + +No. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) en Aspose.Slides almacena el idioma para la corrección ortográfica y de gramática, pero no traduce ni modifica el contenido del texto. Son metadatos que PowerPoint entiende para la revisión. + +**¿El ID de idioma afecta la hifenación y los saltos de línea durante el renderizado?** + +En Aspose.Slides, [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) es para la revisión. La calidad de la hifenación y el ajuste de línea dependen principalmente de la disponibilidad de [proper fonts](/slides/es/nodejs-java/powerpoint-fonts/) y de la configuración de diseño/salto de línea para el sistema de escritura. Para garantizar un renderizado correcto, haga que las fuentes requeridas estén disponibles, configure [font substitution rules](/slides/es/nodejs-java/font-substitution/) y/o [embed fonts](/slides/es/nodejs-java/embedded-font/) en la presentación. + +**¿Puedo establecer diferentes idiomas dentro de un solo párrafo?** + +Sí. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) se aplica a nivel de porción de texto, por lo que un solo párrafo puede mezclar varios idiomas con configuraciones de revisión distintas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..f9b364460d --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,86 @@ +--- +title: Superíndice y Subíndice +type: docs +weight: 80 +url: /es/nodejs-java/superscript-and-subscript/ +--- + +## **Administrar texto superíndice y subíndice** + +Puede agregar texto superíndice y subíndice dentro de cualquier porción de párrafo. Para agregar texto superíndice o subíndice en el marco de texto de Aspose.Slides se debe usar el método [**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) de la clase [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat). + +Esta propiedad devuelve o establece el texto superíndice o subíndice (valor de -100 % (subíndice) a 100 % (superíndice)). Por ejemplo: + +- Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Obtenga la referencia de una diapositiva usando su índice. +- Agregue una [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) de tipo [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) a la diapositiva. +- Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) asociado con la [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +- Elimine los párrafos existentes. +- Cree un nuevo objeto de párrafo para contener texto superíndice y agréguelo a la [Paragraphs collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). +- Cree un nuevo objeto de porción. +- Establezca la propiedad Escapement para la porción entre 0 y 100 para agregar superíndice. (0 significa sin superíndice) +- Establezca algún texto para [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) y luego agréguelo a la colección de porciones del párrafo. +- Cree un nuevo objeto de párrafo para contener texto subíndice y agréguelo a la colección IParagraphs del ITextFrame. +- Cree un nuevo objeto de porción. +- Establezca la propiedad Escapement para la porción entre 0 y -100 para agregar subíndice. (0 significa sin subíndice) +- Establezca algún texto para [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) y luego agréguelo a la colección de porciones del párrafo. +- Guarde la presentación como un archivo PPTX. + +La implementación de los pasos anteriores se muestra a continuación. +```javascript +// Instanciar una clase Presentation que representa un PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtener diapositiva + var slide = pres.getSlides().get_Item(0); + // Crear cuadro de texto + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // Crear párrafo para texto superíndice + var superPar = new aspose.slides.Paragraph(); + // Crear porción con texto normal + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // Crear porción con texto superíndice + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // Crear párrafo para texto subíndice + var paragraph2 = new aspose.slides.Paragraph(); + // Crear porción con texto normal + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // Crear porción con texto subíndice + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // Agregar párrafos al cuadro de texto + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Se conservará el superíndice y subíndice al exportar a PDF u otros formatos?** + +Sí, Aspose.Slides conserva correctamente el formato de superíndice y subíndice al exportar presentaciones a PDF, PPT/PPTX, imágenes y otros formatos compatibles. El formato especializado permanece intacto en todos los archivos de salida. + +**¿Se pueden combinar superíndice y subíndice con otros estilos de formato como negrita o cursiva?** + +Sí, Aspose.Slides le permite mezclar varios estilos de texto dentro de una única porción. Puede activar negrita, cursiva, subrayado y, simultáneamente, aplicar superíndice o subíndice configurando las propiedades correspondientes en [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). + +**¿Funciona el formato de superíndice y subíndice para texto dentro de tablas, gráficos o SmartArt?** + +Sí, Aspose.Slides admite el formato dentro de la mayoría de los objetos, incluidas tablas y elementos de gráficos. Al trabajar con SmartArt, debe acceder a los elementos apropiados (como [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/)) y sus contenedores de texto, y luego configurar las propiedades de [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) de manera similar. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..cc544d4967 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,681 @@ +--- +title: Formatear texto de PowerPoint en JavaScript +linktitle: Formato de texto +type: docs +weight: 50 +url: /es/nodejs-java/text-formatting/ +keywords: +- resaltar texto +- expresión regular +- alinear párrafo +- estilo de texto +- fondo de texto +- transparencia de texto +- espaciado de caracteres +- propiedades de fuente +- familia de fuentes +- rotación de texto +- ángulo de rotación +- marco de texto +- interlineado +- propiedad autofit +- anclaje del marco de texto +- tabulación de texto +- idioma predeterminado +- PowerPoint +- OpenDocument +- presentación +- Node.js +- JavaScript +- Aspose.Slides +description: "Aprenda a dar formato y estilo al texto en presentaciones de PowerPoint y OpenDocument usando Aspose.Slides para Node.js mediante Java. Personalice fuentes, colores, alineación y más con potentes ejemplos de código JavaScript." +--- + +## **Resaltar Texto** + +El método [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-) se ha añadido a la clase [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) y a la clase [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +Permite resaltar una parte del texto con color de fondo usando una muestra de texto, similar a la herramienta Color de resaltado de texto en PowerPoint 2019. + +El fragmento de código a continuación muestra cómo usar esta característica: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// resaltando todas las palabras 'important' + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// resaltando todas las ocurrencias separadas de 'the' + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Aspose ofrece un sencillo [servicio gratuito de edición en línea de PowerPoint](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **Resaltar Texto usando Expresión Regular** + +El método [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-) se ha añadido a la clase [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) y a la clase [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +Permite resaltar una parte del texto con color de fondo usando una expresión regular, similar a la herramienta Color de resaltado de texto en PowerPoint 2019. + +El fragmento de código a continuación muestra cómo usar esta característica: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// resaltando todas las palabras con 10 símbolos o más + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Color de Fondo del Texto** + +Aspose.Slides le permite especificar el color preferido para el fondo de un texto. + +Este código JavaScript muestra cómo establecer el color de fondo para todo un texto: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +Este código JavaScript muestra cómo establecer el color de fondo solo para una parte del texto: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Alinear Párrafos de Texto** + +El formato de texto es uno de los elementos clave al crear cualquier tipo de documento o presentación. Sabemos que Aspose.Slides para Node.js mediante Java permite agregar texto a diapositivas, pero en este tema veremos cómo controlar la alineación de los párrafos de texto en una diapositiva. Siga los pasos a continuación para alinear los párrafos de texto usando Aspose.Slides para Node.js mediante Java: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva usando su índice. +3. Acceda a las formas de marcador de posición presentes en la diapositiva y conviértalas a [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Obtenga el párrafo (que necesita alinearse) del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) expuesto por [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Alinee el párrafo. Un párrafo puede alinearse a la derecha, izquierda, centro o justificar. +6. Guarde la presentación modificada como archivo PPTX. + +La implementación de los pasos anteriores se muestra a continuación. +```javascript +// Instanciar un objeto Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Accediendo al primer y segundo marcador de posición en la diapositiva y convirtiéndolo a AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Cambiar el texto en ambos marcadores de posición + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // Obteniendo el primer párrafo de los marcadores de posición + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Alineando el párrafo de texto al centro + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // Guardando la presentación como un archivo PPTX + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Transparencia para el Texto** + +Este artículo demuestra cómo establecer la propiedad de transparencia a cualquier forma de texto usando Aspose.Slides para Node.js mediante Java. Para establecer la transparencia al texto, siga los pasos a continuación: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva. +3. Establezca el color de la sombra. +4. Guarde la presentación como archivo PPTX. + +La implementación de los pasos anteriores se muestra a continuación. +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // establecer la transparencia al cero por ciento + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Espaciado de Caracteres para el Texto** + +Aspose.Slides le permite establecer el espacio entre letras en un cuadro de texto. De esta forma, puede ajustar la densidad visual de una línea o bloque de texto ampliando o condensando el espaciado entre caracteres. + +Este código JavaScript muestra cómo ampliar el espaciado para una línea de texto y cómo condensarlo para otra línea: +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// expandir +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// condensar +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Administrar Propiedades de Fuente del Párrafo** + +Las presentaciones suelen contener tanto texto como imágenes. El texto puede formatearse de diversas maneras, ya sea para resaltar secciones y palabras específicas o para cumplir con estilos corporativos. El formato de texto ayuda a los usuarios a variar la apariencia del contenido de la presentación. Este artículo muestra cómo usar Aspose.Slides para Node.js mediante Java para configurar las propiedades de fuente de los párrafos de texto en diapositivas. Para administrar las propiedades de fuente de un párrafo usando Aspose.Slides para Node.js mediante Java: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva usando su índice. +3. Acceda a las formas de marcador de posición en la diapositiva y conviértalas a [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Obtenga el [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) del [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) expuesto por [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Justifique el párrafo. +6. Acceda a la porción de texto del párrafo. +7. Defina la fuente usando FontData y establezca la Font de la porción de texto en consecuencia. + 1. Establezca la fuente en negrita. + 2. Establezca la fuente en cursiva. +8. Establezca el color de la fuente usando el método [getFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#getFillFormat--) expuesto por el objeto [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion). +9. Guarde la presentación modificada en un archivo [PPTX](https://docs.fileformat.com/presentation/pptx/). + +La implementación de los pasos anteriores se muestra a continuación. Toma una presentación sin adornos y formatea las fuentes en una de las diapositivas. +```javascript +// Instanciar un objeto Presentation que representa un archivo PPTX +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // Accediendo a una diapositiva usando su posición + var slide = pres.getSlides().get_Item(0); + // Accediendo al primer y segundo marcador de posición en la diapositiva y convirtiéndolo a AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Accediendo al primer Párrafo + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Accediendo a la primera porción + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // Definir nuevas fuentes + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // Asignar nuevas fuentes a la porción + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // Establecer la fuente en negrita + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Establecer la fuente en cursiva + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Establecer color de fuente + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // Guardar el PPTX en disco + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Administrar Familia de Fuentes del Texto** + +Una porción se usa para contener texto con estilo de formato similar en un párrafo. Este artículo muestra cómo usar Aspose.Slides para Node.js mediante Java para crear un cuadro de texto con algo de texto y luego definir una fuente determinada, así como varias propiedades de la categoría de familia de fuentes. Para crear un cuadro de texto y establecer propiedades de fuente del texto en él: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva usando su índice. +3. Añada un [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) del tipo [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) a la diapositiva. +4. Elimine el estilo de relleno asociado al [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Acceda al TextFrame del AutoShape. +6. Añada texto al TextFrame. +7. Acceda al objeto Portion asociado al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +8. Defina la fuente que se usará para la [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion). +9. Establezca otras propiedades de fuente como negrita, cursiva, subrayado, color y altura usando las propiedades correspondientes del objeto Portion. +10. Guarde la presentación modificada como archivo PPTX. + +La implementación de los pasos anteriores se muestra a continuación. +```javascript +// Instanciar Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtener la primera diapositiva + var sld = pres.getSlides().get_Item(0); + // Añadir un AutoShape de tipo Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // Eliminar cualquier estilo de relleno asociado al AutoShape + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Acceder al TextFrame asociado al AutoShape + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // Acceder a la Portion asociada al TextFrame + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // Establecer la fuente para la Portion + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Establecer la propiedad Bold de la fuente + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Establecer la propiedad Italic de la fuente + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Establecer la propiedad Underline de la fuente + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // Establecer la altura de la fuente + port.getPortionFormat().setFontHeight(25); + // Establecer el color de la fuente + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // Guardar el PPTX en disco + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Tamaño de Fuente para el Texto** + +Aspose.Slides le permite elegir el tamaño de fuente preferido para el texto existente en un párrafo y para otros textos que puedan añadirse al párrafo posteriormente. + +Este código JavaScript muestra cómo establecer el tamaño de fuente para los textos contenidos en un párrafo: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Obtiene la primera forma, por ejemplo. + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Obtiene el primer párrafo, por ejemplo. + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // Establece el tamaño de fuente predeterminado a 20 pt para todas las porciones de texto en el párrafo. + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // Establece el tamaño de fuente a 20 pt para las porciones de texto actuales en el párrafo. + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Establecer Rotación del Texto** + +Aspose.Slides para Node.js mediante Java permite a los desarrolladores rotar el texto. El texto puede configurarse para aparecer como [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal), [Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical), [Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270), [WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical), [EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical), [MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) o [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft). Para rotar el texto de cualquier TextFrame, siga los pasos a continuación: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Acceda a la primera diapositiva. +3. Añada cualquier forma a la diapositiva. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Rote el texto](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-). +6. Guarde el archivo en disco. +```javascript +// Create an instance of Presentation class +var pres = new aspose.slides.Presentation(); +try { + // Get the first slide + var slide = pres.getSlides().get_Item(0); + // Add an AutoShape of Rectangle type + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Add TextFrame to the Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accessing the text frame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // Create the Paragraph object for text frame + var para = txtFrame.getParagraphs().get_Item(0); + // Create Portion object for paragraph + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Save Presentation + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Ángulo de Rotación Personalizado para TextFrame** + +Aspose.Slides para Node.js mediante Java ahora admite establecer un ángulo de rotación personalizado para TextFrame. En este tema veremos, con ejemplo, cómo establecer la propiedad RotationAngle en Aspose.Slides. Los nuevos métodos [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) y [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--) se han añadido a las clases [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) y [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat), y permiten establecer el ángulo de rotación personalizado para TextFrame. Para establecer RotationAngle, siga los pasos a continuación: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Añada un gráfico a la diapositiva. +3. [Establezca la propiedad RotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-). +4. Guarde la presentación como archivo PPTX. + +En el ejemplo siguiente, establecemos la propiedad RotationAngle. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtener la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadir un AutoShape de tipo Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Añadir TextFrame al Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accediendo al TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // Crear el objeto Paragraph para el TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Crear el objeto Portion para el párrafo + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Guardar la presentación + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Espaciado de Líneas del Párrafo** + +Aspose.Slides proporciona propiedades bajo [`ParagraphFormat`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat)—`SpaceAfter`, `SpaceBefore` y `SpaceWithin`—que permiten gestionar el espaciado de líneas para un párrafo. Las tres propiedades se utilizan de la siguiente manera: + +* Para especificar el espaciado de líneas en porcentaje, use un valor positivo. +* Para especificar el espaciado de líneas en puntos, use un valor negativo. + +Por ejemplo, puede aplicar un espaciado de 16 pt a un párrafo estableciendo la propiedad `SpaceBefore` en –16. + +Así es como se especifica el espaciado de líneas para un párrafo concreto: + +1. Cargue una presentación que contenga un AutoShape con texto. +2. Obtenga la referencia de una diapositiva mediante su índice. +3. Acceda al TextFrame. +4. Acceda al Paragraph. +5. Establezca las propiedades del Paragraph. +6. Guarde la presentación. + +Este código JavaScript muestra cómo especificar el espaciado de líneas para un párrafo: +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation("Fonts.pptx"); +try { + // Obtener la referencia de una diapositiva por su índice + var sld = pres.getSlides().get_Item(0); + // Acceder al TextFrame + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // Acceder al párrafo + var para = tf1.getParagraphs().get_Item(0); + // Establecer propiedades del párrafo + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // Guardar la presentación + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer la Propiedad AutofitType para TextFrame** + +En este tema exploraremos las distintas propiedades de formato de TextFrame. Este artículo cubre cómo establecer la propiedad AutofitType de TextFrame, anclar el texto y rotar el texto en la presentación. Aspose.Slides para Node.js mediante Java permite a los desarrolladores establecer la propiedad AutofitType de cualquier TextFrame. AutofitType puede establecerse en [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) o [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape). Si se establece en [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal), la forma permanecerá igual mientras el texto se ajusta sin que la forma cambie; si se establece en [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape), la forma se modificará de modo que solo contenga el texto necesario. Para establecer la propiedad AutofitType de un TextFrame, siga los pasos a continuación: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. Acceda a la primera diapositiva. +3. Añada cualquier forma a la diapositiva. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Establezca el AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-) del TextFrame. +6. Guarde el archivo en disco. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Acceder a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadir un AutoShape de tipo Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // Añadir TextFrame al rectángulo + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accediendo al TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Crear el objeto Paragraph para el TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Crear el objeto Portion para el párrafo + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Guardar la presentación + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Anclaje de TextFrame** + +Aspose.Slides para Node.js mediante Java permite a los desarrolladores anclar cualquier TextFrame. TextAnchorType especifica dónde se coloca el texto dentro de la forma. AnchorType puede establecerse en [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top), [Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center), [Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom), [Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) o [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed). Para establecer el anclaje de cualquier TextFrame, siga los pasos a continuación: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Acceda a la primera diapositiva. +3. Añada cualquier forma a la diapositiva. +4. Acceda al [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Establezca TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-) del TextFrame. +6. Guarde el archivo en disco. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtener la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadir un AutoShape de tipo Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Añadir TextFrame al Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accediendo al TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // Crear el objeto Paragraph para el TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Crear el objeto Portion para el párrafo + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Guardar la presentación + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Tabs y EffectiveTabs en la Presentación** + +Todas las tabulaciones de texto se dan en píxeles. + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**Figura: 2 Tabs explícitos y 2 Tabs predeterminados**| +- La propiedad EffectiveTabs.ExplicitTabCount (2 en nuestro caso) es igual a Tabs.Count. +- La colección EffectiveTabs incluye todas las tabs (de la colección Tabs y las tabs predeterminadas). +- La propiedad EffectiveTabs.ExplicitTabCount (2 en nuestro caso) es igual a Tabs.Count. +- La propiedad EffectiveTabs.DefaultTabSize (294) muestra la distancia entre las tabs predeterminadas (3 y 4 en nuestro ejemplo). +- EffectiveTabs.GetTabByIndex(index) con index = 0 devuelve la primera tab explícita (Position = 731), index = 1 la segunda tab (Position = 1241). Si se intenta obtener la siguiente tab con index = 2 devolverá la primera tab predeterminada (Position = 1470), etc. +- EffectiveTabs.GetTabAfterPosition(pos) se usa para obtener la siguiente tabulación después de algún texto. Por ejemplo, tiene el texto: "Hello World!". Para renderizar ese texto debe saber dónde comenzar a dibujar "world!". Primero, calcule la longitud de "Hello" en píxeles y llame a GetTabAfterPosition con ese valor. Obtendrá la posición de la siguiente tab para dibujar "world!". + +## **Establecer Estilo de Texto Predeterminado** + +Si necesita aplicar el mismo formato de texto predeterminado a todos los elementos de texto de una presentación a la vez, puede usar el método `getDefaultTextStyle` de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) y establecer el formato preferido. El siguiente ejemplo muestra cómo establecer la fuente negrita predeterminada (14 pt) para el texto en todas las diapositivas de una nueva presentación. +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Obtener el formato de párrafo de nivel superior. + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Extraer Texto con el Efecto All‑Caps** + +En PowerPoint, aplicar el efecto de fuente **All Caps** hace que el texto aparezca en mayúsculas en la diapositiva aunque originalmente se haya escrito en minúsculas. Cuando extrae una porción de texto con Aspose.Slides, la biblioteca devuelve el texto tal como se ingresó. Para manejar esto, verifique [TextCapType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textcaptype/)—si indica `All`, convierta la cadena devuelta a mayúsculas para que su salida coincida con lo que los usuarios ven en la diapositiva. + +Supongamos que tenemos el siguiente cuadro de texto en la primera diapositiva del archivo sample2.pptx. + +![The All Caps effect](all_caps_effect.png) + +El siguiente ejemplo muestra cómo extraer el texto con el efecto **All Caps** aplicado: +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +Salida: +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **FAQ** + +**¿Cómo modificar texto en una tabla de una diapositiva?** + +Para modificar texto en una tabla de una diapositiva, debe usar el objeto [Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/). Puede iterar todas las celdas de la tabla y cambiar el texto en cada celda accediendo a sus propiedades `TextFrame` y `ParagraphFormat`. + +**¿Cómo aplicar un degradado de color al texto en una diapositiva de PowerPoint?** + +Para aplicar un degradado de color al texto, use la propiedad Fill Format en [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). Establezca Fill Format en `Gradient`, donde podrá definir los colores de inicio y fin del degradado, junto con otras propiedades como dirección y transparencia para crear el efecto de degradado en el texto. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..999869d11f --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,374 @@ +--- +title: WordArt +type: docs +weight: 110 +url: /es/nodejs-java/wordart/ +--- + +## **¿Acerca de WordArt?** + +WordArt o Word Art es una característica que permite aplicar efectos a los textos para que destaquen. Con WordArt, por ejemplo, puedes contornear un texto o rellenarlo con un color (o degradado), añadirle efectos 3D, etc. También puedes inclinar, doblar y estirar la forma de un texto. + +{{% alert color="primary" %}} + +WordArt le permite tratar un texto como lo haría con un objeto gráfico. En general, WordArt consiste en efectos o modificaciones especiales aplicadas a los textos para hacerlos más atractivos o notorios. + +{{% /alert %}} + +**WordArt en Microsoft PowerPoint** + +Para usar WordArt en Microsoft PowerPoint, debe seleccionar una de las plantillas de WordArt predefinidas. Una plantilla de WordArt es un conjunto de efectos que se aplican a un texto o a su forma. + +**WordArt en Aspose.Slides** + +En Aspose.Slides para Node.js a través de Java 20.10, implementamos soporte para WordArt y mejoramos la funcionalidad en versiones posteriores de Aspose.Slides para Node.js a través de Java. + +Con Aspose.Slides para Node.js a través de Java, puede crear fácilmente su propia plantilla de WordArt (un efecto o combinación de efectos) en JavaScript y aplicarla a los textos. + +## **Creación de una Plantilla Simple de WordArt y su Aplicación a un Texto** + +**Uso de Aspose.Slides** + +Primero, creamos un texto simple usando este código JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Ahora, establecemos la altura de fuente del texto a un valor mayor para que el efecto sea más notorio mediante este código: +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**Uso de Microsoft PowerPoint** + +Vaya al menú de efectos de WordArt en Microsoft PowerPoint: + +![todo:image_alt_text](image-20200930113926-1.png) + +En el menú de la derecha, puede elegir un efecto de WordArt predefinido. En el menú de la izquierda, puede especificar la configuración de un nuevo WordArt. + +Estos son algunos de los parámetros u opciones disponibles: + +![todo:image_alt_text](image-20200930114015-3.png) + +**Uso de Aspose.Slides** + +Aquí, aplicamos el color de patrón [SmallGrid](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) al texto y añadimos un borde de texto negro de ancho 1 mediante este código: +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +El texto resultante: + +![todo:image_alt_text](image-20200930114108-4.png) + +## **Aplicación de Otros Efectos de WordArt** + +**Uso de Microsoft PowerPoint** + +Desde la clase del programa, puede aplicar estos efectos a un texto, bloque de texto, forma o elemento similar: + +![todo:image_alt_text](image-20200930114129-5.png) + +Por ejemplo, los efectos Sombra, Reflexión y Resplandor pueden aplicarse a un texto; los efectos Formato 3D y Rotación 3D pueden aplicarse a un bloque de texto; la propiedad Bordes Suaves puede aplicarse a un objeto Forma (todavía tiene efecto cuando no se establece la propiedad Formato 3D). + +### **Aplicación de Efectos de Sombra** + +Aquí, pretendemos establecer solo las propiedades relacionadas con un texto. Aplicamos el efecto de sombra a un texto usando este código en JavaScript: +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +La API de Aspose.Slides admite tres tipos de sombras: OuterShadow, InnerShadow y PresetShadow. + +Con PresetShadow, puede aplicar una sombra a un texto (utilizando valores predefinidos). + +**Uso de Microsoft PowerPoint** + +En PowerPoint, puede usar un tipo de sombra. Aquí hay un ejemplo: + +![todo:image_alt_text](image-20200930114225-6.png) + +**Uso de Aspose.Slides** + +Aspose.Slides en realidad le permite aplicar dos tipos de sombras a la vez: InnerShadow y PresetShadow. + +**Notas:** + +- Cuando se usan OuterShadow y PresetShadow juntos, solo se aplica el efecto OuterShadow. +- Si OuterShadow e InnerShadow se usan simultáneamente, el efecto resultante o aplicado depende de la versión de PowerPoint. Por ejemplo, en PowerPoint 2013, el efecto se duplica. Pero en PowerPoint 2007, se aplica el efecto OuterShadow. + +### **Aplicación de Visualización a Textos** + +Añadimos visualización al texto mediante este ejemplo de código en JavaScript: +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **Aplicación del Efecto Resplandor a Textos** + +Aplicamos el efecto de resplandor al texto para que brille o destaque usando este código: +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +El resultado de la operación: + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} + +Puede cambiar los parámetros de sombra, visualización y resplandor. Las propiedades de los efectos se establecen en cada porción del texto por separado. + +{{% /alert %}} + +### **Uso de Transformaciones en WordArt** + +Utilizamos la propiedad Transform (inherente a todo el bloque de texto) mediante este código: +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +El resultado: + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} + +Tanto Microsoft PowerPoint como Aspose.Slides para Node.js a través de Java proporcionan una serie de tipos de transformación predefinidos. + +{{% /alert %}} + +**Uso de PowerPoint** + +Para acceder a los tipos de transformación predefinidos, vaya a: **Formato** → **Efecto de texto** → **Transformar** + +**Uso de Aspose.Slides** + +Para seleccionar un tipo de transformación, use el enum TextShapeType. + +### **Aplicación de efectos 3D a Textos y Formas** + +Establecemos un efecto 3D a una forma de texto usando este código de ejemplo: +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +El texto resultante y su forma: + +![todo:image_alt_text](image-20200930114816-9.png) + +Aplicamos un efecto 3D al texto con este código JavaScript: +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +El resultado de la operación: + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} + +La aplicación de efectos 3D a textos o a sus formas y las interacciones entre los efectos se basan en ciertas reglas. + +Considere una escena para un texto y la forma que contiene ese texto. El efecto 3D contiene la representación del objeto 3D y la escena en la que se coloca el objeto. + +- Cuando la escena está configurada tanto para la figura como para el texto, la escena de la figura tiene mayor prioridad y la escena del texto se ignora. +- Cuando la figura no tiene su propia escena pero posee representación 3D, se usa la escena del texto. +- De lo contrario, cuando la forma originalmente no tiene efecto 3D, la forma es plana y el efecto 3D solo se aplica al texto. + +Estas descripciones están relacionadas con los métodos ThreeDFormat.getLightRig() y ThreeDFormat.getCamera(). + +{{% /alert %}} + +## **Aplicar Efectos de Sombra Externa a Textos** + +Aspose.Slides para Node.js a través de Java proporciona las clases [**OuterShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) y [**InnerShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow) que permiten aplicar efectos de sombra a un texto contenido en [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame). Siga estos pasos: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Obtenga la referencia de una diapositiva usando su índice. +3. Añada un AutoShape de tipo Rectángulo a la diapositiva. +4. Acceda al TextFrame asociado con el AutoShape. +5. Establezca el FillType del AutoShape a NoFill. +6. Instancie la clase OuterShadow +7. Establezca el BlurRadius de la sombra. +8. Establezca la Direction de la sombra +9. Establezca la Distance de la sombra. +10. Establezca el RectanglelAlign a TopLeft. +11. Establezca el PresetColor de la sombra a Black. +12. Guarde la presentación como un archivo [PPTX](https://docs.fileformat.com/presentation/pptx/) . + +Este código de ejemplo en Java —una implementación de los pasos anteriores— muestra cómo aplicar el efecto de sombra externa a un texto: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Obtener referencia de la diapositiva + var sld = pres.getSlides().get_Item(0); + // Añadir una AutoShape del tipo Rectángulo + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Añadir TextFrame al Rectángulo + ashp.addTextFrame("Aspose TextBox"); + // Desactivar el relleno de la forma por si queremos obtener la sombra del texto + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Añadir sombra externa y establecer todos los parámetros necesarios + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // Guardar la presentación en disco + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Aplicar Efecto de Sombra Interna a Formas** + +Siga estos pasos: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Obtenga una referencia de la diapositiva. +3. Añada un AutoShape del tipo Rectángulo. +4. Habilite InnerShadowEffect. +5. Establezca todos los parámetros necesarios. +6. Establezca el ColorType como Scheme. +7. Establezca el Scheme Color. +8. Guarde la presentación como un archivo [PPTX](https://docs.fileformat.com/presentation/pptx/) . + +Este código de ejemplo (basado en los pasos anteriores) muestra cómo añadir un conector entre dos formas en JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Obtener referencia de la diapositiva + var slide = pres.getSlides().get_Item(0); + // Agregar una AutoShape del tipo Rectángulo + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Agregar TextFrame al Rectángulo + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // Habilitar InnerShadowEffect + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // Establecer todos los parámetros necesarios + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // Establecer ColorType como Scheme + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // Establecer color del esquema + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // Guardar la presentación + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Puedo usar los efectos de WordArt con diferentes fuentes o escrituras (p. ej., árabe, chino)?** + +Sí, Aspose.Slides admite Unicode y funciona con todas las fuentes y escrituras principales. Los efectos de WordArt como sombra, relleno y contorno pueden aplicarse independientemente del idioma, aunque la disponibilidad de fuentes y el renderizado pueden depender de las fuentes del sistema. + +**¿Puedo aplicar los efectos de WordArt a los elementos del patrón de diapositivas?** + +Sí, puede aplicar efectos de WordArt a formas en las diapositivas maestra, incluidos los marcadores de título, pies de página o texto de fondo. Los cambios realizados en el diseño maestro se reflejarán en todas las diapositivas asociadas. + +**¿Los efectos de WordArt afectan al tamaño del archivo de la presentación?** + +Levemente. Los efectos de WordArt como sombras, resplandores y rellenos degradados pueden incrementar ligeramente el tamaño del archivo debido a los metadatos de formato añadidos, pero la diferencia suele ser insignificante. + +**¿Puedo previsualizar el resultado de los efectos de WordArt sin guardar la presentación?** + +Sí, puede renderizar diapositivas que contienen WordArt a imágenes (p. ej., PNG, JPEG) usando el método `getImage` de las clases [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) o [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). Esto le permite previsualizar el resultado en memoria o en pantalla antes de guardar o exportar la presentación completa. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/es/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..be3b789d83 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,537 @@ +--- +title: Administrar Zoom +type: docs +weight: 60 +url: /es/nodejs-java/manage-zoom/ +keywords: "Zoom, marco de Zoom, Agregar zoom, Formatear marco de Zoom, Zoom de resumen, presentación PowerPoint, Java, Aspose.Slides para Node.js a través de Java" +description: "Agregar zoom o marcos de zoom a presentaciones PowerPoint en JavaScript" +--- + +## **Visión general** + +Los Zoom en PowerPoint le permiten saltar hacia y desde diapositivas específicas, secciones y partes de una presentación. Al estar presentando, esta capacidad de navegar rápidamente por el contenido puede resultar muy útil. + +![overview_image](overview.png) + +* Para resumir una presentación completa en una sola diapositiva, use un [Summary Zoom](#Summary-Zoom). +* Para mostrar solo diapositivas seleccionadas, use un [Slide Zoom](#Slide-Zoom). +* Para mostrar solo una sección, use un [Section Zoom](#Section-Zoom). + +## **Zoom de diapositiva** + +Un zoom de diapositiva puede hacer que su presentación sea más dinámica, permitiéndole navegar libremente entre diapositivas en cualquier orden que elija sin interrumpir el flujo de su presentación. Los zoom de diapositiva son ideales para presentaciones cortas sin muchas secciones, pero también puede usarlos en diferentes escenarios de presentación. + +Los zoom de diapositiva le ayudan a profundizar en múltiples piezas de información mientras siente que está en un solo lienzo. + +![overview_image](slidezoomsel.png) + +Para objetos de zoom de diapositiva, Aspose.Slides proporciona la enumeración [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType), la clase [ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) y algunos métodos bajo la clase [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Creación de marcos de zoom** + +Puede agregar un marco de zoom en una diapositiva de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree nuevas diapositivas a las que tenga la intención de enlazar los marcos de zoom. +3. Agregue un texto de identificación y un fondo a las diapositivas creadas. +4. Agregue marcos de zoom (que contienen las referencias a las diapositivas creadas) a la primera diapositiva. +5. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de zoom en una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega nuevas diapositivas a la presentación + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Crea un fondo para la segunda diapositiva + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Crea un cuadro de texto para la segunda diapositiva + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Crea un fondo para la tercera diapositiva + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Crea un cuadro de texto para la tercera diapositiva + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Agrega objetos ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Creación de marcos de zoom con imágenes personalizadas** + +Con Aspose.Slides para Node.js a través de Java, puede crear un marco de zoom con una imagen de vista previa de diapositiva diferente de esta manera: +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree una nueva diapositiva a la que tenga la intención de enlazar el marco de zoom. +3. Agregue un texto de identificación y un fondo a la diapositiva. +4. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la colección Images asociada con el objeto [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que se utilizará para rellenar el marco. +5. Agregue marcos de zoom (que contienen la referencia a la diapositiva creada) a la primera diapositiva. +6. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de zoom con una imagen diferente: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Crea un fondo para la segunda diapositiva + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Crea un cuadro de texto para la tercera diapositiva + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Crea una nueva imagen para el objeto Zoom + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Agrega el objeto ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formato de los marcos de zoom** + +En las secciones anteriores, le mostramos cómo crear marcos de zoom simples. Para crear marcos de zoom más complejos, debe alterar el formato de un marco sencillo. Existen varias opciones de formato que puede aplicar a un marco de zoom. + +Puede controlar el formato de un marco de zoom en una diapositiva de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree nuevas diapositivas a enlazar a las que tenga la intención de enlazar el marco de zoom. +3. Agregue algún texto de identificación y un fondo a las diapositivas creadas. +4. Agregue marcos de zoom (que contienen las referencias a las diapositivas creadas) a la primera diapositiva. +5. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la colección Images asociada con el objeto [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que se utilizará para rellenar el marco. +6. Establezca una imagen personalizada para el primer objeto de marco de zoom. +7. Cambie el formato de línea para el segundo objeto de marco de zoom. +8. Elimine el fondo de una imagen del segundo objeto de marco de zoom. +5. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo cambiar el formato de un marco de zoom en una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega nuevas diapositivas a la presentación + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Crea un fondo para la segunda diapositiva + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Crea un cuadro de texto para la segunda diapositiva + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Crea un fondo para la tercera diapositiva + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Crea un cuadro de texto para la tercera diapositiva + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Agrega objetos ZoomFrame + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Crea una nueva imagen para el objeto Zoom + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Establece una imagen personalizada para el objeto zoomFrame1 + zoomFrame1.setImage(picture); + // Establece un formato de marco de zoom para el objeto zoomFrame2 + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Configuración para no mostrar el fondo del objeto zoomFrame2 + zoomFrame2.setShowBackground(false); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zoom de sección** + +Un zoom de sección es un enlace a una sección de su presentación. Puede usar los zoom de sección para volver a secciones que desea enfatizar realmente. O puede utilizarlos para resaltar cómo ciertas partes de su presentación se conectan. + +![overview_image](seczoomsel.png) + +Para objetos de zoom de sección, Aspose.Slides proporciona la clase [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) y algunos métodos bajo la clase [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Creación de marcos de zoom de sección** + +Puede agregar un marco de zoom de sección a una diapositiva de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree una nueva diapositiva. +3. Agregue un fondo de identificación a la diapositiva creada. +4. Cree una nueva sección a la que tenga la intención de enlazar el marco de zoom. +5. Agregue un marco de zoom de sección (que contiene referencias a la sección creada) a la primera diapositiva. +6. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de zoom en una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 1", slide); + // Agrega un objeto SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Creación de marcos de zoom de sección con imágenes personalizadas** + +Usando Aspose.Slides para Node.js a través de Java, puede crear un marco de zoom de sección con una imagen de vista previa de diapositiva diferente de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree una nueva diapositiva. +3. Agregue un fondo de identificación a la diapositiva creada. +4. Cree una nueva sección a la que tenga la intención de enlazar el marco de zoom. +5. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la colección Images asociada con el objeto [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que se utilizará para rellenar el marco. +5. Agregue un marco de zoom de sección (que contiene una referencia a la sección creada) a la primera diapositiva. +6. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de zoom con una imagen diferente: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 1", slide); + // Crea una nueva imagen para el objeto zoom + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Agrega un objeto SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formato de los marcos de zoom de sección** + +Para crear marcos de zoom de sección más complejos, debe alterar el formato de un marco sencillo. Existen varias opciones de formato que puede aplicar a un marco de zoom de sección. + +Puede controlar el formato de un marco de zoom de sección en una diapositiva de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree una nueva diapositiva. +3. Agregue un fondo de identificación a la diapositiva creada. +4. Cree una nueva sección a la que tenga la intención de enlazar el marco de zoom. +5. Agregue un marco de zoom de sección (que contiene referencias a la sección creada) a la primera diapositiva. +6. Cambie el tamaño y la posición del objeto de zoom de sección creado. +7. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la colección Images asociada con el objeto [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que se utilizará para rellenar el marco. +8. Establezca una imagen personalizada para el objeto de marco de zoom de sección creado. +9. Establezca la capacidad de *volver a la diapositiva original desde la sección enlazada*. +10. Elimine el fondo de una imagen del objeto de marco de zoom de sección. +11. Cambie el formato de línea para el segundo objeto de marco de zoom. +12. Cambie la duración de la transición. +13. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo cambiar el formato de un marco de zoom de sección: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 1", slide); + // Agregar objeto SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Formato para SectionZoomFrame + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zoom de resumen** + +Un zoom de resumen es como una página de inicio donde se muestran todas las partes de su presentación a la vez. Cuando está presentando, puede usar el zoom para pasar de un lugar de su presentación a otro en cualquier orden que desee. Puede ser creativo, adelantarse o volver a visitar partes de su presentación sin interrumpir el flujo de la misma. + +![overview_image](sumzoomsel.png) + +Para objetos de zoom de resumen, Aspose.Slides proporciona las clases [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame), [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) y [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) y algunos métodos bajo la clase [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Creación de zoom de resumen** + +Puede agregar un marco de zoom de resumen a una diapositiva de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree nuevas diapositivas con fondo de identificación y nuevas secciones para las diapositivas creadas. +3. Agregue el marco de zoom de resumen a la primera diapositiva. +4. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo crear un marco de zoom de resumen en una diapositiva: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 1", slide); + // Agrega una nueva diapositiva a la presentación + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 2", slide); + // Agrega una nueva diapositiva a la presentación + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 3", slide); + // Agrega una nueva diapositiva a la presentación + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 4", slide); + // Agrega un objeto SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Agregar y eliminar secciones de zoom de resumen** + +Todas las secciones en un marco de zoom de resumen están representadas por objetos [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection), que se almacenan en el objeto [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection). Puede agregar o eliminar un objeto de sección de zoom de resumen a través de la clase [SummaryZoomSectionCollection] de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree nuevas diapositivas con fondo de identificación y nuevas secciones para las diapositivas creadas. +3. Agregue un marco de zoom de resumen a la primera diapositiva. +4. Agregue una nueva diapositiva y sección a la presentación. +5. Agregue la sección creada al marco de zoom de resumen. +6. Elimine la primera sección del marco de zoom de resumen. +7. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo agregar y eliminar secciones en un marco de zoom de resumen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 1", slide); + // Agrega una nueva diapositiva a la presentación + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 2", slide); + // Agrega un objeto SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Agrega una nueva diapositiva a la presentación + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + var section3 = pres.getSections().addSection("Section 3", slide); + // Agrega una sección al Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // Elimina la sección del Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formato de las secciones de zoom de resumen** + +Para crear objetos de sección de zoom de resumen más complejos, debe alterar el formato de un marco sencillo. Existen varias opciones de formato que puede aplicar a un objeto de sección de zoom de resumen. + +Puede controlar el formato de un objeto de sección de zoom de resumen en un marco de zoom de resumen de esta manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Cree nuevas diapositivas con fondo de identificación y nuevas secciones para las diapositivas creadas. +3. Agregue un marco de zoom de resumen a la primera diapositiva. +4. Obtenga un objeto de sección de zoom de resumen para el primer objeto de la `ISummaryZoomSectionCollection`. +7. Cree un objeto [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) añadiendo una imagen a la colección images asociada con el objeto [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) que se utilizará para rellenar el marco. +8. Establezca una imagen personalizada para el objeto de marco de zoom de sección creado. +9. Establezca la capacidad de *volver a la diapositiva original desde la sección enlazada*. +11. Cambie el formato de línea para el segundo objeto de marco de zoom. +12. Cambie la duración de la transición. +13. Escriba la presentación modificada como un archivo PPTX. + +Este código JavaScript le muestra cómo cambiar el formato de un objeto de sección de zoom de resumen: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Agrega una nueva diapositiva a la presentación + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 1", slide); + // Agrega una nueva diapositiva a la presentación + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Agrega una nueva sección a la presentación + pres.getSections().addSection("Section 2", slide); + // Agrega un objeto SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Obtiene el primer objeto SummaryZoomSection + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // Formato para el objeto SummaryZoomSection + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // Guarda la presentación + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Puedo controlar el regreso a la diapositiva “padre” después de mostrar el objetivo?** + +Sí. El [Zoom frame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/) o [section](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/) tiene un método `setReturnToParent` que, cuando está habilitado, devuelve al espectador a la diapositiva de origen después de que visite el contenido objetivo. + +**¿Puedo ajustar la “velocidad” o duración de la transición del Zoom?** + +Sí. Zoom expone un método `setTransitionDuration` para que pueda controlar cuánto tiempo lleva la animación de salto. + +**¿Existen límites en la cantidad de objetos Zoom que una presentación puede contener?** + +No hay un límite API estrictamente documentado. Los límites prácticos dependen de la complejidad general de la presentación y del rendimiento del visor. Puede agregar muchos marcos de Zoom, pero considere el tamaño del archivo y el tiempo de renderizado. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/es/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..df7db2f393 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,102 @@ +--- +title: Gestionar etiquetas y datos personalizados +type: docs +weight: 300 +url: /es/nodejs-java/managing-tags-and-custom-data +--- + +## **Almacenamiento de datos en archivos de presentación** + +Los archivos PPTX—elementos con la extensión .pptx—se almacenan en formato PresentationML, que forma parte de la especificación Office Open XML. El formato Office Open XML define la estructura de los datos contenidos en presentaciones. + +Con una *diapositiva* como uno de los elementos en presentaciones, una *parte de diapositiva* contiene el contenido de una sola diapositiva. Una parte de diapositiva puede tener relaciones explícitas con muchas partes—como etiquetas definidas por el usuario—definidas por ISO/IEC 29500. + +Los datos personalizados (específicos de una presentación) o del usuario pueden existir como etiquetas ([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection)) y CustomXmlParts ([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection)). + +{{% alert color="primary" %}} + +Las etiquetas son esencialmente pares de valores clave‑cadena. + +{{% /alert %}} + +## **Obtención de los valores de las etiquetas** + +En las diapositivas, una etiqueta corresponde a los métodos [DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) y [DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-). Este código de ejemplo muestra cómo obtener el valor de una etiqueta con Aspose.Slides para Node.js vía Java para [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar etiquetas a presentaciones** + +Aspose.Slides le permite agregar etiquetas a presentaciones. Una etiqueta típicamente consiste en dos elementos: + +- el nombre de una propiedad personalizada - `MyTag` +- el valor de la propiedad personalizada - `My Tag Value` + +Si necesita clasificar algunas presentaciones según una regla o propiedad específica, puede beneficiarse al agregar etiquetas a esas presentaciones. Por ejemplo, si desea agrupar todas las presentaciones de países de América del Norte, puede crear una etiqueta “North American” y luego asignar los países relevantes (EE. UU., México y Canadá) como valores. + +Este código de ejemplo muestra cómo agregar una etiqueta a una [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) usando Aspose.Slides para Node.js vía Java: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Las etiquetas también pueden establecerse para [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +O cualquier [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) individual: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Puedo eliminar todas las etiquetas de una presentación, diapositiva o forma en una sola operación?** + +Sí. La [tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) admite una operación [clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/) que elimina todos los pares clave‑valor a la vez. + +**¿Cómo elimino una sola etiqueta por su nombre sin iterar toda la colección?** + +Utilice la operación [remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/) en [TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) para borrar la etiqueta por su clave. + +**¿Cómo puedo obtener la lista completa de nombres de etiquetas para análisis o filtrado?** + +Utilice [getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/) en la [tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/); devuelve una matriz con todos los nombres de etiquetas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..77df8eded2 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,179 @@ +--- +title: Gráficos animados +type: docs +weight: 80 +url: /es/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} + +Aspose.Slides for Node.js via Java admite la animación de los elementos del gráfico. **Series**, **Categories**, **Series Elements**, **Categories Elements** pueden animarse con el método [**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-) y dos enumeraciones [**EffectChartMajorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMajorGroupingType) y [**EffectChartMinorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMinorGroupingType). + +{{% /alert %}} + +## **Animación de Series de Gráfico** +Si desea animar una serie de gráfico, escriba el código según los pasos enumerados a continuación: + +1. Cargue una presentación. +1. Obtenga la referencia del objeto de gráfico. +1. Anime la serie. +1. Escriba el archivo de presentación en disco. + +En el ejemplo a continuación, animamos series de gráfico. +```javascript +// Instanciar la clase Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Obtener la referencia del objeto de gráfico + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animar la serie + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Escribir la presentación modificada en disco + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animación de Categoría de Gráfico** +Si desea animar una categoría de gráfico, escriba el código según los pasos enumerados a continuación: + +1. Cargue una presentación. +1. Obtenga la referencia del objeto de gráfico. +1. Anime la categoría. +1. Escriba el archivo de presentación en disco. + +En el ejemplo a continuación, animamos la categoría del gráfico. +```javascript +// Instanciar la clase Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animación en Elemento de Serie** +Si desea animar los elementos de serie, escriba el código según los pasos enumerados a continuación: + +1. Cargue una presentación. +1. Obtenga la referencia del objeto de gráfico. +1. Anime los elementos de serie. +1. Escriba el archivo de presentación en disco. + +En el ejemplo a continuación, hemos animado los elementos de la serie. +```javascript +// Instanciar la clase Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Obtener la referencia del objeto de gráfico + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animar los elementos de la serie + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Escribir el archivo de presentación en disco + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animación en Elemento de Categoría** +Si desea animar los elementos de categoría, escriba el código según los pasos enumerados a continuación: + +1. Cargue una presentación. +1. Obtenga la referencia del objeto de gráfico. +1. Anime los elementos de categoría. +1. Escriba el archivo de presentación en disco. + +En el ejemplo a continuación, hemos animado los elementos de la categoría. +```javascript +// Instanciar la clase Presentation que representa un archivo de presentación +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Obtener la referencia del objeto de gráfico + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animar los elementos de categorías + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Escribir el archivo de presentación en disco + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Se admiten diferentes tipos de efectos (p. ej., entrada, énfasis, salida) para los gráficos como para las formas normales?** + +Sí. Un gráfico se trata como una forma, por lo que admite los tipos estándar de efectos de animación, incluidos entrada, énfasis y salida, con control total a través de la línea de tiempo de la diapositiva y las secuencias de animación. + +**¿Puedo combinar la animación del gráfico con las transiciones de diapositivas?** + +Sí. Las [Transitions](/slides/es/nodejs-java/slide-transition/) se aplican a la diapositiva, mientras que los efectos de animación se aplican a los objetos de la diapositiva. Puede usar ambos juntos en la misma presentación y controlarlos de forma independiente. + +**¿Se conservan las animaciones del gráfico al guardar en PPTX?** + +Sí. Cuando [save to PPTX](/slides/es/nodejs-java/save-presentation/), todos los efectos de animación y su orden se conservan porque forman parte del modelo nativo de animación de la presentación. + +**¿Puedo leer animaciones de gráficos existentes en una presentación y modificarlas?** + +Sí. La API brinda acceso a la línea de tiempo de la diapositiva, secuencias y efectos, lo que permite inspeccionar las animaciones de gráficos existentes y ajustarlas sin recrear todo desde cero. + +**¿Puedo generar un video que incluya animaciones de gráficos usando Aspose.Slides?** + +Sí. Puede [export a presentation to video](/slides/es/nodejs-java/convert-powerpoint-to-video/) manteniendo las animaciones, configurando los tiempos y otras opciones de exportación para que el clip resultante refleje la reproducción animada. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..c0d051961d --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: Cálculos de Gráficos +type: docs +weight: 50 +url: /es/nodejs-java/chart-calculations/ +--- + +## **Calcular valores reales de los elementos del gráfico** + +Aspose.Slides for Node.js via Java proporciona una API sencilla para obtener estas propiedades. Las propiedades de la clase [Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) proporcionan información sobre la posición real del elemento del gráfico ([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--), [Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--), [Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--), [Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--), [Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--), [Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--)). Es necesario llamar al método [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) antes para rellenar las propiedades con valores reales. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Calcular posición real de los elementos principales del gráfico** + +Aspose.Slides for Node.js via Java proporciona una API sencilla para obtener estas propiedades. Las propiedades de la clase [ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) proporcionan información sobre la posición real del elemento principal del gráfico ([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--), [ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--), [ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--), [ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--)). Es necesario llamar al método [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) antes para rellenar las propiedades con valores reales. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ocultar información del gráfico** + +Este tema le ayuda a comprender cómo ocultar información del gráfico. Usando Aspose.Slides for Node.js via Java puede ocultar **Título, Eje vertical, Eje horizontal** y **Líneas de cuadrícula** del gráfico. El siguiente ejemplo de código muestra cómo usar estas propiedades. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // Ocultando el título del gráfico + chart.setTitle(false); + // /Ocultando eje de valores + chart.getAxes().getVerticalAxis().setVisible(false); + // Visibilidad del eje de categorías + chart.getAxes().getHorizontalAxis().setVisible(false); + // Ocultando la leyenda + chart.setLegend(false); + // Ocultando líneas de cuadrícula principales + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // Estableciendo el color de la línea de la serie + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Los libros de Excel externos funcionan como fuente de datos y cómo afecta eso a la recalculación?** + +Sí. Un gráfico puede hacer referencia a un libro externo: cuando se conecta o se actualiza la fuente externa, las fórmulas y valores se toman de ese libro, y el gráfico refleja las actualizaciones durante las operaciones de apertura/edición. La API le permite [especificar la ruta del libro externo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) y gestionar los datos vinculados. + +**¿Puedo calcular y mostrar líneas de tendencia sin implementar yo mismo la regresión?** + +Sí. Las [Trendlines](/slides/es/nodejs-java/trend-line/) (lineales, exponenciales y otras) son añadidas y actualizadas por Aspose.Slides; sus parámetros se recalculan automáticamente a partir de los datos de la serie, por lo que no necesita implementar sus propios cálculos. + +**Si una presentación tiene varios gráficos con enlaces externos, ¿puedo controlar qué libro usa cada gráfico para los valores calculados?** + +Sí. Cada gráfico puede apuntar a su propio [libro externo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/), o puede crear/reemplazar un libro externo por gráfico de forma independiente de los demás. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..da50fb2bd0 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: Indicador +type: docs +url: /es/nodejs-java/callout/ +--- + +## **Uso de Callouts** + +Nuevos métodos [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) y [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-) se han añadido a la clase [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) y a la clase [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat). Estos métodos determinan si la etiqueta de datos de un gráfico especificado se mostrará como un callout de datos o como una etiqueta de datos. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer Callout para gráfico de rosquilla** + +Aspose.Slides for Node.js via Java ofrece soporte para establecer la forma de callout de la etiqueta de datos de la serie para un gráfico de rosquilla. A continuación se muestra un ejemplo. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Se conservan los callouts al convertir una presentación a PDF, HTML5, SVG o imágenes?** + +Sí. Los callouts forman parte del renderizado del gráfico, por lo que al exportar a [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/), [HTML5](/slides/es/nodejs-java/export-to-html5/), [SVG](/slides/es/nodejs-java/render-a-slide-as-an-svg-image/) o [imágenes rasterizadas](/slides/es/nodejs-java/convert-powerpoint-to-png/), se conservan junto con el formato de la diapositiva. + +**¿Los tipos de letra personalizados funcionan en los callouts y puede preservarse su apariencia al exportar?** + +Sí. Aspose.Slides admite la [incrustación de fuentes](/slides/es/nodejs-java/embedded-font/) en la presentación y controla la incrustación de fuentes durante exportaciones como [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/), garantizando que los callouts se vean igual en diferentes sistemas. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..b8732e81eb --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: "Eje del gráfico" +type: docs +url: /es/nodejs-java/chart-axis/ +keywords: "Eje de gráfico de PowerPoint, Gráficos de presentación, Java, Manipular eje de gráfico, Datos del gráfico" +description: "Cómo editar el eje de un gráfico de PowerPoint en JavaScript" +--- + +## **Obtener los valores máximos en el eje vertical de los gráficos** + +Aspose.Slides for Node.js a través de Java le permite obtener los valores mínimo y máximo en un eje vertical. Siga estos pasos: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Acceda a la primera diapositiva. +1. Agregue un gráfico con datos predeterminados. +1. Obtenga el valor máximo real en el eje. +1. Obtenga el valor mínimo real en el eje. +1. Obtenga la unidad mayor real del eje. +1. Obtenga la unidad menor real del eje. +1. Obtenga la escala de unidad mayor real del eje. +1. Obtenga la escala de unidad menor real del eje. + +Este código de ejemplo —una implementación de los pasos anteriores— muestra cómo obtener los valores requeridos en JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // Guarda la presentación + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Intercambiar los datos entre ejes** + +Aspose.Slides le permite intercambiar rápidamente los datos entre ejes: los datos representados en el eje vertical (eje y) se trasladan al eje horizontal (eje x) y viceversa. + +Este código JavaScript le muestra cómo realizar la tarea de intercambio de datos entre ejes en un gráfico: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // Cambia filas y columnas + chart.getChartData().switchRowColumn(); + // Guarda la presentación + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Desactivar el eje vertical en gráficos de líneas** + +Este código JavaScript le muestra cómo ocultar el eje vertical en un gráfico de líneas: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Desactivar el eje horizontal en gráficos de líneas** + +Este código le muestra cómo ocultar el eje horizontal en un gráfico de líneas: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Cambiar el eje de categorías** + +Usando la propiedad **CategoryAxisType**, puede especificar el tipo de eje de categorías que prefiera (**date** o **text**). Este código en JavaScript demuestra la operación: +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Establecer el formato de fecha para el valor del eje de categorías** + +Aspose.Slides for Node.js a través de Java le permite establecer el formato de fecha para un valor del eje de categorías. La operación se demuestra en este código JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **Establecer el ángulo de rotación para el título del eje del gráfico** + +Aspose.Slides for Node.js a través de Java le permite establecer el ángulo de rotación para el título de un eje de gráfico. Este código JavaScript demuestra la operación: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer la posición del eje en un eje de categorías o de valores** + +Aspose.Slides for Node.js a través de Java le permite establecer la posición del eje en un eje de categorías o de valores. Este código JavaScript muestra cómo realizar la tarea: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Habilitar la etiqueta de unidad de visualización en el eje de valores del gráfico** + +Aspose.Slides for Node.js a través de Java le permite configurar un gráfico para mostrar una etiqueta de unidad en su eje de valores del gráfico. Este código JavaScript demuestra la operación: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Cómo establezco el valor en el que un eje cruza al otro (cruce de eje)?** + +Los ejes ofrecen una [configuración de cruce](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/): puede elegir cruzar en cero, en la categoría/valor máximo, o en un valor numérico específico. Esto es útil para desplazar el eje X hacia arriba o abajo o para enfatizar una línea base. + +**¿Cómo puedo posicionar las etiquetas de marcas respecto al eje (junto, fuera, dentro)?** + +Establezca la [posición de la etiqueta](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/) a "cross", "outside" o "inside". Esto afecta la legibilidad y ayuda a conservar espacio, especialmente en gráficos pequeños. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..739933ea6a --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: Etiqueta de datos del gráfico +type: docs +url: /es/nodejs-java/chart-data-label/ +keywords: "Etiqueta de datos del gráfico, distancia de la etiqueta, Java, Aspose.Slides for Node.js via Java" +description: "Establecer la etiqueta de datos del gráfico de PowerPoint y la distancia en JavaScript" +--- + +Las etiquetas de datos en un gráfico muestran detalles sobre la serie de datos del gráfico o puntos de datos individuales. Permiten a los lectores identificar rápidamente la serie de datos y también facilitan la comprensión de los gráficos. + +## **Establecer la precisión de los datos en las etiquetas de datos del gráfico** + +Este código JavaScript le muestra cómo establecer la precisión de los datos en una etiqueta de datos del gráfico: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Mostrar porcentaje como etiquetas** + +Aspose.Slides para Node.js a través de Java le permite establecer etiquetas de porcentaje en los gráficos mostrados. Este código JavaScript demuestra la operación: +```javascript +// Crea una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la primera diapositiva + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // Guarda la presentación que contiene el gráfico + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer el signo de porcentaje en las etiquetas de datos del gráfico** + +Este código JavaScript le muestra cómo establecer el signo de porcentaje para una etiqueta de datos del gráfico: +```javascript +// Crea una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la referencia de una diapositiva a través de su índice + var slide = pres.getSlides().get_Item(0); + // Crea el gráfico PercentsStackedColumn en una diapositiva + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // Establece NumberFormatLinkedToSource en false + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // Obtiene la hoja de cálculo de datos del gráfico + var workbook = chart.getChartData().getChartDataWorkbook(); + // Agrega una nueva serie + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // Establece el color de relleno de la serie + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Establece las propiedades de LabelFormat + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // Agrega una nueva serie + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // Establece el tipo de relleno y el color + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // Escribe la presentación en disco + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer la distancia de la etiqueta desde el eje** + +Este código JavaScript le muestra cómo establecer la distancia de la etiqueta desde un eje de categoría cuando se trabaja con un gráfico trazado a partir de ejes: +```javascript +// Crea una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtiene la referencia de una diapositiva + var sld = pres.getSlides().get_Item(0); + // Crea un gráfico en la diapositiva + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // Establece la distancia de la etiqueta desde un eje + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // Escribe la presentación en disco + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajustar la ubicación de la etiqueta** + +Cuando crea un gráfico que no depende de ningún eje, como un gráfico circular, las etiquetas de datos del gráfico pueden quedar demasiado cerca de su borde. En ese caso, debe ajustar la ubicación de la etiqueta de datos para que las líneas guía se muestren claramente. + +Este código JavaScript le muestra cómo ajustar la ubicación de la etiqueta en un gráfico circular: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **FAQ** + +**¿Cómo puedo evitar que las etiquetas de datos se superpongan en gráficos densos?** + +Combine la colocación automática de etiquetas, líneas guía y tamaño de fuente reducido; si es necesario, oculte algunos campos (por ejemplo, la categoría) o muestre etiquetas solo para los puntos extremos/clave. + +**¿Cómo puedo desactivar las etiquetas solo para valores cero, negativos o vacíos?** + +Filtre los puntos de datos antes de habilitar las etiquetas y desactive la visualización para valores 0, valores negativos o valores faltantes según una regla definida. + +**¿Cómo puedo garantizar un estilo de etiqueta consistente al exportar a PDF/imagenes?** + +Establezca explícitamente las fuentes (familia, tamaño) y verifique que la fuente esté disponible en el lado de renderizado para evitar sustituciones. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..1c9c5de458 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: Marcador de datos del gráfico +type: docs +url: /es/nodejs-java/chart-data-marker/ +--- + +## **Configurar opciones de marcadores del gráfico** + +Los marcadores pueden establecerse en los puntos de datos del gráfico dentro de series específicas. Para configurar las opciones de marcadores del gráfico, siga los pasos a continuación: + +- Instanciar la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Crear el gráfico predeterminado. +- Establecer la imagen. +- Tomar la primera serie del gráfico. +- Añadir un nuevo punto de datos. +- Guardar la presentación en disco. + +En el ejemplo a continuación, hemos configurado las opciones de marcadores del gráfico a nivel de los puntos de datos. +```javascript +// Creando presentación vacía +var pres = new aspose.slides.Presentation(); +try { + // Acceder a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Creando el gráfico predeterminado + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // Obteniendo el índice de la hoja de datos del gráfico predeterminada + var defaultWorksheetIndex = 0; + // Obteniendo la hoja de datos del gráfico + var fact = chart.getChartData().getChartDataWorkbook(); + // Eliminar serie de demostración + chart.getChartData().getSeries().clear(); + // Añadir nueva serie + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // Cargar la imagen 1 + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // Cargar la imagen 2 + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // Obtener la primera serie del gráfico + var series = chart.getChartData().getSeries().get_Item(0); + // Añadir nuevo punto (1:3) allí. + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // Cambiando el marcador de la serie del gráfico + series.getMarker().setSize(15); + // Guardar presentación con el gráfico + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Qué formas de marcador están disponibles de forma predeterminada?** + +Están disponibles formas estándar (círculo, cuadrado, diamante, triángulo, etc.); la lista está definida por la enumeración [MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/). Si necesita una forma no estándar, use un marcador con un relleno de imagen para emular visuales personalizados. + +**¿Se conservan los marcadores al exportar un gráfico a una imagen o SVG?** + +Sí. Al renderizar gráficos a [formatos raster](/slides/es/nodejs-java/convert-powerpoint-to-png/) o al guardar [formas como SVG](/slides/es/nodejs-java/render-a-slide-as-an-svg-image/), los marcadores conservan su apariencia y configuraciones, incluido el tamaño, el relleno y el contorno. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..f88414d1e5 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: Tabla de datos del gráfico +type: docs +url: /es/nodejs-java/chart-data-table/ +--- + +## **Establecer propiedades de fuente para la tabla de datos del gráfico** + +Aspose.Slides for Node.js a través de Java ofrece soporte para cambiar el color de las categorías en el color de una serie. + +1. Instanciar el objeto de clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Añadir un gráfico en la diapositiva. +1. Establecer la tabla del gráfico. +1. Establecer la altura de la fuente. +1. Guardar la presentación modificada. + +A continuación se muestra un ejemplo. +```javascript +// Creando una presentación vacía +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Puedo mostrar pequeñas claves de leyenda junto a los valores en la tabla de datos del gráfico?** + +Sí. La tabla de datos admite [claves de leyenda](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/), y puedes activarlas o desactivarlas. + +**¿Se conservará la tabla de datos al exportar la presentación a PDF, HTML o imágenes?** + +Sí. Aspose.Slides renderiza el gráfico como parte de la diapositiva, por lo que el [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/es/nodejs-java/convert-powerpoint-to-html/)/[imagen](/slides/es/nodejs-java/convert-powerpoint-to-png/) exportado incluye el gráfico con su tabla de datos. + +**¿Se admiten tablas de datos para gráficos que provienen de un archivo de plantilla?** + +Sí. Para cualquier gráfico cargado desde una presentación o plantilla existente, puedes comprobar y cambiar si una tabla de datos [se muestra](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) usando las propiedades del gráfico. + +**¿Cómo puedo encontrar rápidamente qué gráficos en un archivo tienen la tabla de datos habilitada?** + +Examina la propiedad de cada gráfico que indica si la tabla de datos [se muestra](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) e itera a través de las diapositivas para identificar los gráficos donde está habilitada. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..f81763abcb --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,113 @@ +--- +title: Leyenda del gráfico +type: docs +url: /es/nodejs-java/chart-legend/ +--- + +## **Posicionamiento de la leyenda** + +Para establecer las propiedades de la leyenda, siga los pasos a continuación: + +- Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Obtenga una referencia de la diapositiva. +- Agregue un gráfico a la diapositiva. +- Configure las propiedades de la leyenda. +- Guarde la presentación como un archivo PPTX. + +En el ejemplo a continuación, hemos establecido la posición y el tamaño de la leyenda del gráfico. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtener referencia de la diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadir un gráfico de columnas agrupadas en la diapositiva + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // Establecer propiedades de la leyenda + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // Guardar la presentación en disco + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer el tamaño de fuente de la leyenda** + +Aspose.Slides para Node.js mediante Java permite a los desarrolladores establecer el tamaño de fuente de la leyenda. Siga los pasos a continuación: + +- Instancie la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Cree el gráfico predeterminado. +- Establezca el tamaño de fuente. +- Establezca el valor mínimo del eje. +- Establezca el valor máximo del eje. +- Guarde la presentación en disco. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer el tamaño de fuente de la leyenda individual** + +Aspose.Slides para Node.js mediante Java permite a los desarrolladores establecer el tamaño de fuente de las entradas individuales de la leyenda. Siga los pasos a continuación: + +- Instancie la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Cree el gráfico predeterminado. +- Acceda a la entrada de la leyenda. +- Establezca el tamaño de fuente. +- Establezca el valor mínimo del eje. +- Establezca el valor máximo del eje. +- Guarde la presentación en disco. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Puedo habilitar la leyenda para que el gráfico reserve automáticamente espacio para ella en lugar de superponerse?** + +Sí. Use el modo sin superposición ([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/)); en este caso, el área del gráfico se reducirá para acomodar la leyenda. + +**¿Puedo crear etiquetas de leyenda de varias líneas?** + +Sí. Las etiquetas largas se ajustan automáticamente cuando el espacio es insuficiente; los saltos de línea forzados se admiten mediante caracteres de nueva línea en el nombre de la serie. + +**¿Cómo hago que la leyenda siga el esquema de colores del tema de la presentación?** + +No establezca colores, rellenos o fuentes explícitos para la leyenda o su texto. De ese modo heredarán del tema y se actualizarán correctamente cuando cambie el diseño. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..01a1963c32 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: Área de trazado del gráfico +type: docs +url: /es/nodejs-java/chart-plot-area/ +--- + +## **Obtener ancho, altura del área de trazado del gráfico** + +Aspose.Slides for Node.js via Java proporciona una API simple para . + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Acceda a la primera diapositiva. +3. Agregue un gráfico con datos predeterminados. +4. Llame al método [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) antes de obtener los valores reales. +5. Obtiene la ubicación X real (izquierda) del elemento del gráfico relativa a la esquina superior izquierda del gráfico. +6. Obtiene la posición superior real del elemento del gráfico relativa a la esquina superior izquierda del gráfico. +7. Obtiene el ancho real del elemento del gráfico. +8. Obtiene la altura real del elemento del gráfico. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer modo de diseño del área de trazado del gráfico** + +Aspose.Slides for Node.js via Java proporciona una API simple para establecer el modo de diseño del área de trazado del gráfico. Los métodos [**setLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#setLayoutTargetType-int-) y [**getLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#getLayoutTargetType--) se han añadido a la clase [**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea) y a la clase [**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea). Si el diseño del área de trazado se define manualmente, esta propiedad especifica si se diseña el área de trazado por su interior (sin incluir los ejes y las etiquetas de los ejes) o por su exterior (incluyendo los ejes y las etiquetas de los ejes). Hay dos valores posibles que se definen en el enum [**LayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType). + +- [**LayoutTargetType.Inner**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Inner) - especifica que el tamaño del área de trazado determina el tamaño del área de trazado, sin incluir las marcas de graduación y las etiquetas de los ejes. +- [**LayoutTargetType.Outer**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Outer) - especifica que el tamaño del área de trazado determina el tamaño del área de trazado, las marcas de graduación y las etiquetas de los ejes. + +Se muestra el código de ejemplo a continuación. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿En qué unidades se devuelven X real, Y real, ancho real y altura real?** + +En puntos; 1 pulgada = 72 puntos. Estas son unidades de coordenadas de Aspose.Slides. + +**¿En qué se diferencia el área de trazado del área del gráfico en cuanto al contenido?** + +El área de trazado es la región donde se dibujan los datos (series, líneas de cuadrícula, líneas de tendencia, etc.); el área del gráfico incluye los elementos circundantes (título, leyenda, etc.). En gráficos 3D, el área de trazado también incluye las paredes/suelo y los ejes. + +**¿Cómo se interpretan X, Y, ancho y altura del área de trazado cuando el diseño es manual?** + +Son fracciones (0–1) del tamaño total del gráfico; en este modo, el posicionamiento automático está deshabilitado y se utilizan las fracciones que usted establezca. + +**¿Por qué cambió la posición del área de trazado después de agregar/mover la leyenda?** + +La leyenda se encuentra en el área del gráfico fuera del área de trazado, pero afecta el diseño y el espacio disponible, por lo que el área de trazado puede desplazarse cuando el posicionamiento automático está activo. (Este es el comportamiento estándar de los gráficos de PowerPoint.) \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..5b2ed16368 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,336 @@ +--- +title: Series de gráfico +type: docs +url: /es/nodejs-java/chart-series/ +keywords: "Series de gráfico, color de series, presentación PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "Series de gráfico en presentaciones PowerPoint en JavaScript" +--- + +Una serie es una fila o columna de números trazados en un gráfico. + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **Establecer superposición de series de gráfico** + +Con el método [ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap) puede especificar cuánto deben superponerse las barras y columnas en un gráfico 2D (rango: -100 a 100). Esta propiedad se aplica a todas las series del grupo de series principal: es una proyección de la propiedad de grupo correspondiente. Por lo tanto, esta propiedad es de solo lectura. + +Utilice la propiedad de lectura/escritura `ParentSeriesGroup.getOverlap` para establecer el valor preferido de `Overlap`. + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Añada un gráfico de columnas agrupadas en una diapositiva. +1. Acceda a la primera serie del gráfico. +1. Acceda al `ParentSeriesGroup` de la serie del gráfico y establezca el valor de superposición que desee para la serie. +1. Guarde la presentación modificada en un archivo PPTX. + +Este código JavaScript le muestra cómo establecer la superposición para una serie de gráfico: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Añade el gráfico + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // Establece la superposición de la serie + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // Escribe el archivo de presentación en disco + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Cambiar el color de la serie** + +Aspose.Slides para Node.js a través de Java le permite cambiar el color de una serie de la siguiente manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Añada un gráfico en la diapositiva. +1. Acceda a la serie cuyo color desea cambiar. +1. Establezca el tipo de relleno y el color de relleno que prefiera. +1. Guarde la presentación modificada. + +Este código JavaScript le muestra cómo cambiar el color de una serie: +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Cambiar el color de la categoría de la serie** + +Aspose.Slides para Node.js a través de Java le permite cambiar el color de la categoría de una serie de la siguiente manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Añada un gráfico en la diapositiva. +1. Acceda a la categoría de la serie cuyo color desea cambiar. +1. Establezca el tipo de relleno y el color de relleno que prefiera. +1. Guarde la presentación modificada. + +Este código JavaScript le muestra cómo cambiar el color de la categoría de una serie: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Cambiar el nombre de la serie** + +Por defecto, los nombres de la leyenda de un gráfico son el contenido de las celdas situadas encima de cada columna o fila de datos. + +En nuestro ejemplo (imagen de muestra): + +* las columnas son *Series 1, Series 2,* y *Series 3*; +* las filas son *Category 1, Category 2, Category 3,* y *Category 4.* + +Aspose.Slides para Node.js a través de Java le permite actualizar o cambiar el nombre de una serie en sus datos de gráfico y en la leyenda. + +Este código JavaScript le muestra cómo cambiar el nombre de una serie en sus datos de gráfico `ChartDataWorkbook`: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Este código JavaScript le muestra cómo cambiar el nombre de una serie en su leyenda mediante `Series`: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer color de relleno de la serie de gráfico** + +Aspose.Slides para Node.js a través de Java le permite establecer el color de relleno automático para series de gráfico dentro del área de trazado de la siguiente manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtenga una referencia a una diapositiva por su índice. +1. Añada un gráfico con datos predeterminados según el tipo que prefiera (en el ejemplo siguiente, usamos `ChartType.ClusteredColumn`). +1. Acceda a la serie del gráfico y establezca el color de relleno en Automático. +1. Guarde la presentación en un archivo PPTX. + +Este código JavaScript le muestra cómo establecer el color de relleno automático para una serie de gráfico: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Crea un gráfico de columnas agrupadas + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // Establece el formato de relleno de la serie a automático + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // Escribe el archivo de presentación en disco + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer colores de relleno invertidos para la serie de gráfico** + +Aspose.Slides le permite establecer el color de relleno invertido para series de gráfico dentro del área de trazado de la siguiente manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtenga una referencia a una diapositiva por su índice. +1. Añada un gráfico con datos predeterminados según el tipo que prefiera (en el ejemplo siguiente, usamos `ChartType.ClusteredColumn`). +1. Acceda a la serie del gráfico y establezca el color de relleno en invertido. +1. Guarde la presentación en un archivo PPTX. + +Este código JavaScript demuestra la operación: +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // Agrega nuevas series y categorías + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // Toma la primera serie del gráfico y rellena sus datos de serie. + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Invertir la serie cuando el valor es negativo** + +Aspose.Slides le permite establecer la inversión mediante el método `ChartDataPoint.setInvertIfNegative`. Cuando se establece una inversión mediante las propiedades, el punto de datos invierte sus colores al obtener un valor negativo. + +Este código JavaScript demuestra la operación: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Borrar los datos de los puntos de datos específicos** + +Aspose.Slides para Node.js a través de Java le permite borrar los datos de `DataPoints` para una serie de gráfico específica de la siguiente manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenga la referencia de una diapositiva mediante su índice. +3. Obtenga la referencia de un gráfico mediante su índice. +4. Recorra todos los `DataPoints` del gráfico y establezca `XValue` y `YValue` en null. +5. Borre todos los `DataPoints` de la serie de gráfico específica. +6. Guarde la presentación modificada en un archivo PPTX. + +Este código JavaScript demuestra la operación: +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer ancho de separación de la serie** + +Aspose.Slides para Node.js a través de Java le permite establecer el ancho de separación de una serie mediante la propiedad **`GapWidth`** de la siguiente manera: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Acceda a la primera diapositiva. +1. Añada un gráfico con datos predeterminados. +1. Acceda a cualquier serie del gráfico. +1. Establezca la propiedad `GapWidth`. +1. Guarde la presentación modificada en un archivo PPTX. + +Este código JavaScript le muestra cómo establecer el ancho de separación de una serie: +```javascript +// Crea una presentación vacía +var pres = new aspose.slides.Presentation(); +try { + // Accede a la primera diapositiva de la presentación + var slide = pres.getSlides().get_Item(0); + // Añade un gráfico con datos predeterminados + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // Establece el índice de la hoja de datos del gráfico + var defaultWorksheetIndex = 0; + // Obtiene la hoja de cálculo de datos del gráfico + var fact = chart.getChartData().getChartDataWorkbook(); + // Añade series + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Añade categorías + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Obtiene la segunda serie del gráfico + var series = chart.getChartData().getSeries().get_Item(1); + // Rellena los datos de la serie + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Establece el valor de GapWidth + series.getParentSeriesGroup().setGapWidth(50); + // Guarda la presentación en disco + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Existe un límite en la cantidad de series que puede contener un solo gráfico?** + +Aspose.Slides no impone un límite fijo al número de series que añada. El techo práctico está determinado por la legibilidad del gráfico y por la memoria disponible para su aplicación. + +**¿Qué pasa si las columnas dentro de un grupo están demasiado juntas o demasiado separadas?** + +Ajuste la configuración de **Gap Width** para esa serie (o su grupo de series principal). Incrementar el valor amplía el espacio entre columnas, mientras que reducirlo las acerca más. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..b53d2b5d57 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: Barra de error +type: docs +url: /es/nodejs-java/error-bar/ +--- + +## **Agregar barra de error** + +Aspose.Slides para Node.js a través de Java proporciona una API sencilla para administrar los valores de las barras de error. El código de ejemplo se aplica al usar un tipo de valor personalizado. Para especificar un valor, use la propiedad **ErrorBarCustomValues** de un punto de datos específico en la colección [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) de la serie: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Agregue un gráfico de burbujas en la diapositiva deseada. +1. Acceda a la primera serie del gráfico y establezca el formato de la barra de error X. +1. Acceda a la primera serie del gráfico y establezca el formato de la barra de error Y. +1. Establezca los valores y el formato de las barras. +1. Guarde la presentación modificada en un archivo PPTX. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Crear un gráfico de burbujas + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Agregar barras de error y establecer su formato + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // Guardar la presentación + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar valor de barra de error personalizada** + +Aspose.Slides para Node.js a través de Java proporciona una API sencilla para administrar valores de barras de error personalizados. El código de ejemplo se aplica cuando la propiedad [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) es igual a **Custom**. Para especificar un valor, use la propiedad **ErrorBarCustomValues** de un punto de datos específico en la colección [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) de la serie: + +1. Cree una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Agregue un gráfico de burbujas en la diapositiva deseada. +1. Acceda a la primera serie del gráfico y establezca el formato de la barra de error X. +1. Acceda a la primera serie del gráfico y establezca el formato de la barra de error Y. +1. Acceda a los puntos de datos individuales de la serie del gráfico y establezca los valores de la barra de error para cada punto de datos de la serie. +1. Establezca los valores y el formato de las barras. +1. Guarde la presentación modificada en un archivo PPTX. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Creando un gráfico de burbujas + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Añadiendo barras de error personalizadas y estableciendo su formato + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // Accediendo al punto de datos de la serie del gráfico y estableciendo los valores de las barras de error para + // punto individual + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // Estableciendo barras de error para los puntos de la serie del gráfico + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // Guardando la presentación + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Qué ocurre con las barras de error al exportar una presentación a PDF o imágenes?** + +Se renderizan como parte del gráfico y se conservan durante la conversión junto con el resto del formato del gráfico, siempre que se utilice una versión o motor compatible. + +**¿Se pueden combinar las barras de error con marcadores y etiquetas de datos?** + +Sí. Las barras de error son un elemento independiente y son compatibles con marcadores y etiquetas de datos; si los elementos se superponen, es posible que deba ajustar el formato. + +**¿Dónde puedo encontrar la lista de propiedades y enumeraciones para trabajar con barras de error en la API?** + +En la referencia de la API: la clase [ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) y los enums relacionados [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) y [ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/). \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..f308b23fd6 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: Línea de tendencia +type: docs +url: /es/nodejs-java/trend-line/ +--- + +## **Agregar línea de tendencia** + +Aspose.Slides for Node.js a través de Java proporciona una API sencilla para administrar diferentes líneas de tendencia de gráficos: + +1. Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtener la referencia de una diapositiva por su índice. +1. Agregar un gráfico con datos predeterminados junto con cualquiera de los tipos deseados (este ejemplo usa ChartType.ClusteredColumn). +1. Añadiendo línea de tendencia exponencial para la serie 1 del gráfico. +1. Añadiendo línea de tendencia lineal para la serie 1 del gráfico. +1. Añadiendo línea de tendencia logarítmica para la serie 2 del gráfico. +1. Añadiendo línea de tendencia de promedio móvil para la serie 2 del gráfico. +1. Añadiendo línea de tendencia polinómica para la serie 3 del gráfico. +1. Añadiendo línea de tendencia de potencia para la serie 3 del gráfico. +1. Guardar la presentación modificada en un archivo PPTX. + +El siguiente código se usa para crear un gráfico con líneas de tendencia. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Crear un gráfico de columnas agrupadas + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // Agregar línea de tendencia exponencial para la serie 1 del gráfico + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // Agregar línea de tendencia lineal para la serie 1 del gráfico + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Agregar línea de tendencia logarítmica para la serie 2 del gráfico + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // Agregar línea de tendencia de promedio móvil para la serie 2 del gráfico + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // Agregar línea de tendencia polinómica para la serie 3 del gráfico + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // Agregar línea de tendencia de potencia para la serie 3 del gráfico + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // Guardar la presentación + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Agregar línea personalizada** + +Aspose.Slides for Node.js a través de Java proporciona una API sencilla para agregar líneas personalizadas en un gráfico. Para agregar una línea simple y plana a una diapositiva seleccionada de la presentación, siga los pasos a continuación: + +- Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) +- Obtener la referencia de una diapositiva usando su Índice +- Crear un nuevo gráfico usando el método AddChart expuesto por el objeto Shapes +- Agregar una AutoShape de tipo Línea usando el método AddAutoShape expuesto por el objeto Shapes +- Establecer el Color de las líneas de la forma. +- Guardar la presentación modificada como un archivo PPTX + +El siguiente código se usa para crear un gráfico con líneas personalizadas. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Qué significan 'forward' y 'backward' para una línea de tendencia?** + +Son las longitudes de la línea de tendencia proyectadas hacia adelante/atrás: para gráficos de dispersión (XY) — en unidades del eje; para gráficos que no son de dispersión — en número de categorías. Sólo se permiten valores no negativos. + +**¿Se conserva la línea de tendencia al exportar la presentación a PDF o SVG, o al renderizar una diapositiva como imagen?** + +Sí. Aspose.Slides convierte presentaciones a [PDF](/slides/es/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/es/nodejs-java/render-a-slide-as-an-svg-image/) y renderiza gráficos a imágenes; las líneas de tendencia, como parte del gráfico, se conservan durante estas operaciones. También hay un método disponible para [exportar una imagen del gráfico](/slides/es/nodejs-java/create-shape-thumbnails/). \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..152ba3e048 --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,326 @@ +--- +title: Formato de Gráficos +type: docs +weight: 60 +url: /es/nodejs-java/chart-formatting/ +--- + +## **Formato de entidades de gráfico** + +Aspose.Slides for Node.js via Java permite a los desarrolladores agregar gráficos personalizados a sus diapositivas desde cero. Este artículo explica cómo dar formato a diferentes entidades de gráficos, incluyendo el eje de categoría y el eje de valores. + +1. Crear una instancia de la clase [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Obtener la referencia de una diapositiva por su índice. +1. Añadir un gráfico con datos predeterminados junto con cualquier tipo deseado (en este ejemplo usaremos ChartType.LineWithMarkers). +1. Acceder al eje de valores del gráfico y establecer las siguientes propiedades: + 1. Configurar **Line format** para las líneas de cuadrícula principales del eje de valores + 1. Configurar **Line format** para las líneas de cuadrícula menores del eje de valores + 1. Configurar **Number Format** para el eje de valores + 1. Configurar **Min, Max, Major and Minor units** para el eje de valores + 1. Configurar **Text Properties** para los datos del eje de valores + 1. Configurar **Title** para el eje de valores + 1. Configurar **Line Format** para el eje de valores +1. Acceder al eje de categoría del gráfico y establecer las siguientes propiedades: + 1. Configurar **Line format** para las líneas de cuadrícula principales del eje de categoría + 1. Configurar **Line format** para las líneas de cuadrícula menores del eje de categoría + 1. Configurar **Text Properties** para los datos del eje de categoría + 1. Configurar **Title** para el eje de categoría + 1. Configurar **Label Positioning** para el eje de categoría + 1. Configurar **Rotation Angle** para las etiquetas del eje de categoría +1. Acceder a la leyenda del gráfico y configurar las **Text Properties** para ella +1. Configurar la visualización de leyendas del gráfico sin que se superpongan al gráfico +1. Acceder al **Secondary Value Axis** del gráfico y establecer las siguientes propiedades: + 1. Habilitar el **Value Axis** secundario + 1. Configurar **Line Format** para el **Secondary Value Axis** + 1. Configurar **Number Format** para el **Secondary Value Axis** + 1. Configurar **Min, Max, Major and Minor units** para el **Secondary Value Axis** +1. Ahora trazar la primera serie del gráfico en el **Secondary Value Axis** +1. Establecer el color de relleno del fondo posterior del gráfico +1. Establecer el color de relleno del área de trazado del gráfico +1. Guardar la presentación modificada en un archivo PPTX +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Accediendo a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadiendo el gráfico de ejemplo + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // Estableciendo el título del gráfico + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Estableciendo el formato de líneas de cuadrícula mayores para el eje de valores + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Estableciendo el formato de líneas de cuadrícula menores para el eje de valores + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Estableciendo el formato numérico del eje de valores + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // Estableciendo los valores máximos y mínimos del gráfico + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // Estableciendo las propiedades de texto del eje de valores + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Estableciendo el título del eje de valores + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Estableciendo el formato de líneas de cuadrícula mayores para el eje de categoría + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // Estableciendo el formato de líneas de cuadrícula menores para el eje de categoría + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Estableciendo las propiedades de texto del eje de categoría + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // Estableciendo el título de la categoría + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Estableciendo la posición de la etiqueta del eje de categoría + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // Estableciendo el ángulo de rotación de la etiqueta del eje de categoría + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // Estableciendo las propiedades de texto de las leyendas + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // Establecer mostrar leyendas del gráfico sin superponerse al gráfico + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // Estableciendo el eje de valores secundario + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // Estableciendo el formato numérico del eje de valores secundario + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // Estableciendo los valores máximos y mínimos del gráfico + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // Estableciendo el color de la pared trasera del gráfico + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Estableciendo el color del área de trazado + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // Guardar presentación + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer propiedades de fuente para el gráfico** + +Aspose.Slides for Node.js via Java proporciona soporte para establecer las propiedades relacionadas con la fuente del gráfico. Siga los pasos a continuación para establecer las propiedades de fuente para el gráfico. + +- Instanciar un objeto de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) . +- Añadir un gráfico en la diapositiva. +- Establecer la altura de la fuente. +- Guardar la presentación modificada. + +A continuación se muestra un ejemplo de muestra. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Establecer formato de numéricos** + +Aspose.Slides for Node.js via Java proporciona una API simple para gestionar el formato de datos del gráfico: + +1. Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +1. Obtener la referencia de una diapositiva por su índice. +1. Añadir un gráfico con datos predeterminados junto con cualquier tipo deseado (este ejemplo usa **ChartType.ClusteredColumn**). +1. Establecer el formato numérico predefinido a partir de los valores predefinidos posibles. +1. Recorrer la celda de datos del gráfico en cada serie y establecer el formato numérico de los datos del gráfico. +1. Guardar la presentación. +1. Establecer el formato numérico personalizado. +1. Recorrer la celda de datos del gráfico dentro de cada serie y establecer un formato numérico diferente. +1. Guardar la presentación. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + // Acceder a la primera diapositiva de la presentación + var slide = pres.getSlides().get_Item(0); + // Añadir un gráfico de columnas agrupadas predeterminado + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // Acceder a la colección de series del gráfico + var series = chart.getChartData().getSeries(); + // Recorrer cada serie del gráfico + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // Recorrer cada celda de datos en la serie + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // Establecer el formato numérico + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // Guardar la presentación + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Los posibles valores de formato numérico predefinidos junto con su índice y que pueden usarse se muestran a continuación: + +|**0**|General| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **Establecer bordes redondeados en el área del gráfico** + +Aspose.Slides for Node.js via Java proporciona soporte para establecer el área del gráfico. Los métodos [**hasRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#hasRoundedCorners--) y [**setRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#setRoundedCorners-boolean-) se han añadido a la clase [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart) . + +1. Instanciar un objeto de la clase [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +1. Añadir un gráfico en la diapositiva. +1. Establecer el tipo de relleno y el color de relleno del gráfico +1. Establecer la propiedad de esquina redondeada a True. +1. Guardar la presentación modificada. + +A continuación se muestra un ejemplo de muestra. +```javascript +// Crear una instancia de la clase Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Preguntas frecuentes** + +**¿Puedo establecer rellenos semitransparentes para columnas/áreas manteniendo el borde opaco?** + +Sí. La transparencia del relleno y el contorno se configuran por separado. Esto es útil para mejorar la legibilidad de la cuadrícula y los datos en visualizaciones densas. + +**¿Cómo puedo manejar las etiquetas de datos cuando se superponen?** + +Reduzca el tamaño de la fuente, desactive los componentes de etiqueta no esenciales (por ejemplo, categorías), establezca el desplazamiento/posición de la etiqueta, muestre etiquetas solo para los puntos seleccionados si es necesario, o cambie el formato a "valor + leyenda". + +**¿Puedo aplicar rellenos degradados o de patrón a las series?** + +Sí. Tanto los rellenos sólidos como los degradados/patrón suelen estar disponibles. En la práctica, use degradados con moderación y evite combinaciones que reduzcan el contraste con la cuadrícula y el texto. \ No newline at end of file diff --git a/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..e27676883c --- /dev/null +++ b/es/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: Gráfico 3D +type: docs +url: /es/nodejs-java/3d-chart/ +--- + +## **Establecer las propiedades RotationX, RotationY y DepthPercents de un gráfico 3D** + +Aspose.Slides para Node.js a través de Java ofrece una API sencilla para configurar estas propiedades. El siguiente artículo le ayudará a establecer diferentes propiedades como **Rotación X,Y, DepthPercents**, etc. El código de ejemplo aplica la configuración de las propiedades mencionadas. + +1. Cree una instancia de la [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) clase. +1. Acceda a la primera diapositiva. +1. Añada un gráfico con datos predeterminados. +1. Establezca las propiedades Rotation3D. +1. Grabe la presentación modificada en un archivo PPTX. +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Acceder a la primera diapositiva + var slide = pres.getSlides().get_Item(0); + // Añadir gráfico con datos predeterminados + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // Establecer el índice de la hoja de datos del gráfico + var defaultWorksheetIndex = 0; + // Obtener la hoja de datos del gráfico + var fact = chart.getChartData().getChartDataWorkbook(); + // Añadir series + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Añadir categorías + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Establecer propiedades Rotation3D + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // Tomar la segunda serie del gráfico + var series = chart.getChartData().getSeries().get_Item(1); + // Ahora poblando los datos de la serie + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Establecer valor de Superposición + series.getParentSeriesGroup().setOverlap(100); + // Guardar la presentación en disco + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**¿Qué tipos de gráfico admiten el modo 3D en Aspose.Slides?** + +Aspose.Slides admite variantes 3D de gráficos de columnas, incluidos Column 3D, Clustered Column 3D, Stacked Column 3D y 100% Stacked Column 3D, junto con tipos 3D relacionados expuestos a través de la enumeración [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/). Para obtener una lista exacta y actualizada, consulte los miembros de [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) en la referencia de la API de la versión que tenga instalada. + +**¿Puedo obtener una imagen rasterizada de un gráfico 3D para un informe o la web?** + +Sí. Puede exportar un gráfico a una imagen mediante la [chart API](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage) o [render the entire slide](/slides/es/nodejs-java/convert-powerpoint-to-png/) a formatos como PNG o JPEG. Esto resulta útil cuando necesita una vista previa exacta pixel a pixel o desea incrustar el gráfico en documentos, paneles de control o páginas web sin requerir PowerPoint. + +**¿Qué tan eficaz es la creación y renderizado de gráficos 3D grandes?** + +El rendimiento depende del volumen de datos y la complejidad visual. Para obtener los mejores resultados, mantenga los efectos 3D al mínimo, evite texturas pesadas en paredes y áreas de trazado, limite la cantidad de puntos de datos por serie siempre que sea posible y renderice a un tamaño de salida adecuado (resolución y dimensiones) que coincida con la pantalla o las necesidades de impresión del destino. \ No newline at end of file diff --git a/es/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/es/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index e3b3688b5a..a16e74200c 100644 --- a/es/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/es/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -6,22 +6,22 @@ weight: 100 url: /es/python-net/presentation-localization/ keywords: - cambiar idioma -- revisión ortográfica +- corrector ortográfico - identificador de idioma - PowerPoint - presentación - Python - Aspose.Slides -description: "Automatiza la localización de diapositivas de PowerPoint y OpenDocument en Python con Aspose.Slides, utilizando ejemplos de código prácticos y consejos para un despliegue global más rápido." +description: "Automatiza la localización de diapositivas PowerPoint y OpenDocument en Python con Aspose.Slides, utilizando ejemplos de código prácticos y consejos para un despliegue global más rápido." --- -## **Cambiar el idioma para la presentación y el texto de la forma** +## **Cambiar el idioma del texto de la presentación y de la forma** - Crear una instancia de la clase [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/). -- Obtener la referencia de una diapositiva usando su índice. -- Agregar una AutoShape de tipo Rectángulo a la diapositiva. -- Agregar texto al TextFrame. -- Establecer Language Id en el texto. -- Guardar la presentación como un archivo PPTX. +- Obtener la referencia de una diapositiva usando su Índice. +- Añadir un AutoShape de tipo Rectángulo a la diapositiva. +- Añadir texto al TextFrame. +- Establecer el Language Id en el texto. +- Guardar la presentación como archivo PPTX. La implementación de los pasos anteriores se muestra a continuación en un ejemplo. ```py @@ -38,14 +38,14 @@ with slides.Presentation("pres.pptx") as pres: ## **Preguntas frecuentes** -**¿language_id activa la traducción automática del texto?** +**¿El Language ID activa la traducción automática del texto?** -No. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) en Aspose.Slides almacena el idioma para la corrección ortográfica y gramatical, pero no traduce ni cambia el contenido del texto. Es metadatos que PowerPoint entiende para la revisión. +No. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) en Aspose.Slides almacena el idioma para la corrección ortográfica y la prueba gramatical, pero no traduce ni modifica el contenido del texto. Es metadatos que PowerPoint entiende para la revisión. -**¿language_id afecta la separación silábica y los saltos de línea durante la renderización?** +**¿Afecta el Language ID a la separación silábica y los saltos de línea durante el renderizado?** -En Aspose.Slides, [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) se utiliza para la revisión. La calidad de la separación silábica y el ajuste de línea dependen principalmente de la disponibilidad de [proper fonts](/slides/es/python-net/powerpoint-fonts/) y de la configuración de diseño/salto de línea para el sistema de escritura. Para garantizar una renderización correcta, haga que las fuentes necesarias estén disponibles, configure [font substitution rules](/slides/es/python-net/font-substitution/) y/o [embed fonts](/slides/es/python-net/embedded-font/) en la presentación. +En Aspose.Slides, [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) se utiliza para la revisión. La calidad de la separación silábica y el ajuste de líneas dependen principalmente de la disponibilidad de [fuentes adecuadas](/slides/es/python-net/powerpoint-fonts/) y de la configuración de diseño/saltos de línea para el sistema de escritura. Para garantizar un renderizado correcto, asegúrese de que las fuentes necesarias estén disponibles, configure [reglas de sustitución de fuentes](/slides/es/python-net/font-substitution/) y/o [incorpore fuentes](/slides/es/python-net/embedded-font/) en la presentación. -**¿Puedo establecer diferentes idiomas dentro de un solo párrafo?** +**¿Puedo establecer diferentes idiomas dentro de un mismo párrafo?** -Sí. [language_id] se aplica a nivel de porción de texto, por lo que un solo párrafo puede mezclar varios idiomas con distintas configuraciones de revisión. \ No newline at end of file +Sí. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) se aplica a nivel de porción de texto, por lo que un solo párrafo puede combinar varios idiomas con configuraciones de revisión distintas. diff --git a/fr/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/fr/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 2aef6fc61e..af5702f7f5 100644 --- a/fr/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/fr/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -3,19 +3,19 @@ title: Localisation de la présentation type: docs weight: 100 url: /fr/net/presentation-localization/ -keywords: "Modifier la langue, Vérification orthographique, Vérification orthographique, Vérificateur d'orthographe, Présentation PowerPoint, C#, Csharp, Aspose.Slides pour .NET" -description: "Changer ou vérifier la langue dans une présentation PowerPoint. Vérifier l'orthographe du texte en C# ou .NET" +keywords: "Modifier la langue, Vérification orthographique, Vérification orthographique, Correcteur orthographique, Présentation PowerPoint, C#, Csharp, Aspose.Slides pour .NET" +description: "Modifier ou vérifier la langue dans une présentation PowerPoint. Vérifier l'orthographe du texte en C# ou .NET" --- -## **Modifier la langue du texte de la présentation et de la forme** -- Créer une instance de la classe [Présentation](https://reference.aspose.com/slides/net/aspose.slides/presentation). -- Obtenir la référence d’une diapositive en utilisant son Index. -- Ajouter une AutoShape de type Rectangle à la diapositive. -- Ajouter du texte au TextFrame. -- Définir l’Id de langue du texte. -- Enregistrer la présentation au format PPTX. +## **Modifier la langue pour la présentation et le texte de la forme** +- Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation). +- Obtenez la référence d’une diapositive en utilisant son Index. +- Ajoutez une AutoShape de type Rectangle à la diapositive. +- Ajoutez du texte au TextFrame. +- Définissez LanguageId sur le texte. +- Enregistrez la présentation au format PPTX. -L’implémentation des étapes ci‑dessus est illustrée ci‑après dans un exemple. +L'implémentation des étapes ci‑dessus est démontrée ci‑dessous dans un exemple. ```c# using (Presentation pres = new Presentation("test0.pptx")) { @@ -30,14 +30,14 @@ using (Presentation pres = new Presentation("test0.pptx")) ## **FAQ** -**Le language_id déclenche-t-il une traduction automatique du texte ?** +**Le LanguageId déclenche-t-il une traduction automatique du texte ?** -Non. [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) dans Aspose.Slides stocke la langue pour la vérification orthographique et la correction grammaticale, mais il ne traduit pas et ne modifie pas le contenu du texte. Il s’agit de métadonnées que PowerPoint comprend pour la révision. +Non. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) dans Aspose.Slides stocke la langue pour la vérification orthographique et la correction grammaticale, mais il ne traduit pas et ne modifie pas le contenu du texte. Il s'agit de métadonnées que PowerPoint comprend pour la révision. -**Le language_id affecte-t-il la césure et les sauts de ligne lors du rendu ?** +**Le LanguageId affecte-t-il l'hyphenation et les sauts de ligne lors du rendu ?** -Dans Aspose.Slides, [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) sert à la révision. La qualité de la césure et le passage à la ligne dépendent principalement de la disponibilité de [polices appropriées](/slides/fr/net/powerpoint-fonts/) et des paramètres de mise en page/coupure de ligne pour le système d’écriture. Pour garantir un rendu correct, assurez‑vous que les polices requises sont disponibles, configurez les [règles de substitution de polices](/slides/fr/net/font-substitution/), et/ou [intégrez les polices](/slides/fr/net/embedded-font/) dans la présentation. +Dans Aspose.Slides, [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) sert à la révision. La qualité de l'hyphenation et le passage à la ligne dépendent principalement de la disponibilité des [polices appropriées](/slides/fr/net/powerpoint-fonts/) et des paramètres de mise en page/passage à la ligne du système d'écriture. Pour garantir un rendu correct, rendez les polices nécessaires disponibles, configurez les [règles de substitution de polices](/slides/fr/net/font-substitution/), et/ou [intégrez les polices](/slides/fr/net/embedded-font/) dans la présentation. -**Puis-je définir différentes langues au sein d’un même paragraphe ?** +**Puis-je définir différentes langues au sein d'un même paragraphe ?** -Oui. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) est appliqué au niveau de chaque portion de texte, de sorte qu’un même paragraphe peut mêler plusieurs langues avec des paramètres de révision distincts. \ No newline at end of file +Oui. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) s'applique au niveau de la portion de texte, de sorte qu'un même paragraphe peut mélanger plusieurs langues avec des paramètres de révision distincts. diff --git a/fr/nodejs-java/developer-guide/3d-presentation/_index.md b/fr/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..de0751c582 --- /dev/null +++ b/fr/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,225 @@ +--- +title: Présentation 3D +type: docs +weight: 232 +url: /fr/nodejs-java/3d-presentation/ +--- + +## **Aperçu** + +Depuis Aspose.Slides for Java 20.9, il est possible de créer du 3D dans les présentations. PowerPoint 3D est un moyen de donner vie aux présentations. Montrez des objets du monde réel avec une présentation 3D, démontrez le modèle 3D de votre futur projet d’entreprise, le modèle 3D du bâtiment ou de son intérieur, le modèle 3D du personnage de jeu, ou simplement une représentation 3D de vos données. + +Les modèles 3D PowerPoint peuvent être créés à partir de formes 2D, en appliquant des effets tels que : rotation 3D, profondeur et extrusion 3D, dégradé 3D, texte 3D, etc. La liste des fonctionnalités 3D appliquées aux formes se trouve dans la classe **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. L’instance de la classe peut être obtenue : + +- Méthode **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** pour créer un modèle 3D PowerPoint. +- Méthode **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** pour créer du texte 3D (WordArt). + +Tous les effets implémentés dans **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** peuvent être utilisés tant pour les formes que pour le texte. Jetons un coup d’œil rapide aux principales méthodes de la classe **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. Dans l’exemple suivant, nous créons une forme rectangulaire 2D avec du texte. En obtenant la vue de la caméra sur la forme, nous modifions sa rotation pour la faire apparaître comme un modèle 3D. En définissant une lumière plate et sa direction vers le haut du modèle 3D, nous ajoutons davantage de volume au modèle. Le changement des matériaux, de la hauteur d’extrusion et de la couleur rend le modèle 3D plus vivant. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Voici le modèle 3D résultant : + +![todo:image_alt_text](img_01_01.png) + +## **Rotation 3D** + +La rotation d’un modèle 3D dans PowerPoint peut être effectuée via le menu : + +![todo:image_alt_text](img_02_01.png) + +Pour faire pivoter un modèle 3D avec l’API Aspose.Slides, utilisez la méthode **[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)**, puis définissez la rotation de la caméra par rapport à la forme 3D : +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... définir les autres paramètres de la scène 3D +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **Profondeur et extrusion 3D** + +Les méthodes **[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** et **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** sont utilisées pour créer une extrusion sur la forme : +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); +// ... définir les autres paramètres de la scène 3D +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +Dans PowerPoint, la profondeur de la forme se règle via : + +![todo:image_alt_text](img_02_02.png) + +## **Dégradé 3D** + +Un dégradé 3D peut apporter plus de volume à une forme PowerPoint 3D : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Voici à quoi cela ressemble : + +![todo:image_alt_text](img_02_03.png) + +Vous pouvez également créer un dégradé d’image : +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. configuration 3D : shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* propriétés +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +Voici le résultat : + +![todo:image_alt_text](img_02_04.png) + +## **Texte 3D (WordArt)** + +Pour créer un texte 3D (WordArt), procédez comme suit : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // configurer l'effet de transformation WordArt "Arch Up" + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Voici le résultat : + +![todo:image_alt_text](img_02_05.png) + +## **FAQ** + +**Les effets 3D seront‑ils conservés lors de l’exportation d’une présentation vers des images/PDF/HTML ?** + +Oui. Le moteur 3D de Slides rend les effets 3D lors de l’exportation vers les formats pris en charge ([images](/slides/fr/nodejs-java/convert-powerpoint-to-png/), [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/), [HTML](/slides/fr/nodejs-java/convert-powerpoint-to-html/), etc.). + +**Puis‑je récupérer les valeurs « effectives » (finales) des paramètres 3D qui tiennent compte des thèmes, de l’héritage, etc. ?** + +Oui. Slides fournit des API pour [lire les valeurs effectives](/slides/fr/nodejs-java/shape-effective-properties/) (y compris pour le 3D — éclairage, chapeaux, etc.) afin que vous puissiez voir les paramètres appliqués finalisés. + +**Les effets 3D fonctionnent‑ils lors de la conversion d’une présentation en vidéo ?** + +Oui. Lors de la [génération des images pour la vidéo](/slides/fr/nodejs-java/convert-powerpoint-to-video/), les effets 3D sont rendus de la même façon que pour les [images exportées](/slides/fr/nodejs-java/convert-powerpoint-to-png/). \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..9aa07ef3cb --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: Convertir OpenOffice ODP +type: docs +weight: 10 +url: /fr/nodejs-java/convert-openoffice-odp/ +keywords: "Convertir ODP en PDF, ODP en HTML, ODP en TIFF en JavaScript" +description: "Convertir ODP en PDF, ODP en PPT, ODP en PPTX, ODP en HTML en JavaScript" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) permet de convertir une présentation OpenOffice ODP en de nombreux formats. L'API pour convertir ODP en d'autres formats est la même que pour les types PowerPoint. Vous pouvez utiliser les exemples suivants pour convertir un ODP, en changeant simplement le fichier source de la présentation ODP : + +- [Convertir ODP en HTML](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [Convertir ODP en PDF](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [Convertir ODP en TIFF](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [Convertir ODP en SWF Flash](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [Convertir ODP en XPS](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [Convertir ODP en PDF avec notes](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [Convertir ODP en TIFF avec notes](/slides/fr/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **FAQ** + +**Et si le formatage de mon fichier ODP change après la conversion ?** + +ODP et PowerPoint utilisent des modèles de présentation différents, et certains éléments — comme les tableaux, les polices personnalisées ou les styles de remplissage — peuvent ne pas être rendus exactement de la même façon. Il est recommandé de vérifier le résultat et d’ajuster la mise en page ou le formatage dans le code si nécessaire. + +**Dois-je installer OpenOffice ou LibreOffice pour utiliser la conversion ODP ?** + +Non, Aspose.Slides est une bibliothèque autonome et ne nécessite pas l’installation d’OpenOffice ou de LibreOffice sur votre système. + +**Puis-je personnaliser le format de sortie lors de la conversion ODP (par ex., définir les options PDF) ?** + +Oui, Aspose.Slides offre de nombreuses options pour personnaliser la sortie. Par exemple, lors de l’enregistrement au format PDF, vous pouvez contrôler la compression, la qualité des images, le rendu du texte, et plus encore via la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/). + +**Aspose.Slides convient-il au traitement ODP côté serveur ou basé sur le cloud ?** + +Absolument. Aspose.Slides est conçu pour fonctionner à la fois sur les postes de travail et dans les environnements serveur, y compris les plateformes cloud comme Azure, AWS et les conteneurs Docker, sans aucune dépendance à une interface utilisateur. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..eaec5ce591 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: Convertir ODP en PPTX +type: docs +weight: 10 +url: /fr/nodejs-java/convert-odp-to-pptx/ +--- + +## **Convertir ODP en présentation PPTX/PPT** +Aspose.Slides pour Node.js via Java propose la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui représente un fichier de présentation. La classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) peut désormais également accéder aux fichiers ODP via le constructeur [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) lorsque l'objet est instancié. L'exemple suivant montre comment convertir une présentation ODP en présentation PPTX. +```javascript +// Ouvrir le fichier ODP +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// Enregistrement de la présentation ODP au format PPTX +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Exemple en direct** +Vous pouvez visiter l'application web [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) qui est construite avec **Aspose.Slides API**. L'application montre comment la conversion ODP vers PPTX peut être implémentée avec Aspose.Slides API. + +## **FAQ** + +**Dois-je installer Microsoft PowerPoint ou LibreOffice pour convertir ODP en PPTX ?** + +Non. Aspose.Slides fonctionne de manière autonome et ne nécessite aucune application tierce pour lire ou écrire des fichiers ODP/PPTX. + +**Les diapositives maîtres, les mises en page et les thèmes sont-ils conservés lors de la conversion ?** + +Oui. La bibliothèque utilise un modèle d'objet de présentation complet et conserve la structure, y compris les diapositives maîtres et les mises en page, de sorte que le design reste correct après la conversion. + +**Puis-je convertir des fichiers ODP protégés par mot de passe ?** + +Oui. Aspose.Slides prend en charge la détection de la protection, l'ouverture et le travail avec les [presentations protégées](/slides/fr/nodejs-java/password-protected-presentation/) (y compris ODP) lorsque vous fournissez le mot de passe, ainsi que la configuration du chiffrement et l'accès aux propriétés du document. + +**Aspose.Slides convient-il aux services de conversion cloud ou basés sur REST ?** + +Oui. Vous pouvez utiliser la bibliothèque locale dans votre propre back‑end ou [Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/) (REST API) ; les deux options prennent en charge la conversion ODP → PPTX. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..c0f48d64f2 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,63 @@ +--- +title: Convertir des présentations en mode Handout en JavaScript +type: docs +weight: 150 +url: /fr/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- convertir PowerPoint +- mode Handout +- document de distribution +- PowerPoint +- PPT +- PPTX +- présentation +- Node.js +- JavaScript +- Aspose.Slides +description: "Convertir des présentations en mode Handout en JavaScript" +--- + +## **Exportation du mode Handout** + +Aspose.Slides offre la possibilité de convertir des présentations en différents formats, y compris la création de documents de distribution pour l’impression en mode Handout. Ce mode vous permet de configurer la façon dont plusieurs diapositives apparaissent sur une seule page, ce qui le rend utile pour les conférences, les séminaires et autres événements. Vous pouvez activer ce mode en définissant la méthode `setSlidesLayoutOptions` dans les classes [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) et [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). + +Pour configurer le mode Handout, utilisez l’objet [HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/) qui détermine combien de diapositives sont placées sur une seule page et d’autres paramètres d’affichage. + +Ci-dessous un exemple de code montrant comment convertir une présentation en PDF en mode Handout. +```js +// Charger une présentation. +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// Définir les options d'exportation. +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 4 diapositives sur une page horizontalement +slidesLayoutOptions.setPrintSlideNumbers(true); // imprimer les numéros de diapositives +slidesLayoutOptions.setPrintFrameSlide(true); // imprimer un cadre autour des diapositives +slidesLayoutOptions.setPrintComments(false); // pas de commentaires + +let pdfOptions = new asposeSlides.PdfOptions(); +pdfOptions.setSlidesLayoutOptions(slidesLayoutOptions); + +// Exporter la présentation en PDF avec la mise en page choisie. +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} +Gardez à l’esprit que la méthode `setSlidesLayoutOptions` n’est disponible que pour certains formats de sortie, tels que PDF, HTML, TIFF, et lors du rendu sous forme d’images. +{{% /alert %}} + +## **FAQ** + +**Quel est le nombre maximum de miniatures de diapositives par page en mode Handout ?** + +Aspose.Slides prend en charge les [presets](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) jusqu’à 9 miniatures par page avec un ordre horizontal ou vertical : 1, 2, 3, 4 (horizontal/vertical), 6 (horizontal/vertical) et 9 (horizontal/vertical). + +**Puis-je définir une grille personnalisée, par exemple 5 ou 8 diapositives par page ?** + +Non. Le nombre et l’ordre des miniatures sont contrôlés strictement par l’énumération [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) ; les mises en page arbitraires ne sont pas prises en charge. + +**Puis-je inclure les diapositives masquées dans la sortie Handout ?** + +Oui. Utilisez la méthode `setShowHiddenSlides` dans les paramètres d’exportation du format cible, comme [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) ou [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..c7b284df16 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,60 @@ +--- +title: Convertir PowerPoint en GIF animé +type: docs +weight: 65 +url: /fr/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "Convertir PowerPoint en GIF animé, PPT en GIF, PPTX en GIF" +description: "Convertir PowerPoint en GIF animé: PPT en GIF, PPTX en GIF, avec l'API Aspose.Slides." +--- + +## **Conversion de présentations en GIF animé avec les paramètres par défaut** + +Ce code d'exemple en JavaScript montre comment convertir une présentation en GIF animé en utilisant les paramètres standards : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Le GIF animé sera créé avec les paramètres par défaut. + +{{% alert title="TIP" color="primary" %}} +Si vous préférez personnaliser les paramètres du GIF, vous pouvez utiliser la classe [GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions). Voir le code d'exemple ci‑dessous. +{{% /alert %}} + +## **Conversion de présentations en GIF animé avec des paramètres personnalisés** + +Ce code d'exemple montre comment convertir une présentation en GIF animé en utilisant des paramètres personnalisés en JavaScript : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// la taille du GIF résultant + gifOptions.setDefaultDelay(2000);// la durée d'affichage de chaque diapositive avant de passer à la suivante + gifOptions.setTransitionFps(35);// augmenter les FPS pour une meilleure qualité d'animation de transition + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +Vous voudrez peut‑être découvrir un convertisseur GRATUIT [Text to GIF](https://products.aspose.app/slides/text-to-gif) développé par Aspose. +{{% /alert %}} + +## **FAQ** + +**Que faire si les polices utilisées dans la présentation ne sont pas installées sur le système ?** +Installez les polices manquantes ou [configurez les polices de secours](/slides/fr/nodejs-java/powerpoint-fonts/). Aspose.Slides effectuera une substitution, mais l’apparence peut différer. Pour le branding, assurez‑vous toujours que les polices requises sont explicitement disponibles. + +**Puis‑je superposer un filigrane sur les images du GIF ?** +Oui. [Ajoutez un objet/logo semi‑transparent](/slides/fr/nodejs-java/watermark/) à la diapositive maîtresse ou aux diapositives individuelles avant l’exportation — le filigrane apparaîtra sur chaque image. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..0ee53b3b5e --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,431 @@ +--- +title: Convertir PowerPoint en HTML en JavaScript +linktitle: Convertir Powerpoint en HTML +type: docs +weight: 30 +url: /fr/nodejs-java/convert-powerpoint-to-html/ +keywords: "PowerPoint Java vers HTML, Convertir la présentation PowerPoint, PPTX, PPT, PPT en HTML, PPTX en HTML, PowerPoint en HTML, Enregistrer PowerPoint en HTML, Enregistrer PPT en HTML, Enregistrer PPTX en HTML, Java, Aspose.Slides, Exportation HTML" +description: "Convertir PowerPoint en HTML avec JavaScript. Enregistrer PPTX ou PPT en HTML avec JavaScript. Enregistrer les diapositives en HTML avec JavaScript" +--- + +## **Vue d’ensemble** + +Cet article explique comment convertir une présentation PowerPoint au format HTML à l’aide de JavaScript. Il couvre les sujets suivants. + +- Convertir PowerPoint en HTML avec JavaScript +- Convertir PPT en HTML avec JavaScript +- Convertir PPTX en HTML avec JavaScript +- Convertir ODP en HTML avec JavaScript +- Convertir une diapositive PowerPoint en HTML avec JavaScript + +## **PowerPoint Java vers HTML** + +Pour le code d'exemple JavaScript de conversion PowerPoint en HTML, veuillez consulter la section ci‑dessous, à savoir [Convertir PowerPoint en HTML](#convert-powerpoint-to-html). Le code peut charger plusieurs formats tels que PPT, PPTX et ODP dans l’objet Presentation et les enregistrer au format HTML. + +## **À propos de la conversion PowerPoint en HTML** + +En utilisant [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), les applications et les développeurs peuvent convertir une présentation PowerPoint en HTML : **PPTX en HTML** ou **PPT en HTML**. + +**Aspose.Slides** offre de nombreuses options (principalement provenant de la classe [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions)) qui définissent le processus de conversion PowerPoint en HTML : + +- Convertir une présentation PowerPoint complète en HTML. +- Convertir une diapositive spécifique d’une présentation PowerPoint en HTML. +- Convertir les médias de la présentation (images, vidéos, etc.) en HTML. +- Convertir une présentation PowerPoint en HTML réactif. +- Convertir une présentation PowerPoint en HTML avec ou sans notes du présentateur. +- Convertir une présentation PowerPoint en HTML avec ou sans commentaires. +- Convertir une présentation PowerPoint en HTML avec les polices originales ou incorporées. +- Convertir une présentation PowerPoint en HTML en utilisant le nouveau style CSS. + +{{% alert color="primary" %}} + +En utilisant sa propre API, Aspose a développé des convertisseurs gratuits [presentation to HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html) : [PPT en HTML](https://products.aspose.app/slides/conversion/ppt-to-html), [PPTX en HTML](https://products.aspose.app/slides/conversion/pptx-to-html), [ODP en HTML](https://products.aspose.app/slides/conversion/odp-to-html), etc. + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +Vous pourriez vouloir consulter d’autres [convertisseurs gratuits d’Aspose](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +En plus des processus de conversion décrits ici, Aspose.Slides prend également en charge les opérations de conversion suivantes impliquant le format HTML : + +- [HTML en image](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +- [HTML en JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +- [HTML en XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +- [HTML en TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + +## **Convertir PowerPoint en HTML** + +En utilisant Aspose.Slides, vous pouvez convertir une présentation PowerPoint complète en HTML de la manière suivante : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Utilisez la méthode [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) pour enregistrer l’objet sous forme de fichier HTML. + +```javascript +// Instancier un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // Enregistrement de la présentation au format HTML + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en HTML réactif** + +Aspose.Slides fournit la classe [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController) qui vous permet de générer des fichiers HTML réactifs. Ce code montre comment convertir une présentation PowerPoint en HTML réactif avec JavaScript : + +```javascript +// Instancier un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // Enregistrement de la présentation au format HTML + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en HTML avec notes** + +Ce code montre comment convertir un PowerPoint en HTML avec les notes en JavaScript : + +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Enregistrement des pages de notes + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en HTML avec les polices originales** + +Aspose.Slides fournit la classe [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) qui vous permet d’incorporer toutes les polices d’une présentation lors de la conversion en HTML. + +Pour empêcher l’incorporation de certaines polices, vous pouvez transmettre un tableau de noms de polices à un constructeur paramétré de la classe [EmbedAllFontsHtmlController]. Les polices populaires, comme Calibri ou Arial, lorsqu’elles sont utilisées dans une présentation, n’ont pas besoin d’être incorporées car la plupart des systèmes les contiennent déjà. Lorsqu’elles sont incorporées, le document HTML résultant devient inutilement volumineux. + +La classe [EmbedAllFontsHtmlController] prend en charge l’héritage et fournit la méthode [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-) qui est destinée à être remplacée. + +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // exclure les polices par défaut de la présentation + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en HTML avec des images haute qualité** + +Par défaut, lors de la conversion de PowerPoint en HTML, Aspose.Slides génère un HTML léger avec des images à 72 DPI et des zones recadrées supprimées. Pour obtenir des fichiers HTML avec des images de meilleure qualité, vous devez transmettre `96` à la méthode `setPicturesCompression` de la classe `HtmlOptions` (c’est‑à‑dire `PicturesCompression.Dpi96`) ou une valeur supérieure. + +Ce code JavaScript montre comment convertir une présentation PowerPoint en HTML tout en obtenant des images haute qualité à 150 DPI (c’est‑à‑dire `PicturesCompression.Dpi150`) : + +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Ce code JavaScript montre comment générer un HTML avec des images en pleine qualité : + +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir une diapositive en HTML** + +Pour convertir une diapositive spécifique d’un PowerPoint en HTML, vous devez créer une instance de la même classe [Presentation] (utilisée pour convertir des présentations complètes en HTML) puis utiliser la méthode [save] pour enregistrer le fichier au format HTML. La classe [HtmlOptions] peut être utilisée pour spécifier des options de conversion supplémentaires : + +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // Enregistrement du fichier + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **Enregistrer CSS et images lors de l’exportation vers HTML** + +En utilisant de nouveaux fichiers de style CSS, vous pouvez facilement modifier le style du fichier HTML résultant du processus de conversion de PowerPoint en HTML. + +Le code JavaScript de cet exemple montre comment utiliser des méthodes surchargeables pour créer un document HTML personnalisé avec un lien vers un fichier CSS : + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Vous devrez implémenter CustomHeaderAndFontsController en Java, le compiler et l’ajouter au répertoire du module \aspose.slides.via.java\lib\. + +Ce code Java montre comment `CustomHeaderAndFontsController` est implémenté : + +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // Modèle d'en-tête personnalisé + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **Lier toutes les polices lors de la conversion d’une présentation en HTML** + +Si vous ne souhaitez pas incorporer les polices (pour éviter d’augmenter la taille du HTML résultant), vous pouvez lier toutes les polices en implémentant votre propre version de `LinkAllFontsHtmlController`. + +Ce code JavaScript montre comment convertir un PowerPoint en HTML tout en liant toutes les polices et en excluant "Calibri" et "Arial" (puisqu’elles existent déjà dans le système) : + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Exclure les polices par défaut de la présentation + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Vous devrez implémenter LinkAllFontsHtmlController en Java, le compiler et l’ajouter au répertoire du module \aspose.slides.via.java\lib\. + +Ce code Java montre comment `LinkAllFontsHtmlController` est implémenté : + +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // il peut être nécessaire de nettoyer le chemin + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **Convertir PowerPoint en HTML réactif** + +Ce code JavaScript montre comment convertir une présentation PowerPoint en HTML réactif : + +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exporter des fichiers multimédia vers HTML** + +En utilisant Aspose.Slides for Node.js via Java, vous pouvez exporter des fichiers multimédia de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez une référence à la diapositive. +3. Ajoutez une vidéo à la diapositive. +4. Enregistrez la présentation sous forme de fichier HTML. + +Ce code JavaScript montre comment ajouter une vidéo à la présentation puis l’enregistrer en HTML : + +```javascript +// Chargement d'une présentation +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // Configuration des options HTML + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // Enregistrement du fichier + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quelle est la performance d’Aspose.Slides lors de la conversion de plusieurs présentations en HTML ?** + +La performance dépend de la taille et de la complexité des présentations. Aspose.Slides est très efficace et évolutif pour les opérations par lots. Pour obtenir des performances optimales lors de la conversion d’un grand nombre de présentations, il est recommandé d’utiliser le multithreading ou le traitement parallèle dès que possible. + +**Aspose.Slides prend‑il en charge l’exportation des hyperliens vers HTML ?** + +Oui, Aspose.Slides prend entièrement en charge l’exportation des hyperliens intégrés vers HTML. Lors de la conversion des présentations au format HTML, les hyperliens sont automatiquement conservés et restent cliquables. + +**Existe‑t‑il une limite au nombre de diapositives lors de la conversion de présentations en HTML ?** + +Il n’y a aucune limite au nombre de diapositives avec Aspose.Slides. Vous pouvez convertir des présentations de toute taille. Toutefois, pour des présentations contenant un très grand nombre de diapositives, la performance peut dépendre des ressources disponibles sur votre serveur ou système. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..b6d99d967e --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,144 @@ +--- +title: Convertir Powerpoint en JPG +type: docs +weight: 60 +url: /fr/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "Convertir PowerPoint en JPG, PPTX en JPEG, PPT en JPEG" +description: "Convertir PowerPoint en JPG : PPT en JPG, PPTX en JPG en JavaScript" +--- + +## **À propos de la conversion PowerPoint en JPG** +Avec [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) vous pouvez convertir une présentation PowerPoint PPT ou PPTX en image JPG. Il est également possible de convertir PPT/PPTX en JPEG, PNG ou SVG. Avec ces fonctionnalités il est facile de mettre en œuvre votre propre visualiseur de présentation, de créer la miniature de chaque diapositive. Cela peut être utile si vous souhaitez protéger les diapositives de la présentation contre la copie, ou présenter la présentation en mode lecture seule. Aspose.Slides permet de convertir l’ensemble de la présentation ou une diapositive spécifique en formats image. + +{{% alert color="primary" %}} +Pour voir comment Aspose.Slides convertit PowerPoint en images JPG, vous pouvez essayer ces convertisseurs en ligne gratuits : PowerPoint [PPTX to JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) et [PPT to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg). +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **Convertir PowerPoint PPT/PPTX en JPG** +Voici les étapes pour convertir PPT/PPTX en JPG : + +1. Créer une instance du type [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenir l’objet slide du type [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) à partir de la collection [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--). +3. Créer la miniature de chaque diapositive puis la convertir en JPG. La méthode [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) est utilisée pour obtenir une miniature d’une diapositive, elle renvoie un objet [Imagess](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images) en résultat. La méthode [getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) doit être appelée depuis la diapositive souhaitée du type [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide), les valeurs d’échelle de la miniature résultante sont passées à la méthode. +4. Après avoir obtenu la miniature de la diapositive, appelez la méthode [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) à partir de l’objet miniature. Transmettez le nom de fichier résultant et le format d’image. + +{{% alert color="primary" %}} + +**Note** : la conversion PPT/PPTX en JPG diffère de la conversion vers d’autres types dans l’API Aspose.Slides. Pour d’autres types, vous utilisez généralement la méthode [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-), mais ici vous devez utiliser la méthode [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)). + +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Crée une image à pleine échelle + var slideImage = sld.getImage(1.0, 1.0); + // Enregistre l'image sur le disque au format JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint PPT/PPTX en JPG avec des dimensions personnalisées** +Pour modifier la dimension de la miniature et de l’image JPG résultantes, vous pouvez définir les valeurs *ScaleX* et *ScaleY* en les transmettant aux méthodes [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-). + +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // Définit les dimensions + var desiredX = 1200; + var desiredY = 800; + // Obtient les valeurs mises à l'échelle de X et Y + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Crée une image à pleine échelle + var slideImage = sld.getImage(ScaleX, ScaleY); + // Enregistre l'image sur le disque au format JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Rendre les commentaires lors de l’enregistrement de la présentation en image** +Aspose.Slides for Node.js via Java offre une fonctionnalité qui vous permet de rendre les commentaires dans les diapositives d’une présentation lors de la conversion de ces diapositives en images. Ce code JavaScript montre le fonctionnement : + +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose propose une [application Web COLLAGE GRATUITE](https://products.aspose.app/slides/collage). En utilisant ce service en ligne, vous pouvez fusionner des images [JPG en JPG](https://products.aspose.app/slides/collage/jpg) ou PNG en PNG, créer des [grilles de photos](https://products.aspose.app/slides/collage/photo-grid), etc. + +En appliquant les mêmes principes décrits dans cet article, vous pouvez convertir des images d’un format à un autre. Pour plus d’informations, consultez ces pages : convertir [image en JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); convertir [JPG en image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); convertir [JPG en PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), convertir [PNG en JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); convertir [PNG en SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), convertir [SVG en PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Voir aussi** + +Voir d’autres options pour convertir PPT/PPTX en image, comme : + +- [Conversion PPT/PPTX en SVG](/slides/fr/nodejs-java/render-a-slide-as-an-svg-image/). + +## **FAQ** + +**Cette méthode prend‑elle en charge la conversion par lots ?** + +Oui, Aspose.Slides permet la conversion par lots de plusieurs diapositives en JPG en une seule opération. + +**La conversion prend‑elle en charge SmartArt, les graphiques et d’autres objets complexes ?** + +Oui, Aspose.Slides rend tout le contenu, y compris SmartArt, les graphiques, les tableaux, les formes, etc. Cependant, la précision du rendu peut varier légèrement par rapport à PowerPoint, surtout lorsqu’on utilise des polices personnalisées ou manquantes. + +**Existe‑t‑il des limites au nombre de diapositives pouvant être traitées ?** + +Aspose.Slides n’impose aucune limite stricte au nombre de diapositives que vous pouvez traiter. Cependant, vous pouvez rencontrer une erreur de manque de mémoire lors du traitement de présentations volumineuses ou d’images haute résolution. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..0895ce0549 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,113 @@ +--- +title: Convertir PowerPoint en Markdown en JavaScript +type: docs +weight: 140 +url: /fr/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "Convertir PowerPoint en Markdown, Convertir ppt en md, PowerPoint, PPT, PPTX, Présentation, Markdown, Java, Aspose.Slides pour Node.js via Java" +description: "Convertir PowerPoint en Markdown en JavaScript" +--- + +{{% alert color="info" %}} +Le support de la conversion de PowerPoint vers markdown a été implémenté dans [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/). +{{% /alert %}} + +{{% alert color="warning" %}} +L'exportation PowerPoint vers markdown est **sans images** par défaut. Si vous souhaitez exporter un document PowerPoint contenant des images, vous devez appeler `markdownSaveOptions.setExportType(MarkdownExportType.Visual)` et également définir le `BasePath` où les images référencées dans le document markdown seront enregistrées. +{{% /alert %}} + +## **Convertir PowerPoint en Markdown** + +1. Créer une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) pour représenter un objet présentation. +2. Utiliser la méthode [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) pour enregistrer l'objet sous forme de fichier markdown. + +Ce code JavaScript vous montre comment convertir PowerPoint en markdown : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en variantes de Markdown** + +Aspose.Slides vous permet de convertir PowerPoint en markdown (avec une syntaxe de base), CommonMark, markdown de type GitHub, Trello, XWiki, GitLab et 17 autres variantes de markdown. + +Ce code JavaScript vous montre comment convertir PowerPoint en CommonMark : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Les 23 variantes de markdown prises en charge sont [listées sous l'énumération Flavor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) de la classe [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/). + +## **Convertir une présentation contenant des images en Markdown** + +La classe [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) fournit des propriétés et des énumérations qui vous permettent d'utiliser certaines options ou paramètres pour le fichier markdown résultant. L'énumération [MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/) peut, par exemple, être définie sur des valeurs qui déterminent comment les images sont rendues ou gérées : `Sequential`, `TextOnly`, `Visual`. + +### **Convertir les images séquentiellement** + +Si vous voulez que les images apparaissent individuellement les unes après les autres dans le markdown résultant, vous devez choisir l'option séquentielle. Ce code JavaScript vous montre comment convertir une présentation contenant des images en markdown : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Convertir les images visuellement** + +Si vous souhaitez que les images apparaissent ensemble dans le markdown résultant, vous devez choisir l'option visuelle. Dans ce cas, les images seront enregistrées dans le répertoire actuel de l'application (et un chemin relatif sera créé pour elles dans le document markdown), ou vous pouvez spécifier le chemin et le nom de dossier de votre choix. + +Ce code JavaScript montre l'opération : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Les hyperliens survivent-ils à l'exportation vers Markdown ?** +Oui. Le texte [hyperlinks](/slides/fr/nodejs-java/manage-hyperlinks/) est conservé sous forme de liens Markdown standards. Les [transitions](/slides/fr/nodejs-java/slide-transition/) de diapositive et les [animations](/slides/fr/nodejs-java/powerpoint-animation/) ne sont pas convertis. + +**Puis-je accélérer la conversion en l'exécutant sur plusieurs threads ?** +Vous pouvez paralléliser par fichier, mais [don’t share](/slides/fr/nodejs-java/multithreading/) la même instance de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) entre les threads. Utilisez des instances/processus séparés par fichier pour éviter les contentions. + +**Que se passe-t-il avec les images—où sont-elles enregistrées et les chemins sont-ils relatifs ?** +Les [Images](/slides/fr/nodejs-java/image/) sont exportées vers un dossier dédié, et le fichier Markdown les référence avec des chemins relatifs par défaut. Vous pouvez configurer le chemin de sortie de base et le nom du dossier d’actifs pour garder une structure de dépôt prévisible. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..034f9b9a79 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,331 @@ +--- +title: Convertir PPT et PPTX en PDF en JavaScript [Fonctionnalités avancées incluses] +linktitle: Convertir PPT et PPTX en PDF +type: docs +weight: 40 +url: /fr/nodejs-java/convert-powerpoint-to-pdf/ +keywords: +- convertir PowerPoint +- convertir présentation +- PowerPoint en PDF +- présentation en PDF +- PPT en PDF +- convertir PPT en PDF +- PPTX en PDF +- convertir PPTX en PDF +- ODP en PDF +- convertir ODP en PDF +- enregistrer PowerPoint en PDF +- PDF/A1a +- PDF/A1b +- PDF/UA +- JavaScript +- Node.js +- Aspose.Slides for Node.js via Java +description: "Apprenez à convertir les présentations PPT, PPTX et ODP en PDF en JavaScript à l'aide d'Aspose.Slides. Implémentez des fonctionnalités avancées telles que la protection par mot de passe, les normes de conformité et des options personnalisées pour des documents PDF de haute qualité et accessibles." +--- + +## **Vue d'ensemble** + +La conversion de présentations PowerPoint et OpenDocument (PPT, PPTX, ODP, etc.) en format PDF avec JavaScript offre plusieurs avantages, notamment la compatibilité entre différents appareils et la préservation de la mise en page et du formatage de votre présentation. Ce guide montre comment convertir des présentations en documents PDF, utiliser diverses options pour contrôler la qualité des images, inclure les diapositives masquées, protéger les fichiers PDF par mot de passe, détecter les substitutions de polices, sélectionner des diapositives spécifiques pour la conversion et appliquer des normes de conformité aux documents de sortie. + +## **Conversions PowerPoint en PDF** + +Avec Aspose.Slides, vous pouvez convertir des présentations dans les formats suivants en PDF : + +* **PPT** +* **PPTX** +* **ODP** + +Pour convertir une présentation en PDF, passez le nom du fichier en argument à la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) puis enregistrez la présentation au format PDF à l’aide de la méthode `save`. La classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) expose la méthode `save` qui est généralement utilisée pour convertir une présentation en PDF. + +{{% alert title="NOTE" color="warning" %}} + +Aspose.Slides for Node.js via Java insère ses informations d’API et son numéro de version dans les documents de sortie. Par exemple, lors de la conversion d’une présentation en PDF, Aspose.Slides remplit le champ Application avec "*Aspose.Slides*" et le champ PDF Producer avec une valeur sous la forme "*Aspose.Slides v XX.XX*". **Note** que vous ne pouvez pas demander à Aspose.Slides de modifier ou de supprimer ces informations des documents de sortie. + +{{% /alert %}} + +Aspose.Slides vous permet de convertir : + +* Des présentations complètes en PDF +* Des diapositives spécifiques d’une présentation en PDF + +Aspose.Slides exporte les présentations vers PDF, garantissant que les PDF résultants correspondent étroitement aux présentations d’origine. Les éléments et attributs sont rendus avec précision lors de la conversion, notamment : + +* Images +* Zones de texte et formes +* Mise en forme du texte +* Mise en forme des paragraphes +* Hyperliens +* En‑têtes et pieds de page +* Puces +* Tableaux + +## **Convertir PowerPoint en PDF** + +Le processus de conversion standard PowerPoint‑vers‑PDF utilise les options par défaut. Dans ce cas, Aspose.Slides tente de convertir la présentation fournie en PDF en utilisant des paramètres optimaux au niveau de qualité maximal. + +Ce code montre comment convertir une présentation (PPT, PPTX, ODP, etc.) en PDF : +```js +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // Enregistrez la présentation au format PDF. + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} + +Aspose propose un convertisseur en ligne gratuit [**PowerPoint en PDF**](https://products.aspose.app/slides/conversion/ppt-to-pdf) qui illustre le processus de conversion présentation‑vers‑PDF. Vous pouvez effectuer un test avec ce convertisseur pour une implémentation en direct de la procédure décrite ici. + +{{% /alert %}} + +## **Convertir PowerPoint en PDF avec Options** + +Aspose.Slides fournit des options personnalisées — propriétés de la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/) — qui permettent de personnaliser le PDF résultant, de le verrouiller avec un mot de passe ou de spécifier le déroulement du processus de conversion. + +### **Convertir PowerPoint en PDF avec Options Personnalisées** + +À l’aide d’options de conversion personnalisées, vous pouvez définir votre paramètre de qualité préféré pour les images raster, spécifier la manière dont les métafichiers doivent être gérés, définir un niveau de compression pour le texte, configurer le DPI des images, etc. + +L’exemple de code ci‑dessous montre comment convertir une présentation PowerPoint en PDF avec plusieurs options personnalisées. +```js +// Instanciez la classe PdfOptions. +let pdfOptions = new aspose.slides.PdfOptions(); + +// Définissez la qualité des images JPG. +pdfOptions.setJpegQuality(java.newByte(90)); + +// Définissez le DPI des images. +pdfOptions.setSufficientResolution(300); + +// Définissez le comportement des métafichiers. +pdfOptions.setSaveMetafilesAsPng(true); + +// Définissez le niveau de compression du texte pour le contenu textuel. +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// Définissez le mode de conformité PDF. +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument file. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Enregistrez la présentation en tant que document PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Convertir PowerPoint en PDF avec Diapositives Masquées** + +Si une présentation contient des diapositives masquées, vous pouvez utiliser la méthode [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) de la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) pour inclure les diapositives masquées comme pages dans le PDF résultant. + +Ce code JavaScript montre comment convertir une présentation PowerPoint en PDF avec les diapositives masquées incluses : +```js +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Instanciez la classe PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Ajoutez les diapositives masquées. + pdfOptions.setShowHiddenSlides(true); + + // Enregistrez la présentation au format PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Convertir PowerPoint en PDF protégé par Mot de Passe** + +Ce code JavaScript montre comment convertir une présentation PowerPoint en PDF protégé par un mot de passe à l’aide des paramètres de protection de la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) : +```js +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Instanciez la classe PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Définissez un mot de passe PDF et les permissions d'accès. + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // Enregistrez la présentation au format PDF. + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Détecter les Substitutions de Polices** + +Aspose.Slides fournit la méthode [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) de la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), vous permettant de détecter les substitutions de polices pendant le processus de conversion présentation‑vers‑PDF. + +Ce code JavaScript montre comment détecter les substitutions de polices : +```js +// Définir le rappel d'avertissement dans les options PDF. +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// Instancier la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// Enregistrer la présentation au format PDF. +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} + +Pour plus d’informations sur la réception de callbacks de substitution de polices pendant le rendu, voir [Receiving Warning Callbacks for Fonts Substitution](/slides/fr/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/). + +Pour plus d’informations sur la substitution de polices, consultez l’article [Font Substitution](/slides/fr/nodejs-java/font-substitution/). + +{{% /alert %}} + +## **Convertir Diapositives Sélectionnées en PDF** + +Ce code JavaScript montre comment convertir uniquement des diapositives spécifiques d’une présentation PowerPoint en PDF : +```js +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Définissez le tableau des numéros de diapositives. + let slides = java.newArray("int", [1, 3]); + + // Enregistrez la présentation au format PDF. + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **Convertir PowerPoint en PDF avec Taille de Diapositive Personnalisée** + +Ce code JavaScript montre comment convertir une présentation PowerPoint en PDF avec une taille de diapositive spécifiée : +```js +const slideWidth = 612; +const slideHeight = 792; + +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// Create a new presentation with an adjusted slide size. +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // Définissez la taille de diapositive personnalisée. + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // Clonez la première diapositive de la présentation d'origine. + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // Enregistrez la présentation redimensionnée en PDF avec les notes. + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **Convertir PowerPoint en PDF en Vue des Notes de Diapositive** + +Ce code JavaScript montre comment convertir une présentation PowerPoint en PDF incluant les notes : +```js +// Instanciez la classe Presentation qui représente un fichier PowerPoint ou OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // Configurez les options PDF avec la disposition des notes. + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // Enregistrez la présentation au format PDF avec les notes. + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Accessibilité et Normes de Conformité pour PDF** + +Aspose.Slides vous permet d’utiliser une procédure de conversion conforme aux [Web Content Accessibility Guidelines (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html). Vous pouvez exporter un document PowerPoint en PDF en respectant l’une de ces normes de conformité : **PDF/A1a**, **PDF/A1b** et **PDF/UA**. + +Ce code JavaScript montre un processus de conversion PowerPoint‑vers‑PDF qui produit plusieurs PDF selon différentes normes de conformité : +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Note" color="warning" %}} + +Aspose.Slides prend en charge les opérations de conversion PDF, vous permettant de convertir des fichiers PDF vers des formats populaires. Vous pouvez réaliser des conversions [PDF vers HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/), [PDF vers JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/) et [PDF vers PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/). D’autres conversions PDF vers des formats spécialisés — [PDF vers SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/), [PDF vers TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/) — sont également prises en charge. + +{{% /alert %}} + +## **FAQ** + +**Puis‑je convertir plusieurs fichiers PowerPoint en PDF en lot ?** + +Oui, Aspose.Slides prend en charge la conversion par lots de plusieurs fichiers PPT ou PPTX en PDF. Vous pouvez itérer sur vos fichiers et appliquer le processus de conversion par programme. + +**Est‑il possible de protéger le PDF converti par mot de passe ?** + +Absolument. Utilisez la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) pour définir un mot de passe et spécifier les autorisations d’accès pendant la conversion. + +**Comment inclure les diapositives masquées dans le PDF ?** + +Utilisez la méthode `setShowHiddenSlides` de la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) pour inclure les diapositives masquées dans le PDF résultant. + +**Aspose.Slides peut‑il maintenir une haute qualité d’image dans le PDF ?** + +Oui, vous pouvez contrôler la qualité des images en utilisant des méthodes telles que `setJpegQuality` et `setSufficientResolution` de la classe [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) pour garantir des images de haute qualité dans votre PDF. + +**Aspose.Slides prend‑il en charge les normes de conformité PDF/A ?** + +Oui, Aspose.Slides vous permet d’exporter des PDF conformes à diverses normes, notamment PDF/A1a, PDF/A1b et PDF/UA, assurant que vos documents respectent les exigences d’accessibilité et d’archivage. + +## **Ressources Supplémentaires** + +- [Documentation Aspose.Slides for Node.js via Java](/slides/fr/nodejs-java/) +- [Référence API Aspose.Slides for Node.js via Java](https://reference.aspose.com/slides/nodejs-java/) +- [Convertisseurs En Ligne Gratuits Aspose](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..a3a2b5c6da --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,116 @@ +--- +title: Convertir PowerPoint en PNG +type: docs +weight: 30 +url: /fr/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint en PNG, PPT en PNG, PPTX en PNG, java, Aspose.Slides pour Node.js via Java +description: Convertir une présentation PowerPoint en PNG +--- + +## **À propos de la conversion PowerPoint en PNG** + +Le format PNG (Portable Network Graphics) n'est pas aussi populaire que le JPEG (Joint Photographic Experts Group), mais il reste très répandu. + +**Cas d'utilisation :** Lorsque vous avez une image complexe et que la taille n'est pas un problème, le PNG est un meilleur format d'image que le JPEG. + +{{% alert title="Tip" color="primary" %}}Vous pouvez consulter les convertisseurs PowerPoint vers PNG gratuits d'Aspose **PowerPoint to PNG Converters** : [PPTX to PNG](https://products.aspose.app/slides/conversion/pptx-to-png) et [PPT to PNG](https://products.aspose.app/slides/conversion/ppt-to-png). Ils sont une implémentation en direct du processus décrit sur cette page.{{% /alert %}} + +## **Convertir PowerPoint en PNG** + +Suivez ces étapes : + +1. Instanciez la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Récupérez l'objet diapositive à partir de la collection retournée par la méthode [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) de la classe [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide). +3. Utilisez la méthode [Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) pour obtenir la miniature de chaque diapositive. +4. Utilisez la méthode [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) pour enregistrer la miniature de la diapositive au format PNG. + +Ce code JavaScript vous montre comment convertir une présentation PowerPoint en PNG : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en PNG avec des dimensions personnalisées** + +Si vous souhaitez obtenir des fichiers PNG à une certaine échelle, vous pouvez définir les valeurs de `desiredX` et `desiredY`, qui déterminent les dimensions de la miniature résultante. + +Ce code en JavaScript démontre l'opération décrite : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir PowerPoint en PNG avec une taille personnalisée** + +Si vous souhaitez obtenir des fichiers PNG d'une certaine taille, vous pouvez transmettre vos arguments préférés `width` et `height` pour `ImageSize`. + +Ce code vous montre comment convertir un PowerPoint en PNG tout en spécifiant la taille des images : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Comment puis‑je exporter uniquement une forme spécifique (par ex., un graphique ou une image) plutôt que la diapositive entière ?** +Aspose.Slides prend en charge [la génération de miniatures pour des formes individuelles](/slides/fr/nodejs-java/create-shape-thumbnails/) ; vous pouvez rendre une forme en image PNG. + +**La conversion parallèle est‑elle prise en charge sur un serveur ?** +Oui, mais [ne partagez pas](/slides/fr/nodejs-java/multithreading/) une même instance de présentation entre plusieurs threads. Utilisez une instance séparée par thread ou processus. + +**Quelles sont les limitations de la version d'essai lors de l'exportation en PNG ?** +Le mode d'évaluation ajoute un filigrane aux images de sortie et applique [d'autres restrictions](/slides/fr/nodejs-java/licensing/) jusqu'à ce qu'une licence soit appliquée. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..c32da6f017 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,44 @@ +--- +title: Convertir PowerPoint en SWF Flash +type: docs +weight: 80 +url: /fr/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT, PPTX en SWF" +description: "Convertir PowerPoint PPT, PPTX en SWF avec JavaScript" +--- + +## **Convertir PPT(X) en SWF** +La méthode [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) exposée par la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) peut être utilisée pour convertir l’intégralité de la présentation en document **SWF**. L’exemple suivant montre comment convertir une présentation en document **SWF** en utilisant les options fournies par la classe [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions). Vous pouvez également inclure des commentaires dans le SWF généré en utilisant la classe [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) et la classe [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions). +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Enregistrement de la présentation + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je inclure les diapositives masquées dans le SWF ?** + +Oui. Utilisez la méthode [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) dans [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/). Par défaut, les diapositives masquées ne sont pas exportées. + +**Comment puis‑je contrôler la compression et la taille finale du SWF ?** + +Utilisez les méthodes [setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) et [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/) pour équilibrer la taille du fichier et la fidélité des images. + +**À quoi sert 'setViewerIncluded' et quand dois‑je l’utiliser ?** + +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) ajoute une interface de lecteur intégrée (contrôles de navigation, panneaux, recherche). Utilisez‑la si vous prévoyez d’utiliser votre propre lecteur ou si vous avez besoin d’un cadre SWF sans interface utilisateur. + +**Que se passe‑t‑il si une police source est manquante sur la machine d’exportation ?** + +Aspose.Slides remplacera la police que vous spécifiez via [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) dans [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) afin d’éviter un repli non souhaité. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..72aa303526 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,93 @@ +--- +title: Convertir PowerPoint en TIFF avec notes en JavaScript +linktitle: PowerPoint en TIFF avec notes +type: docs +weight: 100 +url: /fr/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- convertir PowerPoint en TIFF +- convertir la présentation en TIFF +- convertir la diapositive en TIFF +- convertir PPT en TIFF +- convertir PPTX en TIFF +- convertir ODP en TIFF +- PowerPoint en TIFF +- présentation en TIFF +- diapositive en TIFF +- PPT en TIFF +- PPTX en TIFF +- ODP en TIFF +- PowerPoint avec notes +- présentation avec notes +- diapositive avec notes +- PPT avec notes +- PPTX avec notes +- ODP avec notes +- TIFF avec notes +- Node.js +- JavaScript +- Aspose.Slides +description: "Convertir les présentations PowerPoint et OpenDocument en TIFF avec notes en utilisant Aspose.Slides pour Node.js via Java. Apprenez comment exporter les diapositives avec les notes du présentateur de manière efficace." +--- + +## **Vue d'ensemble** + +Aspose.Slides for Node.js via Java fournit une solution simple pour convertir les présentations PowerPoint et OpenDocument (PPT, PPTX et ODP) avec notes au format TIFF. Ce format est largement utilisé pour le stockage d’images de haute qualité, l’impression et l’archivage de documents. Avec Aspose.Slides, vous pouvez non seulement exporter des présentations complètes avec les notes du présentateur, mais aussi générer des miniatures de diapositives dans la vue Notes Slide. Le processus de conversion est simple et efficace, utilisant la méthode `save` de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) pour transformer la présentation entière en une série d’images TIFF tout en conservant les notes et la mise en page. + +## **Convertir une présentation en TIFF avec notes** + +Enregistrer une présentation PowerPoint ou OpenDocument en TIFF avec notes à l’aide d’Aspose.Slides for Node.js via Java implique les étapes suivantes : + +1. Instancier la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) : charger un fichier PowerPoint ou OpenDocument. +1. Configurer les options de mise en page de sortie : utiliser la classe [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/) pour spécifier comment les notes et les commentaires doivent être affichés. +1. Enregistrer la présentation en TIFF : transmettre les options configurées à la méthode [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save). + +Supposons que nous ayons un fichier "speaker_notes.pptx" avec la diapositive suivante : + +![Diapositive de la présentation avec notes du présentateur](slide_with_notes.png) + +Le fragment de code ci-dessous montre comment convertir la présentation en image TIFF dans la vue Notes Slide en utilisant la méthode [setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions). +```js +// Instancier la classe Presentation qui représente un fichier de présentation. +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // Afficher les notes sous la diapositive. + + // Configurer les options TIFF avec la mise en page des notes. + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Enregistrer la présentation au format TIFF avec les notes du présentateur. + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +Le résultat : + +![Image TIFF avec notes du présentateur](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} + +Découvrez le Convertisseur gratuit PowerPoint vers Poster d'Aspose [Free PowerPoint to Poster Converter](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online). + +{{% /alert %}} + +## **FAQ** + +**Puis-je contrôler la position de la zone des notes dans le TIFF résultant ?** + +Oui. Utilisez les [notes layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) pour choisir parmi les options `None`, `BottomTruncated` ou `BottomFull`, qui masquent respectivement les notes, les ajustent sur une seule page ou permettent leur débordement sur des pages supplémentaires. + +**Comment réduire la taille d’un fichier TIFF avec notes sans perte de qualité visible ?** + +Choisissez une [compression efficace](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/) (par ex., `LZW` ou `RLE`), définissez un DPI raisonnable et, si cela convient, utilisez un [format de pixel](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/) plus bas (comme 8 bpp ou 1 bpp pour le monochrome). Réduire légèrement les [dimensions de l’image](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) peut également aider sans nuire notablement à la lisibilité. + +**La police des notes influence‑t‑elle le résultat si les polices d’origine sont manquantes sur le système ?** + +Oui. Les polices manquantes déclenchent une [substitution](/slides/fr/nodejs-java/font-selection-sequence/), ce qui peut modifier les métriques et l’apparence du texte. Pour éviter cela, [fournissez les polices requises](/slides/fr/nodejs-java/custom-font/) ou définissez une [police de secours](/slides/fr/nodejs-java/fallback-font/) par défaut afin que les polices prévues soient utilisées. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..384f4867bc --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,162 @@ +--- +title: Convertir des présentations PowerPoint en TIFF avec JavaScript +titlelink: PowerPoint en TIFF +type: docs +weight: 90 +url: /fr/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- convertir PowerPoint +- convertir OpenDocument +- convertir présentation +- convertir diapositive +- PowerPoint en TIFF +- OpenDocument en TIFF +- présentation en TIFF +- diapositive en TIFF +- PPT en TIFF +- PPTX en TIFF +- ODP en TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "Découvrez comment convertir facilement des présentations PowerPoint (PPT, PPTX) et OpenDocument (ODP) en images TIFF de haute qualité à l’aide d’Aspose.Slides pour Node.js via Java. Guide étape par étape avec des exemples de code inclus." +--- + +## **Aperçu** + +TIFF (**Tagged Image File Format**) est un format d'image raster sans perte largement utilisé, connu pour sa qualité exceptionnelle et la préservation détaillée des graphiques. Les concepteurs, photographes et éditeurs de bureau choisissent souvent le TIFF pour maintenir les calques, la précision des couleurs et les paramètres d'origine de leurs images. + +Avec Aspose.Slides, vous pouvez convertir facilement vos diapositives PowerPoint (PPT, PPTX) et les diapositives OpenDocument (ODP) directement en images TIFF de haute qualité, garantissant que vos présentations conservent une fidélité visuelle maximale. + +## **Convertir une présentation en TIFF** + +En utilisant la méthode [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-) fournie par la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/), vous pouvez rapidement convertir une présentation PowerPoint complète en TIFF. Les images TIFF résultantes correspondent à la taille de diapositive par défaut. + +Ce code JavaScript montre comment convertir une présentation PowerPoint en TIFF : +```js +// Instancier la classe Presentation qui représente un fichier de présentation (PPT, PPTX, ODP, etc.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // Enregistrer la présentation au format TIFF. + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **Convertir une présentation en TIFF noir et blanc** + +La méthode [setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) de la classe [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) vous permet de spécifier l'algorithme utilisé lors de la conversion d'une diapositive ou d'une image couleur en TIFF noir et blanc. Notez que ce paramètre s'applique uniquement lorsque la méthode [setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) est définie sur `CCITT4` ou `CCITT3`. + +Supposons que nous ayons un fichier "sample.pptx" avec la diapositive suivante : +![Une diapositive de présentation](slide_black_and_white.png) + +Ce code JavaScript montre comment convertir la diapositive couleur en TIFF noir et blanc : +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +Le résultat : +![TIFF noir et blanc](TIFF_black_and_white.png) + +## **Convertir une présentation en TIFF avec taille personnalisée** + +Si vous avez besoin d'une image TIFF avec des dimensions spécifiques, vous pouvez définir les valeurs souhaitées en utilisant les méthodes disponibles dans [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). Par exemple, la méthode [setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize) vous permet de définir la taille de l'image résultante. + +Ce code JavaScript montre comment convertir une présentation PowerPoint en images TIFF avec une taille personnalisée : +```js +// Instancier la classe Presentation qui représente un fichier de présentation (PPT, PPTX, ODP, etc.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // Définir le type de compression. + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + Types de compression : + Default - Spécifie le schéma de compression par défaut (LZW). + None - Spécifie aucune compression. + CCITT3 + CCITT4 + LZW + RLE + */ + + // La profondeur dépend du type de compression et ne peut pas être définie manuellement. + + // Définir le DPI de l'image. + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // Définir la taille de l'image. + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Enregistrer la présentation en TIFF avec la taille spécifiée. + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Convertir une présentation en TIFF avec format de pixel d'image personnalisé** + +En utilisant la méthode [setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) de la classe [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/), vous pouvez spécifier le format de pixel souhaité pour l'image TIFF résultante. + +Ce code JavaScript montre comment convertir une présentation PowerPoint en image TIFF avec un format de pixel personnalisé : +```js +// Instancier la classe Presentation qui représente un fichier de présentation (PPT, PPTX, ODP, etc.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat contient les valeurs suivantes (tel qu’indiqué dans la documentation) : + Format1bppIndexed - 1 bit par pixel, indexé. + Format4bppIndexed - 4 bits par pixel, indexé. + Format8bppIndexed - 8 bits par pixel, indexé. + Format24bppRgb - 24 bits par pixel, RGB. + Format32bppArgb - 32 bits par pixel, ARGB. + */ + + /// Enregistrer la présentation en TIFF avec la taille d’image spécifiée. + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Conseil" color="primary" %}} +Découvrez le [convertisseur GRATUIT PowerPoint en Affiche](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online) d'Aspose. +{{% /alert %}} + +## **FAQ** + +**Puis-je convertir une diapositive individuelle au lieu de l'ensemble de la présentation PowerPoint en TIFF ?** + +Oui. Aspose.Slides vous permet de convertir des diapositives individuelles provenant de présentations PowerPoint et OpenDocument en images TIFF séparément. + +**Existe-t-il une limite au nombre de diapositives lors de la conversion d'une présentation en TIFF ?** + +Non, Aspose.Slides n'impose aucune restriction sur le nombre de diapositives. Vous pouvez convertir des présentations de toute taille au format TIFF. + +**Les animations et effets de transition PowerPoint sont-ils conservés lors de la conversion des diapositives en TIFF ?** + +Non, le TIFF est un format d'image statique. Par conséquent, les animations et les effets de transition ne sont pas conservés ; seules des captures d'écran statiques des diapositives sont exportées. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..87674acbf4 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,335 @@ +--- +title: Convertir PowerPoint en vidéo +type: docs +weight: 130 +url: /fr/nodejs-java/convert-powerpoint-to-video/ +keywords: "Convertir PowerPoint, PPT, PPTX, Présentation, Vidéo, MP4, PPT en vidéo, PPT en MP4, Java, Aspose.Slides" +description: "Convertir PowerPoint en vidéo en JavaScript" +--- + +En convertissant votre présentation PowerPoint en vidéo, vous obtenez + +* **Augmentation de l'accessibilité :** Tous les appareils (quelle que soit la plateforme) sont équipés de lecteurs vidéo par défaut, contrairement aux applications d'ouverture de présentations, ce qui facilite l'ouverture ou la lecture des vidéos pour les utilisateurs. +* **Plus grande portée :** Grâce aux vidéos, vous pouvez toucher un large public et le cibler avec des informations qui pourraient autrement sembler fastidieuses dans une présentation. La plupart des enquêtes et des statistiques montrent que les gens regardent et consomment davantage les vidéos que les autres formes de contenu, et ils préfèrent généralement ce type de contenu. + +{{% alert color="primary" %}} + +Vous voudrez peut-être consulter notre [**Convertisseur en ligne PowerPoint en vidéo**](https://products.aspose.app/slides/conversion/ppt-to-word) car il s'agit d'une implémentation en direct et efficace du processus décrit ici. + +{{% /alert %}} + +## **Conversion de PowerPoint en vidéo dans Aspose.Slides** + +Dans [Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/), nous avons implémenté la prise en charge de la conversion de présentations en vidéo. + +* Utilisez **Aspose.Slides** pour générer un ensemble d'images (à partir des diapositives de la présentation) qui correspondent à un certain nombre d'images par seconde (FPS). +* Utilisez un utilitaire tiers comme **ffmpeg** ([pour java](https://github.com/bramp/ffmpeg-cli-wrapper)) pour créer une vidéo à partir des images. + +### **Convertir PowerPoint en vidéo** + +1. Téléchargez ffmpeg [ici](https://ffmpeg.org/download.html). + +2. Exécutez le code JavaScript de conversion PowerPoint en vidéo. + +Ce code JavaScript vous montre comment convertir une présentation (contendant une figure et deux effets d'animation) en vidéo : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Ajoute une forme sourire puis l'anime + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Configure le dossier des binaires ffmpeg. Voir cette page : https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Effets vidéo** + +Vous pouvez appliquer des animations aux objets sur les diapositives et utiliser des transitions entre les diapositives. + +{{% alert color="primary" %}} + +Vous voudrez peut-être consulter ces articles : [Animation PowerPoint](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/), [Animation de forme](https://docs.aspose.com/slides/nodejs-java/shape-animation/), et [Effet de forme](https://docs.aspose.com/slides/nodejs-java/shape-effect/). + +{{% /alert %}} + +Les animations et les transitions rendent les diaporamas plus attrayants et intéressants — et elles ont le même effet pour les vidéos. Ajoutons une autre diapositive et une transition au code de la présentation précédente : +```javascript +// Ajoute une forme sourire et l'anime +// ... +// Ajoute une nouvelle diapositive et une transition animée +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +Aspose.Slides prend également en charge l'animation du texte. Nous animons donc les paragraphes sur les objets, qui apparaîtront l'un après l'autre (avec un délai d'une seconde) : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Ajoute du texte et des animations + var autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 120, 300, 300); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Aspose Slides for Node.js via Java")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("convert PowerPoint Presentation with text to video")); + var para3 = new aspose.slides.Paragraph(); + para3.getPortions().add(new aspose.slides.Portion("paragraph by paragraph")); + var paragraphCollection = autoShape.getTextFrame().getParagraphs(); + paragraphCollection.add(para1); + paragraphCollection.add(para2); + paragraphCollection.add(para3); + paragraphCollection.add(new aspose.slides.Paragraph()); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effect1 = mainSequence.addEffect(para1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect2 = mainSequence.addEffect(para2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect3 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect4 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + effect1.getTiming().setTriggerDelayTime(1.0); + effect2.getTiming().setTriggerDelayTime(1.0); + effect3.getTiming().setTriggerDelayTime(1.0); + effect4.getTiming().setTriggerDelayTime(1.0); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Configure le dossier des exécutables ffmpeg. Voir cette page : https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Classes de conversion vidéo** + +Pour vous permettre d'effectuer des tâches de conversion de PowerPoint en vidéo, Aspose.Slides fournit les classes [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) et [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). + +[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) vous permet de définir la taille des images pour la vidéo (qui sera créée plus tard) via son constructeur. Si vous transmettez une instance de la présentation, `Presentation.getSlideSize` sera utilisée et il génère des animations que [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) utilise. + +Lorsque les animations sont générées, un événement `NewAnimation` est créé pour chaque animation suivante, qui possède le paramètre [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/). Ce dernier est une classe qui représente un lecteur pour une animation distincte. + +Pour travailler avec [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/), les méthodes [getDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#getDuration--) (la durée totale de l'animation) et [setTimePosition](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#setTimePosition-double-) sont utilisées. Chaque position d'animation est définie dans la plage *0 à durée*, puis la méthode `getFrame` renverra un BufferedImage correspondant à l'état de l'animation à ce moment‑là : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Ajoute une forme sourire et l'anime + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// état initial de l'animation + try { + // bitmap de l'état initial de l'animation + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// état final de l'animation + try { + // dernière image de l'animation + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Pour faire jouer toutes les animations d'une présentation simultanément, la classe [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) est utilisée. Cette classe prend une instance de [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) et le nombre d'images par seconde (FPS) pour les effets dans son constructeur, puis déclenche l'événement `FrameTick` pour toutes les animations afin de les faire jouer : +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Ensuite, les images générées peuvent être compilées pour produire une vidéo. Voir la section [Convertir PowerPoint en vidéo](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video). + +## **Animations et effets pris en charge** + +**Entrée** : + +| Animation Type | Aspose.Slides | PowerPoint | +|---|---|---| +| **Appear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly In** | ![supported](v.png) | ![supported](v.png) | +| **Float In** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Wheel** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Grow & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**Mise en valeur** : + +| Animation Type | Aspose.Slides | PowerPoint | +|---|---|---| +| **Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Color Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Teeter** | ![supported](v.png) | ![supported](v.png) | +| **Spin** | ![supported](v.png) | ![supported](v.png) | +| **Grow/Shrink** | ![not supported](x.png) | ![supported](v.png) | +| **Desaturate** | ![not supported](x.png) | ![supported](v.png) | +| **Darken** | ![not supported](x.png) | ![supported](v.png) | +| **Lighten** | ![not supported](x.png) | ![supported](v.png) | +| **Transparency** | ![not supported](x.png) | ![supported](v.png) | +| **Object Color** | ![not supported](x.png) | ![supported](v.png) | +| **Complementary Color** | ![not supported](x.png) | ![supported](v.png) | +| **Line Color** | ![not supported](x.png) | ![supported](v.png) | +| **Fill Color** | ![not supported](x.png) | ![supported](v.png) | + +**Sortie** : + +| Animation Type | Aspose.Slides | PowerPoint | +|---|---|---| +| **Disappear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly Out** | ![supported](v.png) | ![supported](v.png) | +| **Float Out** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Shrink & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**Trajectoires de mouvement** : + +| Animation Type | Aspose.Slides | PowerPoint | +|---|---|---| +| **Lines** | ![supported](v.png) | ![supported](v.png) | +| **Arcs** | ![supported](v.png) | ![supported](v.png) | +| **Turns** | ![supported](v.png) | ![supported](v.png) | +| **Shapes** | ![supported](v.png) | ![supported](v.png) | +| **Loops** | ![supported](v.png) | ![supported](v.png) | +| **Custom Path** | ![supported](v.png) | ![supported](v.png) | + +## **FAQ** + +**Est‑il possible de convertir des présentations protégées par mot de passe ?** + +Oui, Aspose.Slides permet de travailler avec des présentations protégées par mot de passe. Lors du traitement de tels fichiers, il faut fournir le mot de passe correct afin que la bibliothèque puisse accéder au contenu de la présentation. + +**Aspose.Slides prend‑il en charge une utilisation dans des solutions cloud ?** + +Oui, Aspose.Slides peut être intégré aux applications et services cloud. La bibliothèque est conçue pour fonctionner dans des environnements serveur, garantissant haute performance et évolutivité pour le traitement par lots de fichiers. + +**Existe‑t‑il des limitations de taille pour les présentations lors de la conversion ?** + +Aspose.Slides peut gérer des présentations de pratiquement n'importe quelle taille. Cependant, lors du traitement de fichiers très volumineux, des ressources système supplémentaires peuvent être nécessaires, et il est parfois recommandé d'optimiser la présentation afin d'améliorer les performances. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..c22aa1ab52 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,96 @@ +--- +title: Convertir PowerPoint en XPS +type: docs +weight: 70 +url: /fr/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX en XPS" +description: "Convertir PowerPoint PPT(X) en XPS en JavaScript" +--- + +## **À propos de XPS** + +Microsoft a développé [XPS](https://docs.fileformat.com/page-description-language/xps/) comme une alternative à [PDF](https://docs.fileformat.com/pdf/). Il vous permet d’imprimer du contenu en générant un fichier très similaire à un PDF. Le format XPS est basé sur XML. La mise en page ou la structure d’un fichier XPS reste identique sur tous les systèmes d’exploitation et toutes les imprimantes. + +## **Quand utiliser le format Microsoft XPS** + +{{% alert color="primary" %}} + +Pour voir comment Aspose.Slides convertit une présentation PPT ou PPTX au format XPS, vous pouvez consulter [cette application de conversion en ligne gratuite](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +Si vous souhaitez réduire les coûts de stockage, vous pouvez convertir votre présentation Microsoft PowerPoint au format XPS. Ainsi, vous trouverez plus facile d’enregistrer, de partager et d’imprimer vos documents. + +Microsoft continue d’assurer une prise en charge solide de XPS sous Windows (même sous Windows 10), vous pourriez donc envisager d’enregistrer les fichiers dans ce format. Si vous travaillez avec Windows 8.1, Windows 8, Windows 7 ou Windows Vista, XPS pourrait en fait être votre meilleure option pour certaines opérations. + +- **Windows 8** utilise le format OXPS (Open XPS) pour les fichiers XPS. OXPS est une version standardisée du format XPS original. Windows 8 offre une meilleure prise en charge des fichiers XPS que des fichiers PDF. + - **XPS** : Visionneuse/lecteur XPS intégré et fonction d’impression vers XPS disponible. + - **PDF** : Lecteur PDF disponible mais aucune fonction d’impression vers PDF. + +- **Windows 7 et Windows Vista** utilisent le format XPS original. Ces systèmes d’exploitation offrent également une meilleure prise en charge des fichiers XPS que des PDF. + - **XPS** : Visionneur XPS intégré et fonction d’impression vers XPS disponible. + - **PDF** : Aucun lecteur PDF. Aucun fonction d’impression vers PDF. + +|

**Entrée PPT(X) :**

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**Sortie XPS :**

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| +| :- | :- | + + + +Microsoft a finalement implémenté la prise en charge des opérations d’impression en PDF grâce à la fonction Imprimer en PDF sous Windows 10. Auparavant, on s’attendait à ce que les utilisateurs impriment les documents via le format XPS. + +## **Conversion XPS avec Aspose.Slides** + +Dans [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), vous pouvez utiliser la méthode [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) exposée par la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) pour convertir l’ensemble de la présentation en document XPS. + +Lors de la conversion d’une présentation en XPS, vous devez enregistrer la présentation en utilisant l’un de ces paramètres : + +- Paramètres par défaut (sans [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) +- Paramètres personnalisés (avec [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) + +### **Conversion de présentations en XPS avec les paramètres par défaut** + +Ce code d’exemple en JavaScript montre comment convertir une présentation en document XPS en utilisant les paramètres standards : +```javascript +// Instancier un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // Enregistrement de la présentation dans un document XPS + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + + +### **Conversion de présentations en XPS avec des paramètres personnalisés** +Ce code d’exemple montre comment convertir une présentation en document XPS en utilisant des paramètres personnalisés en JavaScript : +```javascript +// Instancier un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // Instancier la classe TiffOptions + var options = new aspose.slides.XpsOptions(); + // Enregistrer les MetaFiles en PNG + options.setSaveMetafilesAsPng(true); + // Enregistrer la présentation dans un document XPS + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je enregistrer en XPS dans un flux plutôt que dans un fichier ?** + +Oui — Aspose.Slides vous permet d’exporter directement vers un flux, ce qui est idéal pour les API Web, les pipelines côté serveur, ou tout scénario où vous souhaitez envoyer le XPS sans toucher au système de fichiers. + +**Les diapositives masquées sont‑elles conservées dans le XPS, et puis‑je les exclure ?** + +Par défaut, seules les diapositives régulières (visibles) sont rendues. Vous pouvez [inclure ou exclure les diapositives masquées](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/) via les [paramètres d’exportation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/) avant d’enregistrer en XPS, garantissant que la sortie contient exactement les pages que vous souhaitez. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..8c83f1a1c7 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,101 @@ +--- +title: Convertir PPT en PPTX en JavaScript +linktitle: Convertir PPT en PPTX +type: docs +weight: 20 +url: /fr/nodejs-java/convert-ppt-to-pptx/ +keywords: "Java Convertir PPT en PPTX, PowerPoint PPT en PPTX en JavaScript" +description: "Convertir PowerPoint PPT en PPTX en JavaScript." +--- + +## **Vue d'ensemble** + +Cet article explique comment convertir une présentation PowerPoint au format PPT en format PPTX à l'aide de JavaScript et d'une application de conversion en ligne PPT vers PPTX. Les sujets suivants sont abordés. + +- Convertir PPT en PPTX avec JavaScript + +## **Java Convert PPT to PPTX** + +Pour le code d'exemple JavaScript permettant de convertir PPT en PPTX, voir la section ci‑dessous : [Convert PPT to PPTX](#convert-ppt-to-pptx). Le code charge simplement le fichier PPT et le sauvegarde au format PPTX. En spécifiant différents formats de sauvegarde, vous pouvez également enregistrer le fichier PPT dans de nombreux autres formats tels que PDF, XPS, ODP, HTML, etc., comme expliqué dans ces articles. + +- [Java Convert PPT to PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java Convert PPT to XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java Convert PPT to HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java Convert PPT to ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java Convert PPT to Image](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **À propos de la conversion PPT vers PPTX** +Convertissez le format PPT ancien en PPTX avec l’API Aspose.Slides. Si vous devez convertir des milliers de présentations PPT en PPTX, la meilleure solution consiste à le faire de façon programmatique. Avec l’API Aspose.Slides, cela est possible en quelques lignes de code. L’API assure une compatibilité totale pour convertir une présentation PPT en PPTX et permet de : + +- Convertir des structures complexes de maîtres, de dispositions et de diapositives. +- Convertir des présentations contenant des graphiques. +- Convertir des présentations avec des formes groupées, des auto‑formes (comme des rectangles et des ellipses), des formes à géométrie personnalisée. +- Convertir des présentations possédant des textures et des images comme styles de remplissage pour les auto‑formes. +- Convertir des présentations avec des espaces réservés, des cadres de texte et des zones de texte. + +{{% alert color="primary" %}} + +Découvrez l’application [**Aspose.Slides PPT to PPTX Conversion**](https://products.aspose.app/slides/conversion/ppt-to-pptx) : + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +Cette application est basée sur l’[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/), vous pouvez donc voir un exemple fonctionnel des capacités de conversion de base de PPT vers PPTX. Aspose.Slides Conversion est une application web qui permet de déposer un fichier de présentation au format PPT et de le télécharger converti en PPTX. + +Découvrez d’autres exemples en direct de [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/). +{{% /alert %}} + +## **Convertir PPT en PPTX** +Aspose.Slides pour Node.js via Java permet désormais aux développeurs d’accéder à la présentation PPT à l’aide de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) et de la convertir au format [PPTX](https://docs.fileformat.com/presentation/pptx/). Actuellement, il prend en charge la conversion partielle de [PPT](https://docs.fileformat.com/presentation/ppt/) en PPTX. Pour plus de détails sur les fonctionnalités prises en charge et non prises en charge dans la conversion PPT vers PPTX, consultez la documentation suivante : [link](/slides/fr/nodejs-java/ppt-to-pptx-conversion/). + +Aspose.Slides pour Node.js via Java offre la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) qui représente un fichier de présentation **PPTX**. La classe Presentation peut désormais accéder également à **PPT** lorsqu’elle est instanciée. L’exemple suivant montre comment convertir une présentation PPT en présentation PPTX. +```javascript +// Instancier un objet Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // Enregistrement de la présentation PPTX au format PPTX + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**Figure : Présentation PPT source**| + +Le fragment de code ci‑dessus génère la présentation PPTX suivante après conversion + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**Figure : Présentation PPTX générée après conversion**| + +## **FAQ** + +**Quelle est la différence entre les formats PPT et PPTX ?** + +PPT est l’ancien format binaire utilisé par Microsoft PowerPoint, tandis que PPTX est le nouveau format basé sur XML introduit avec Microsoft Office 2007. Les fichiers PPTX offrent de meilleures performances, une taille de fichier réduite et une récupération de données améliorée. + +**Aspose.Slides prend‑il en charge la conversion en lots de plusieurs fichiers PPT en PPTX ?** + +Oui, vous pouvez utiliser Aspose.Slides dans une boucle pour convertir plusieurs fichiers PPT en PPTX de façon programmatique, ce qui convient aux scénarios de conversion en lots. + +**Le contenu et le formatage seront‑ils conservés après la conversion ?** + +Aspose.Slides maintient une haute fidélité lors de la conversion des présentations. Les dispositions de diapositives, les animations, les formes, les graphiques et les autres éléments de conception sont préservés pendant la conversion PPT en PPTX. + +**Puis‑je convertir d’autres formats comme PDF ou HTML à partir de fichiers PPT ?** + +Oui, Aspose.Slides prend en charge la conversion des fichiers PPT vers plusieurs formats, notamment PDF, XPS, HTML, ODP et des formats d’image tels que PNG et JPEG. + +**Est‑il possible de convertir PPT en PPTX sans Microsoft PowerPoint installé ?** + +Oui, Aspose.Slides est une API autonome qui ne nécessite ni Microsoft PowerPoint ni aucun logiciel tiers pour effectuer la conversion. + +**Existe‑t‑il un outil en ligne pour la conversion PPT en PPTX ?** + +Oui, vous pouvez utiliser gratuitement l’application web [Aspose.Slides PPT to PPTX Converter](https://products.aspose.app/slides/conversion/ppt-to-pptx) pour réaliser la conversion directement dans votre navigateur sans écrire de code. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..8466d30fd1 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: Convertir PPTX en PPT en JavaScript +linktitle: Convertir PPTX en PPT +type: docs +weight: 21 +url: /fr/nodejs-java/convert-pptx-to-ppt/ +keywords: "Java Convertir PPTX en PPT, Convertir une présentation PowerPoint, PPTX en PPT, Java, Aspose.Slides" +description: "Convertir PowerPoint PPTX en PPT en JavaScript" +--- + +## **Vue d'ensemble** + +Cet article explique comment convertir une présentation PowerPoint au format PPTX en format PPT à l'aide de JavaScript. Le sujet suivant est couvert. + +- Convertir PPTX en PPT avec JavaScript + +## **JavaScript Convertir PPTX en PPT** + +Pour le code d'exemple JavaScript permettant de convertir PPTX en PPT, veuillez consulter la section ci‑dessous, à savoir [Convertir PPTX en PPT](#convert-pptx-to-ppt). Il charge simplement le fichier PPTX et l'enregistre au format PPT. En spécifiant différents formats d'enregistrement, vous pouvez également enregistrer le fichier PPTX dans de nombreux autres formats tels que PDF, XPS, ODP, HTML, etc., comme expliqué dans ces articles. + +- [JavaScript Convertir PPTX en PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [JavaScript Convertir PPTX en XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [JavaScript Convertir PPTX en HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [JavaScript Convertir PPTX en ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [JavaScript Convertir PPTX en Image](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **Convertir PPTX en PPT** + +Pour convertir un PPTX en PPT, il suffit de transmettre le nom du fichier et le format d'enregistrement à la méthode **Save** de la classe [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). L'exemple de code JavaScript ci‑dessous convertit une présentation de PPTX en PPT en utilisant les options par défaut. +```javascript +// instancier un objet Presentation qui représente un fichier PPTX +var presentation = new aspose.slides.Presentation("template.pptx"); +// enregistrer la présentation au format PPT +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **FAQ** + +**Toutes les effets et fonctionnalités PPTX sont‑ils conservés lors de l'enregistrement au format PPT hérité (97–2003) ?** + +Pas toujours. Le format PPT ne prend pas en charge certaines fonctionnalités plus récentes (par ex., certains effets, objets et comportements), de sorte que les fonctionnalités peuvent être simplifiées ou rasterisées lors de la conversion. + +**Puis‑je convertir uniquement des diapositives sélectionnées en PPT au lieu de toute la présentation ?** + +L'enregistrement direct cible l'intégralité de la présentation. Pour convertir des diapositives spécifiques, créez une nouvelle présentation contenant uniquement ces diapositives et enregistrez‑la au format PPT ; sinon, utilisez un service/API qui prend en charge les paramètres de conversion par diapositive. + +**Les présentations protégées par mot de passe sont‑elles prises en charge ?** + +Oui. Vous pouvez détecter si un fichier est protégé, l'ouvrir avec un mot de passe, et également [configurer les paramètres de protection/chiffrement](/slides/fr/nodejs-java/password-protected-presentation/) pour le PPT enregistré. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..9d153302c1 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,63 @@ +--- +title: PPT vs PPTX +type: docs +weight: 10 +url: /fr/nodejs-java/ppt-vs-pptx/ +keywords: "PPT vs PPTX" +description: "Lisez les différences entre PPT et PPTX dans Aspose.Slides." +--- + +## **Qu'est-ce que le PPT ?** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) est un format de fichier binaire, c’est-à-dire qu’il est impossible de visualiser son contenu sans outils spéciaux. Les premières versions de PowerPoint 97-2003 utilisaient le format de fichier PPT, mais son extensibilité est limitée. + +## **Qu'est-ce que le PPTX ?** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) est un nouveau format de présentation, basé sur la norme Office Open XML (ISO 29500:2008-2016, ECMA-376). PPTX est un ensemble archivé de fichiers XML et multimédias. Le format PPTX est facilement extensible. Par exemple, il est facile d’ajouter la prise en charge d’un nouveau type de graphique ou de forme, sans modifier le format PPTX dans chaque nouvelle version de PowerPoint. Le format PPTX est utilisé depuis PowerPoint 2007. + +## **PPT vs PPTX** + +Bien que PPTX offre une fonctionnalité beaucoup plus étendue, le PPT reste assez populaire. La nécessité de convertir de PPT en PPTX et vice‑versa est fortement demandée. + +Cependant, la conversion entre le vieux format PPT et le nouveau format PPTX représente le défi le plus compliqué parmi les autres formats Microsoft Office. Bien que la spécification du format PPT soit ouverte, il est difficile de travailler avec. PowerPoint peut créer des parties spéciales (MetroBlob) dans les fichiers PPT pour stocker des informations provenant de PPTX qui ne sont pas prises en charge par le format PPT et ne peuvent pas être affichées dans les anciennes versions de PowerPoint. Ces informations peuvent être restaurées lorsqu’un fichier PPT est chargé dans une version moderne de PowerPoint ou converti au format PPTX. + +Aspose.Slides fournit une classe commune pour travailler avec tous les formats de présentation. Elle permet de convertir de PPT à PPTX et de PPTX à PPT de manière très simple. Aspose.Slides prend en charge entièrement la conversion de PPT à PPTX et prend également en charge la conversion de PPTX à PPT avec certaines restrictions. Nous recommandons d’utiliser le format PPTX chaque fois que possible. + +{{% alert color="primary" %}} +Vérifiez la qualité des conversions de PPT en PPTX et de PPTX en PPT avec l’application en ligne [**Aspose.Slides Conversion app**](https://products.aspose.app/slides/conversion/). +{{% /alert %}} +```javascript +// Instanciez un objet Presentation qui représente un fichier PPT +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // Enregistrement de la présentation PPT au format PPTX + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +En savoir plus [**Comment convertir les présentations PPT en PPTX**](/slides/fr/nodejs-java/convert-ppt-to-pptx/) +{{% /alert %}} + +## **FAQ** + +**Y a-t-il un intérêt à conserver les anciennes présentations en PPT si elles s’ouvrent sans erreur ?** + +Si une présentation s’ouvre de façon fiable et n’a pas besoin de collaboration ou de nouvelles fonctionnalités, vous pouvez la conserver en PPT. Mais pour la compatibilité future et l’extensibilité, il vaut mieux [convertir en PPTX](/slides/fr/nodejs-java/convert-ppt-to-pptx/) : le format repose sur la norme OOXML ouverte et est plus facilement pris en charge par les outils modernes. + +**Comment décider quels fichiers sont critiques à convertir en PPTX en premier ?** + +Convertissez d’abord les présentations qui : sont éditées par plusieurs personnes ; contiennent des [graphiques](/slides/fr/nodejs-java/create-chart/)/[formes](/slides/fr/nodejs-java/shape-manipulations/) complexes ; sont utilisées dans des communications externes ; ou déclenchent des avertissements lors de l’[ouverture](/slides/fr/nodejs-java/open-presentation/). + +**La protection par mot de passe sera-t-elle conservée lors de la conversion de PPT en PPTX et inversement ?** + +La présence d’un mot de passe n’est transmise que si la conversion et le support du chiffrement sont corrects dans l’outil utilisé. Il est plus fiable de [supprimer la protection](/slides/fr/nodejs-java/password-protected-presentation/), [convertir](/slides/fr/nodejs-java/convert-ppt-to-pptx/), puis de réappliquer la protection selon votre politique de sécurité. + +**Pourquoi certains effets disparaissent-ils ou sont-ils simplifiés lors de la conversion de PPTX en PPT ?** + +Parce que le PPT ne prend pas en charge certains objets/propriétés plus récents. PowerPoint et les outils peuvent stocker des « traces » de ces informations dans des blocs spéciaux pour une restauration ultérieure, mais les anciennes versions de PowerPoint ne les rendront pas. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..209bbb3a93 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,65 @@ +--- +title: Rendre une diapositive en image SVG +type: docs +weight: 50 +url: /fr/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **Format SVG** + +SVG, acronyme de Scalable Vector Graphics, est un type ou format graphique standard utilisé pour rendre des images bidimensionnelles. SVG stocke les images sous forme de vecteurs dans du XML avec des détails qui définissent leur comportement ou leur apparence. + +SVG est l’un des rares formats d’image qui répond à des exigences très élevées en matière de : évolutivité, interactivité, performances, accessibilité, programmabilité, etc. Pour ces raisons, il est couramment utilisé dans le développement Web. + +Vous pouvez souhaiter utiliser des fichiers SVG lorsque vous devez + +- **imprimer votre présentation dans un *format très grand*.** Les images SVG peuvent être agrandies à n’importe quelle résolution. Vous pouvez redimensionner les images SVG autant de fois que nécessaire sans perdre en qualité. +- **utiliser des graphiques et diagrammes de vos diapositives sur *différents supports ou plateformes*.** La plupart des lecteurs peuvent interpréter les fichiers SVG. +- **utiliser les *tailles d'image les plus petites possibles*.** Les fichiers SVG sont généralement plus petits que leurs équivalents haute résolution dans d’autres formats, notamment ceux basés sur le bitmap (JPEG ou PNG). + +## **Rendre les diapositives en images SVG** + +Aspose.Slides for Node.js via Java vous permet d’exporter les diapositives de vos présentations au format SVG. Suivez ces étapes pour générer des images SVG : + +1. Créez une instance de la classe Presentation. +2. Parcourez toutes les diapositives de la présentation. +3. Écrivez chaque diapositive dans son propre fichier SVG à l'aide de FileOutputStream. + +{{% alert color="primary" %}} + +Vous pouvez essayer notre [free web application](https://products.aspose.app/slides/conversion/ppt-to-svg) dans lequel nous avons implémenté la fonction de conversion PPT vers SVG d’Aspose.Slides for Node.js via Java. + +{{% /alert %}} + +Ce code d’exemple en JavaScript vous montre comment convertir un PPT en SVG à l’aide d’Aspose.Slides : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Pourquoi le SVG résultant peut-il apparaître différemment selon les navigateurs ?** +Le support de certaines fonctionnalités SVG est implémenté différemment par les moteurs de navigation. Les paramètres [SVGOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) aident à lisser les incompatibilités. + +**Est‑il possible d’exporter non seulement les diapositives mais aussi des formes individuelles au format SVG ?** +Oui. Toute [forme peut être enregistrée en tant que SVG distinct](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/), ce qui est pratique pour les icônes, pictogrammes et la réutilisation de graphiques. + +**Peut‑on combiner plusieurs diapositives en un seul SVG (bande/document) ?** +Le scénario standard est une diapositive → un SVG. Combiner plusieurs diapositives dans un même canevas SVG constitue une étape de post‑traitement réalisée au niveau de l’application. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..132a9c2b08 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,154 @@ +--- +title: Exportation vers HTML5 +type: docs +weight: 40 +url: /fr/nodejs-java/export-to-html5/ +keywords: +- PowerPoint vers HTML +- diapositives vers HTML +- HTML5 +- export HTML +- exportation de la présentation +- conversion de la présentation +- conversion de diapositives +- Java +- Aspose.Slides pour Node.js via Java +description: "Exportation de PowerPoint vers HTML5 en JavaScript" +--- + +{{% alert title="Info" color="info" %}} + +Dans [Aspose.Slides 21.9](/slides/fr/nodejs-java/aspose-slides-for-java-21-9-release-notes/), nous avons implémenté la prise en charge de l'exportation HTML5. + +{{% /alert %}} + +Le processus d'exportation vers HTML5 vous permet de convertir PowerPoint en HTML sans extensions web ni dépendances. Ainsi, en utilisant vos propres modèles, vous pouvez appliquer des options très flexibles qui définissent le processus d'exportation ainsi que le HTML, CSS, JavaScript et les attributs d'animation résultants. + +## **Exporter PowerPoint en HTML5** + +Ce code JavaScript montre comment exporter une présentation en HTML5 sans extensions web ni dépendances : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +Dans ce cas, vous obtenez un HTML propre. + +{{% /alert %}} + +Vous pouvez spécifier les paramètres des animations de formes et des transitions de diapositives de cette manière : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exporter PowerPoint en HTML** + +Ce JavaScript démontre le processus standard d'exportation de PowerPoint vers HTML : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Dans ce cas, le contenu de la présentation est rendu via SVG sous la forme suivante : +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="Note" color="warning" %}} + +Lorsque vous utilisez cette méthode pour exporter PowerPoint en HTML, en raison du rendu SVG, vous ne pourrez pas appliquer de styles ni animer d'éléments spécifiques. + +{{% /alert %}} + +## **Exporter PowerPoint en vue diapositive HTML5** + +**Aspose.Slides** vous permet de convertir une présentation PowerPoint en document HTML5 dans lequel les diapositives sont présentées en mode vue diapositive. Dans ce cas, lorsque vous ouvrez le fichier HTML5 résultant dans un navigateur, vous voyez la présentation en mode vue diapositive sur une page web. + +Ce code JavaScript démontre le processus d'exportation de PowerPoint vers la vue diapositive HTML5 : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convertir une présentation en document HTML5 avec commentaires** + +Les commentaires dans PowerPoint sont un outil qui permet aux utilisateurs de laisser des notes ou des retours sur les diapositives de la présentation. Ils sont particulièrement utiles dans les projets collaboratifs, où plusieurs personnes peuvent ajouter leurs suggestions ou remarques à des éléments spécifiques des diapositives sans modifier le contenu principal. Chaque commentaire indique le nom de l'auteur, ce qui facilite le suivi de la personne ayant laissé la remarque. + +Supposons que nous ayons la présentation PowerPoint suivante enregistrée dans le fichier "sample.pptx". + +![Deux commentaires sur la diapositive de la présentation](two_comments_pptx.png) + +Lorsque vous convertissez une présentation PowerPoint en document HTML5, vous pouvez facilement spécifier s'il faut inclure les commentaires de la présentation dans le document de sortie. Pour ce faire, vous devez spécifier les paramètres d'affichage des commentaires dans la propriété `notes_comments_layouting` de la classe [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/). + +L'exemple de code suivant convertit une présentation en document HTML5 avec les commentaires affichés à droite des diapositives. +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +Le document "output.html" est affiché sur l'image ci-dessous. + +![Les commentaires dans le document HTML5 de sortie](two_comments_html5.png) + +## **FAQ** + +**Puis-je contrôler si les animations d'objets et les transitions de diapositives seront jouées en HTML5 ?** + +Oui, HTML5 propose des options distinctes pour activer ou désactiver les [animations de formes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) et les [transitions de diapositives](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/). + +**La sortie des commentaires est-elle prise en charge, et où peuvent-ils être placés par rapport à la diapositive ?** + +Oui, les commentaires peuvent être ajoutés en HTML5 et positionnés (par exemple, à droite de la diapositive) via les [paramètres de mise en page](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) pour les notes et les commentaires. + +**Puis-je ignorer les liens qui invoquent du JavaScript pour des raisons de sécurité ou de CSP ?** + +Oui, il existe un [paramètre](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks) qui vous permet d'ignorer les hyperliens contenant des appels JavaScript lors de l'enregistrement. Cela aide à respecter des politiques de sécurité strictes. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..65a2f8e6aa --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,68 @@ +--- +title: Exportation vers XAML +type: docs +weight: 30 +url: /fr/nodejs-java/export-to-xaml/ +--- + +## **Exportation de présentations vers XAML** + +{{% alert color="primary" %}} + +Dans [Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/), nous avons implémenté la prise en charge de l'exportation XAML. Vous pouvez maintenant exporter vos présentations au format XAML. + +{{% /alert %}} + +## **À propos de XAML** + +XAML est un langage de programmation descriptif qui vous permet de créer ou d'écrire des classes utilisateur pour des applications, en particulier celles qui utilisent WPF (Windows Presentation Foundation), UWP (Universal Windows Platform) et Xamarin Forms. + +XAML, qui est un langage basé sur XML, est la variante de Microsoft pour décrire une interface graphique. Vous utiliserez probablement un concepteur pour travailler sur les fichiers XAML la plupart du temps, mais vous pouvez également écrire et modifier votre interface graphique. + +## **Exportation de présentations vers XAML avec les options par défaut** + +Ce code JavaScript vous montre comment exporter une présentation au format XAML avec les paramètres par défaut : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exportation de présentations vers XAML avec des options personnalisées** + +Vous pouvez sélectionner des options de la classe [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions) qui contrôlent le processus d'exportation et déterminent comment Aspose.Slides exporte votre présentation au format XAML. + +Par exemple, si vous souhaitez qu'Aspose.Slides ajoute les diapositives masquées de votre présentation lors de l'exportation vers XAML, vous pouvez définir la méthode [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-) sur true. Voir ce code JavaScript d'exemple : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Comment garantir des polices prévisibles si la police d'origine n'est pas disponible sur la machine ?** + +Utilisez [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) dans [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — il est utilisé comme police de secours lorsque la police d'origine est manquante. Cela permet d'éviter les substitutions inattendues. + +**Le XAML exporté est-il destiné uniquement à WPF ou peut-il être utilisé dans d'autres piles XAML également ?** + +XAML est un langage de balisage UI général utilisé dans WPF, UWP et Xamarin.Forms. L'exportation cible la compatibilité avec les piles XAML de Microsoft ; le comportement exact et la prise en charge de constructions spécifiques dépendent de la plateforme cible. Testez le balisage dans votre environnement. + +**Les diapositives masquées sont-elles prises en charge et comment les empêcher d'être exportées par défaut ?** + +Par défaut, les diapositives masquées ne sont pas incluses. Vous pouvez contrôler ce comportement via [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/) dans [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — conservez-le désactivé si vous n'avez pas besoin de les exporter. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..05845a2737 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,74 @@ +--- +title: Créer une présentation PowerPoint en JavaScript +linktitle: Créer une présentation +type: docs +weight: 10 +url: /fr/nodejs-java/create-presentation/ +keywords: créer ppt java, créer présentation ppt, créer pptx java +description: Apprenez comment créer des présentations PowerPoint, par ex. PPT, PPTX en JavaScript à partir de zéro. +--- + +## **Créer une présentation PowerPoint** + +Pour ajouter une simple ligne droite à une diapositive sélectionnée de la présentation, veuillez suivre les étapes ci-dessous: + +1. Créez une instance de la classe Presentation. +1. Obtenez la référence d’une diapositive en utilisant son Index. +1. Ajoutez une AutoShape de type Ligne en utilisant la méthode addAutoShape exposée par l’objet Shapes. +1. Enregistrez la présentation modifiée en tant que fichier PPTX. + +Dans l’exemple ci‑dessous, nous avons ajouté une ligne à la première diapositive de la présentation. +```javascript +// Instancier un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter une autoshape de type ligne + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quels formats puis‑je enregistrer une nouvelle présentation ?** + +Vous pouvez enregistrer au format [PPTX, PPT, and ODP](/slides/fr/nodejs-java/save-presentation/), et exporter vers [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/), [XPS](/slides/fr/nodejs-java/convert-powerpoint-to-xps/), [HTML](/slides/fr/nodejs-java/convert-powerpoint-to-html/), [SVG](/slides/fr/nodejs-java/convert-powerpoint-to-png/), et [images](/slides/fr/nodejs-java/convert-powerpoint-to-png/), parmi d’autres. + +**Puis‑je commencer à partir d’un modèle (POTX/POTM) et l’enregistrer en PPTX ordinaire ?** + +Oui. Chargez le modèle et enregistrez-le au format souhaité ; les formats POTX/POTM/PPTM et similaires [are supported](/slides/fr/nodejs-java/supported-file-formats/). + +**Comment contrôler la taille/ratio d’aspect d’une diapositive lors de la création d’une présentation ?** + +Définissez la [slide size](/slides/fr/nodejs-java/slide-size/) (y compris les préréglages tels que 4:3 et 16:9 ou des dimensions personnalisées) et choisissez comment le contenu doit être mis à l’échelle. + +**Dans quelles unités les tailles et coordonnées sont‑elles mesurées ?** + +En points : 1 pouce équivaut à 72 unités. + +**Comment gérer de très grandes présentations (avec de nombreux fichiers multimédias) pour réduire l’utilisation de la mémoire ?** + +Utilisez les [BLOB management strategies](/slides/fr/nodejs-java/manage-blob/), limitez le stockage en mémoire en exploitant les fichiers temporaires, et privilégiez les flux de travail basés sur des fichiers plutôt que les flux purement en mémoire. + +**Puis‑je créer/enregistrer des présentations en parallèle ?** + +Vous ne pouvez pas opérer sur la même instance de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) depuis [multiple threads](/slides/fr/nodejs-java/multithreading/). Exécutez des instances séparées et isolées par thread ou processus. + +**Comment supprimer le filigrane d’essai et les limitations ?** + +[Apply a license](/slides/fr/nodejs-java/licensing/) une fois par processus. Le XML de licence doit rester inchangé, et la configuration de licence doit être synchronisée si plusieurs threads sont impliqués. + +**Puis‑je signer numériquement le PPTX que je crée ?** + +Oui. Les [Digital signatures](/slides/fr/nodejs-java/digital-signature-in-powerpoint/) (ajout et vérification) sont prises en charge pour les présentations. + +**Les macros (VBA) sont‑elles prises en charge dans les présentations créées ?** + +Oui. Vous pouvez [create/edit VBA projects](/slides/fr/nodejs-java/presentation-via-vba/) et enregistrer des fichiers macro‑activés tels que PPTM/PPSM. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..94a3c26e4d --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,117 @@ +--- +title: Examiner la présentation +type: docs +weight: 30 +url: /fr/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- présentation +- format de présentation +- propriétés de présentation +- propriétés du document +- obtenir les propriétés +- lire les propriétés +- changer les propriétés +- modifier les propriétés +- PPTX +- PPT +- JavaScript +- Node +description: "Lire et modifier les propriétés d'une présentation PowerPoint dans Node" +--- + +Aspose.Slides for Node.js via Java vous permet d’examiner une présentation afin d’en connaître les propriétés et de comprendre son comportement. + +{{% alert title="Info" color="info" %}} + +Les classes [PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) et [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) contiennent les propriétés et les méthodes utilisées dans les opérations présentées ici. + +{{% /alert %}} + +## **Vérifier le format d’une présentation** + +Avant de travailler sur une présentation, il peut être utile de déterminer le format (PPT, PPTX, ODP, etc.) dans lequel la présentation se trouve actuellement. + +Vous pouvez vérifier le format d’une présentation sans la charger. Voir ce code JavaScript : +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP +``` + + +## **Obtenir les propriétés d’une présentation** + +Ce code JavaScript vous montre comment obtenir les propriétés d’une présentation (informations sur la présentation) : +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +Vous voudrez peut‑être consulter les [propriétés sous la classe DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--) . + +## **Mettre à jour les propriétés d’une présentation** + +Aspose.Slides fournit la méthode [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-) qui vous permet de modifier les propriétés d’une présentation. + +Imaginons que nous ayons une présentation PowerPoint avec les propriétés de document ci‑dessous. + +![Original document properties of the PowerPoint presentation](input_properties.png) + +Cet exemple de code montre comment modifier certaines propriétés de la présentation : +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +Les résultats de la modification des propriétés de document sont présentés ci‑dessous. + +![Changed document properties of the PowerPoint presentation](output_properties.png) + +## **Liens utiles** + +Pour obtenir plus d’informations sur une présentation et ses attributs de sécurité, vous pouvez consulter les liens suivants : + +- [Vérifier si une présentation est chiffrée](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [Vérifier si une présentation est protégée en écriture (lecture seule)](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [Vérifier si une présentation est protégée par mot de passe avant de la charger](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [Confirmer le mot de passe utilisé pour protéger une présentation](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **FAQ** + +**Comment puis‑je vérifier si les polices sont incorporées et lesquelles ?** + +Recherchez les informations sur les [polices incorporées](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/) au niveau de la présentation, puis comparez ces entrées avec l’ensemble des [polices réellement utilisées dans le contenu](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/) pour identifier les polices critiques pour le rendu. + +**Comment puis‑je rapidement savoir si le fichier contient des diapositives masquées et combien ?** + +Parcourez la [collection de diapositives](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) et inspectez le [drapeau de visibilité](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/) de chaque diapositive. + +**Puis‑je détecter si une taille et une orientation de diapositive personnalisées sont utilisées, et si elles diffèrent des valeurs par défaut ?** + +Oui. Comparez la [taille de diapositive](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) actuelle et son orientation avec les paramètres standard ; cela aide à anticiper le comportement lors de l’impression et de l’exportation. + +**Existe‑t‑il un moyen rapide de voir si les graphiques font référence à des sources de données externes ?** + +Oui. Parcourez tous les [graphiques](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), vérifiez leur [source de données](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/), et notez si les données sont internes ou liées, en incluant les liens cassés éventuels. + +**Comment évaluer les diapositives « lourdes » qui pourraient ralentir le rendu ou l’exportation PDF ?** + +Pour chaque diapositive, comptez les objets et repérez les images volumineuses, la transparence, les ombres, les animations et les médias ; attribuez un score de complexité approximatif afin de signaler les points de performance potentiels. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..d5d7d34159 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,85 @@ +--- +title: Importer une présentation +type: docs +weight: 60 +url: /fr/nodejs-java/import-presentation/ +keywords: "Importer PowerPoint, PDF vers Présentation, PDF vers PPTX, PDF vers PPT, Java, Aspose.Slides pour Node.js via Java" +description: "Importer une présentation PowerPoint depuis un PDF. Convertir un PDF en PowerPoint" +--- + +En utilisant [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), vous pouvez importer des présentations à partir de fichiers dans d’autres formats. Aspose.Slides fournit la classe [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) permettant d’importer des présentations depuis des PDF, des documents HTML, etc. + +## **Importer PowerPoint à partir de PDF** + +Dans ce cas, vous pouvez convertir un PDF en présentation PowerPoint. + +pdf-to-powerpoint + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Appelez la méthode [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) et transmettez le fichier PDF. +3. Utilisez la méthode [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) pour enregistrer le fichier au format PowerPoint. + +Ce code JavaScript illustre l’opération de conversion PDF vers PowerPoint : +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Vous pouvez consulter l’application web **Aspose free** [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint) car il s’agit d’une implémentation en direct du processus décrit ici. +{{% /alert %}} + +## **Importer PowerPoint à partir de HTML** + +Dans ce cas, vous pouvez convertir un document HTML en présentation PowerPoint. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Appelez la méthode [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) et transmettez le fichier PDF. +3. Utilisez la méthode [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) pour enregistrer le fichier au format PowerPoint. + +Ce code JavaScript illustre l’opération de conversion HTML vers PowerPoint : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Les tableaux sont-ils conservés lors de l’importation d’un PDF, et leur détection peut‑elle être améliorée ?** + +Les tableaux peuvent être détectés lors de l’importation ; [PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) comprend une méthode [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables) qui active la reconnaissance des tableaux. L’efficacité dépend de la structure du PDF. + +{{% alert title="Note" color="warning" %}} +Vous pouvez également utiliser Aspose.Slides pour convertir du HTML vers d’autres formats de fichiers populaires : + +* [HTML vers image](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML vers JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML vers XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML vers TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..8bf752dd9c --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,123 @@ +--- +title: Gérer le diaporama +type: docs +weight: 90 +url: /fr/nodejs-java/manage-slide-show/ +keywords: +- type de diaporama +- présenté par un intervenant +- parcouru par un individu +- parcouru en kiosque +- options du diaporama +- boucle continue +- diaporama sans narration +- diaporama sans animation +- couleur du stylo +- diapositives du diaporama +- diaporama personnalisé +- avancer les diapositives +- manuellement +- avec minutages +- PowerPoint +- présentation +- Node.js +- JavaScript +- Aspose.Slides pour Node.js via Java +description: "Gérer les paramètres du diaporama dans les présentations PowerPoint à l'aide de JavaScript" +--- + +Dans Microsoft PowerPoint, les paramètres du **Diaporama** sont un outil essentiel pour préparer et présenter des présentations professionnelles. L’une des fonctionnalités les plus importantes de cette section est **Set Up Show**, qui vous permet d’adapter votre présentation à des conditions et à des publics spécifiques, assurant ainsi flexibilité et commodité. Avec cette fonctionnalité, vous pouvez sélectionner le type de diaporama (par exemple, présenté par un intervenant, parcouru par un individu ou parcouru en kiosque), activer ou désactiver la boucle, choisir des diapositives spécifiques à afficher et utiliser les minutages. Cette étape de préparation est cruciale pour rendre votre présentation plus efficace et professionnelle. + +`getSlideShowSettings` est une méthode de la classe [Présentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) qui renvoie un objet de type [SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/), vous permettant de gérer les paramètres du diaporama dans une présentation PowerPoint. Dans cet article, nous explorerons comment utiliser cette méthode pour configurer et contrôler divers aspects des paramètres du diaporama. + +## **Sélectionner le type de diaporama** + +`SlideShowSettings.setSlideShowType` définit le type de diaporama, qui peut être une instance des classes suivantes : [PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/), [BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/), ou [BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/). L’utilisation de cette méthode vous permet d’adapter la présentation à différents scénarios d’utilisation, tels que les kiosques automatisés ou les présentations manuelles. + +L’exemple de code ci‑dessous crée une nouvelle présentation et définit le type de diaporama sur « Parcouru par un individu » sans afficher la barre de défilement. +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Activer les options du diaporama** + +`SlideShowSettings.setLoop` détermine si le diaporama doit se répéter en boucle jusqu’à être arrêté manuellement. Cela est utile pour les présentations automatisées qui doivent fonctionner en continu. `SlideShowSettings.setShowNarration` indique si les narrations vocales doivent être lues pendant le diaporama. C’est utile pour les présentations automatisées contenant des consignes audio pour le public. `SlideShowSettings.setShowAnimation` indique si les animations ajoutées aux objets de diapositives doivent être lues. Cela permet de fournir l’effet visuel complet de la présentation. + +L’exemple de code suivant crée une nouvelle présentation et boucle le diaporama. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Sélectionner les diapositives à afficher** + +La méthode `SlideShowSettings.setSlides` vous permet de choisir une plage de diapositives à afficher pendant la présentation. Cela est utile lorsque vous ne devez afficher qu’une partie de la présentation plutôt que toutes les diapositives. L’exemple de code suivant crée une nouvelle présentation et définit la plage de diapositives à afficher de la diapositive `2` à la diapositive `9`. +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Utiliser les minutages des diapositives** + +La méthode `SlideShowSettings.setUseTimings` permet d’activer ou de désactiver l’utilisation des minutages prédéfinis pour chaque diapositive. Cela est utile pour afficher automatiquement les diapositives avec des durées d’affichage pré‑définies. L’exemple de code ci‑dessous crée une nouvelle présentation et désactive l’utilisation des minutages. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Afficher les contrôles multimédia** + +La méthode `SlideShowSettings.setShowMediaControls` détermine si les contrôles multimédia (tels que lecture, pause et arrêt) doivent être affichés pendant le diaporama lorsqu’un contenu multimédia (par exemple, vidéo ou audio) est lu. Cela est utile lorsque vous souhaitez donner à l’intervenant le contrôle de la lecture multimédia pendant la présentation. + +L’exemple de code suivant crée une nouvelle présentation et active l’affichage des contrôles multimédia. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **FAQ** + +**Puis‑je enregistrer une présentation afin qu’elle s’ouvre directement en mode diaporama ?** + +Oui. Enregistrez le fichier au format PPSX ou PPSM ; ces formats se lancent directement en diaporama lorsqu’ils sont ouverts dans PowerPoint. Dans Aspose.Slides, choisissez le format d’enregistrement correspondant [lors de l’exportation](/slides/fr/nodejs-java/save-presentation/). + +**Puis‑je exclure des diapositives individuelles du diaporama sans les supprimer du fichier ?** + +Oui. Marquez une diapositive comme [masquée](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/). Les diapositives masquées restent dans la présentation mais ne sont pas affichées pendant le diaporama. + +**Aspose.Slides peut‑il lire un diaporama ou contrôler une présentation en direct à l’écran ?** + +Non. Aspose.Slides édite, analyse et convertit les fichiers de présentation ; la lecture réelle est assurée par une application de visualisation telle que PowerPoint. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..689a39ac1d --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,275 @@ +--- +title: Fusion de présentation +type: docs +weight: 40 +url: /fr/nodejs-java/merge-presentation/ +keywords: "Fusionner PowerPoint, PPTX, PPT, combiner PowerPoint, fusionner présentation, combiner présentation, Java" +description: "Fusionner ou combiner une présentation PowerPoint en JavaScript" +--- + +## **Fusion de présentations** + +Lorsque vous fusionnez une présentation avec une autre, vous combinez effectivement leurs diapositives dans une seule présentation pour obtenir un fichier unique. + +{{% alert title="Info" color="info" %}} + +La plupart des programmes de présentation (PowerPoint ou OpenOffice) ne disposent pas de fonctions permettant aux utilisateurs de combiner des présentations de cette manière. + +[**Aspose.Slides pour Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), cependant, vous permet de fusionner des présentations de différentes manières. Vous pouvez fusionner des présentations avec toutes leurs formes, styles, textes, mise en forme, commentaires, animations, etc. sans vous soucier de perte de qualité ou de données. + +**Voir aussi** + +[Cloner les diapositives](https://docs.aspose.com/slides/nodejs-java/clone-slides/). + +{{% /alert %}} + +### **Ce qui peut être fusionné** + +Avec Aspose.Slides, vous pouvez fusionner + +* toutes les présentations. Toutes les diapositives des présentations se retrouvent dans une seule présentation +* diapositives spécifiques. Les diapositives sélectionnées se retrouvent dans une seule présentation +* présentations dans un même format (PPT vers PPT, PPTX vers PPTX, etc.) et dans des formats différents (PPT vers PPTX, PPTX vers ODP, etc.) les unes vers les autres. + +{{% alert title="Note" color="warning" %}} + +En plus des présentations, Aspose.Slides vous permet de fusionner d'autres fichiers : + +* [Images](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/), telles que [JPG vers JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) ou [PNG vers PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/) +* Documents, tels que [PDF vers PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) ou [HTML vers HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/) +* Et deux fichiers différents tels que [image vers PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) ou [JPG vers PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) ou [TIFF vers PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/). + +{{% /alert %}} + +### **Options de fusion** + +Vous pouvez appliquer des options qui déterminent si + +* chaque diapositive de la présentation de sortie conserve un style unique +* un style spécifique est utilisé pour toutes les diapositives de la présentation de sortie. + +Pour fusionner des présentations, Aspose.Slides fournit les méthodes [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) (de la classe [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection)). Il existe plusieurs implémentations des méthodes `addClone` qui définissent les paramètres du processus de fusion des présentations. Chaque objet Presentation possède une collection [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--), vous pouvez donc appeler une méthode `addClone` depuis la présentation dans laquelle vous souhaitez fusionner les diapositives. + +La méthode `addClone` renvoie un objet `Slide`, qui est un clone de la diapositive source. Les diapositives d’une présentation de sortie sont simplement une copie des diapositives de la source. Ainsi, vous pouvez modifier les diapositives résultantes (par exemple, appliquer des styles, des options de mise en forme ou des dispositions) sans vous soucier d’affecter les présentations sources. + +## **Fusionner des présentations** + +Aspose.Slides fournit la méthode [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) qui vous permet de combiner des diapositives tout en conservant leurs dispositions et styles (paramètres par défaut). + +Ce code JavaScript vous montre comment fusionner des présentations : +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Fusionner des présentations avec le masque des diapositives** + +Aspose.Slides fournit la méthode [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-) qui vous permet de combiner des diapositives tout en appliquant un modèle de présentation maître. Ainsi, si nécessaire, vous pouvez modifier le style des diapositives dans la présentation de sortie. + +Ce code JavaScript démontre l’opération décrite : +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} + +La disposition de la diapositive pour le masque des diapositives est déterminée automatiquement. Lorsqu’une disposition appropriée ne peut pas être déterminée, si le paramètre booléen `allowCloneMissingLayout` de la méthode `addClone` est défini sur true, la disposition de la diapositive source est utilisée. Sinon, une [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException) sera levée. + +{{% /alert %}} + +Si vous souhaitez que les diapositives de la présentation de sortie aient une disposition différente, utilisez la méthode [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-) à la place lors de la fusion. + +## **Fusionner des diapositives spécifiques à partir de présentations** + +Fusionner des diapositives spécifiques à partir de plusieurs présentations est utile pour créer des ensembles de diapositives personnalisés. Aspose.Slides pour Node.js via Java vous permet de sélectionner et d’importer uniquement les diapositives dont vous avez besoin. L’API préserve la mise en forme, la disposition et le design des diapositives originales. + +Le code JavaScript suivant crée une nouvelle présentation, ajoute des diapositives titre provenant de deux autres présentations, et enregistre le résultat dans un fichier : +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **Fusionner des présentations avec la disposition des diapositives** + +Ce code JavaScript vous montre comment combiner des diapositives de présentations tout en appliquant votre disposition de diapositive préférée afin d’obtenir une seule présentation de sortie : +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Fusionner des présentations avec des tailles de diapositives différentes** + +{{% alert title="Note" color="warning" %}} + +Vous ne pouvez pas fusionner des présentations avec des tailles de diapositives différentes. + +{{% /alert %}} + +Pour fusionner 2 présentations avec des tailles de diapositives différentes, vous devez redimensionner l’une des présentations afin que sa taille corresponde à celle de l’autre présentation. + +Ce code d’exemple démontre l’opération décrite : +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Fusionner des diapositives dans une section de présentation** + +Ce code JavaScript vous montre comment fusionner une diapositive spécifique dans une section d’une présentation : +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +La diapositive est ajoutée à la fin de la section. + +## **FAQ** + +**Les notes du présentateur sont-elles conservées lors de la fusion ?** + +Oui. Lors de la duplication des diapositives, Aspose.Slides transfère tous les éléments de la diapositive, y compris les notes, la mise en forme et les animations. + +**Les commentaires et leurs auteurs sont-ils transférés ?** + +Les commentaires, en tant que partie du contenu de la diapositive, sont copiés avec la diapositive. Les étiquettes d’auteur des commentaires sont conservées en tant qu’objets commentaire dans la présentation résultante. + +**Que se passe-t-il si la présentation source est protégée par un mot de passe ?** + +Elle doit être [ouverte avec le mot de passe](/slides/fr/nodejs-java/password-protected-presentation/) via [LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/); après le chargement, ces diapositives peuvent être clonées en toute sécurité dans un fichier cible non protégé (ou également protégé). + +**Quelle est la sécurité des threads de l’opération de fusion ?** + +N’utilisez pas la même instance de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) depuis [plusieurs threads](/slides/fr/nodejs-java/multithreading/). La règle recommandée est « un document — un fil » ; différents fichiers peuvent être traités en parallèle dans des fils séparés. + +## **Voir aussi** + +Aspose propose un [Créateur de collages EN LIGNE GRATUIT](https://products.aspose.app/slides/collage). En utilisant ce service en ligne, vous pouvez fusionner des images [JPG vers JPG](https://products.aspose.app/slides/collage/jpg) ou PNG vers PNG, créer des [grilles de photos](https://products.aspose.app/slides/collage/photo-grid), et plus encore. + +Découvrez le [Merger EN LIGNE GRATUIT Aspose](https://products.aspose.app/slides/merger). Il vous permet de fusionner des présentations PowerPoint dans le même format (par ex., PPT vers PPT, PPTX vers PPTX) ou entre différents formats (par ex., PPT vers PPTX, PPTX vers ODP). + +[![Aspose MERGEUR EN LIGNE GRATUIT](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..8c6b1fdbe0 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: Ouvrir une présentation en JavaScript +linktitle: Ouvrir des présentations +type: docs +weight: 20 +url: /fr/nodejs-java/open-presentation/ +keywords: +- ouvrir PowerPoint +- ouvrir présentation +- ouvrir PPTX +- ouvrir PPT +- ouvrir ODP +- charger présentation +- charger PPTX +- charger PPT +- charger ODP +- présentation protégée +- grande présentation +- ressource externe +- objet binaire +- Node.js +- JavaScript +- Aspose.Slides +description: "Ouvrez des présentations PowerPoint (.pptx, .ppt) et OpenDocument (.odp) en toute simplicité avec Aspose.Slides pour Node.js — rapide, fiable, entièrement fonctionnel." +--- + +## **Vue d'ensemble** + +Au-delà de la création de présentations PowerPoint à partir de zéro, Aspose.Slides vous permet également d'ouvrir des présentations existantes. Après avoir chargé une présentation, vous pouvez en récupérer les informations, modifier le contenu des diapositives, ajouter de nouvelles diapositives, supprimer celles existantes, et bien plus encore. + +## **Ouvrir des présentations** + +Pour ouvrir une présentation existante, créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) et transmettez le chemin du fichier à son constructeur. + +L'exemple JavaScript suivant montre comment ouvrir une présentation et obtenir le nombre de diapositives : +```js +// Instanciez la classe Presentation et transmettez un chemin de fichier à son constructeur. +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // Affichez le nombre total de diapositives dans la présentation. + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **Ouvrir des présentations protégées par mot de passe** + +Lorsque vous devez ouvrir une présentation protégée par un mot de passe, transmettez le mot de passe via la méthode [setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword) de la classe [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) pour la déchiffrer et la charger. Le code JavaScript suivant démontre cette opération : +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // Effectuez des opérations sur la présentation décryptée. +} finally { + presentation.dispose(); +} +``` + + +## **Ouvrir de grandes présentations** + +Aspose.Slides propose des options — notamment la méthode [getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions) de la classe [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) — pour vous aider à charger de grandes présentations. + +Le code JavaScript suivant montre comment charger une grande présentation (par exemple, 2 Go) : +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// Choisissez le comportement KeepLocked — le fichier de présentation restera verrouillé pendant la durée de vie de +// l'instance Presentation, mais il n'est pas nécessaire de le charger en mémoire ou de le copier dans un fichier temporaire. +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 Mo + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // La grande présentation a été chargée et peut être utilisée, tout en maintenant une faible consommation de mémoire. + + // Apportez des modifications à la présentation. + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // Enregistrez la présentation dans un autre fichier. La consommation de mémoire reste faible pendant cette opération. + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // Ne faites pas cela ! Une exception d'E/S sera levée car le fichier reste verrouillé jusqu'à ce que l'objet présentation soit libéré. + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// Il est correct de le faire ici. Le fichier source n'est plus verrouillé par l'objet présentation. +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +Pour contourner certaines limitations lors de l'utilisation de flux, Aspose.Slides peut copier le contenu d'un flux. Charger une grande présentation à partir d'un flux entraîne la copie de la présentation et peut ralentir le chargement. Par conséquent, lorsque vous devez charger une grande présentation, nous vous recommandons fortement d'utiliser le chemin du fichier de présentation plutôt qu'un flux. + +Lors de la création d'une présentation contenant de grands objets (vidéo, audio, images haute résolution, etc.), vous pouvez utiliser la [gestion BLOB](/slides/fr/nodejs-java/manage-blob/) pour réduire la consommation de mémoire. +{{%/alert %}} + +## **Contrôler les ressources externes** + +Aspose.Slides fournit l'interface [IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/) qui vous permet de gérer les ressources externes. Le code JavaScript suivant montre comment utiliser l'interface `IResourceLoadingCallback` : +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // Charger une image de substitution. + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // Définir une URL de substitution. + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // Ignorer toutes les autres images. + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **Charger des présentations sans objets binaires intégrés** + +Une présentation PowerPoint peut contenir les types d'objets binaires intégrés suivants : + +- projet VBA (accessible via [Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject)); +- données d'objet OLE intégrées (accessibles via [OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData)); +- données binaires de contrôle ActiveX (accessibles via [Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary)). + +En utilisant la méthode [LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects), vous pouvez charger une présentation sans aucun objet binaire intégré. + +Cette méthode est utile pour supprimer les contenus binaires potentiellement malveillants. Le code JavaScript suivant montre comment charger une présentation sans aucun contenu binaire intégré : +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // Effectuer des opérations sur la présentation. +} finally { + presentation.dispose(); +} +``` + + +## **FAQ** + +**Comment savoir qu'un fichier est corrompu et ne peut pas être ouvert ?** + +Vous obtiendrez une exception de validation du format/de l'analyse lors du chargement. Ces erreurs mentionnent souvent une structure ZIP invalide ou des enregistrements PowerPoint corrompus. + +**Que se passe-t-il si les polices requises sont absentes lors de l'ouverture ?** + +Le fichier s'ouvrira, mais le [rendu/export](/slides/fr/nodejs-java/convert-presentation/) pourra substituer les polices. [Configurez les substitutions de polices](/slides/fr/nodejs-java/font-substitution/) ou [ajoutez les polices requises](/slides/fr/nodejs-java/custom-font/) à l'environnement d'exécution. + +**Qu'en est-il des médias intégrés (vidéo/audio) lors de l'ouverture ?** + +Ils deviennent disponibles en tant que ressources de la présentation. Si les médias sont référencés via des chemins externes, assurez-vous que ces chemins sont accessibles dans votre environnement ; sinon le [rendu/export](/slides/fr/nodejs-java/convert-presentation/) pourra omettre les médias. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/fr/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..4f6e1f2769 --- /dev/null +++ b/fr/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,205 @@ +--- +title: Enregistrer des présentations en JavaScript +linktitle: Enregistrer des présentations +type: docs +weight: 80 +url: /fr/nodejs-java/save-presentation/ +keywords: +- enregistrer PowerPoint +- enregistrer OpenDocument +- enregistrer présentation +- enregistrer diapositive +- enregistrer PPT +- enregistrer PPTX +- enregistrer ODP +- présentation vers fichier +- présentation vers flux +- type de vue prédéfini +- format Strict Office Open XML +- mode Zip64 +- rafraîchissement de la vignette +- progression de l'enregistrement +- Node.js +- JavaScript +- Aspose.Slides +description: "Découvrez comment enregistrer des présentations en JavaScript avec Aspose.Slides—exporter vers PowerPoint ou OpenDocument tout en conservant la mise en page, les polices et les effets." +--- + +## **Vue d'ensemble** + +[Open Presentations in JavaScript](/slides/fr/nodejs-java/open-presentation/) décrit comment utiliser la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) pour ouvrir une présentation. Cet article explique comment créer et enregistrer des présentations. La classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) contient le contenu d’une présentation. Que vous créiez une présentation à partir de zéro ou que vous modifiiez une existante, vous voudrez l’enregistrer une fois terminé. Avec Aspose.Slides pour Node.js, vous pouvez enregistrer dans un **fichier** ou un **flux**. Cet article explique les différentes manières d’enregistrer une présentation. + +## **Enregistrer les présentations dans des fichiers** + +Enregistrez une présentation dans un fichier en appelant la méthode `save` de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). Passez le nom du fichier et le format d’enregistrement à la méthode. L’exemple suivant montre comment enregistrer une présentation avec Aspose.Slides. +```js +// Instancier la classe Presentation qui représente un fichier de présentation. +let presentation = new aspose.slides.Presentation(); +try { + // Effectuer un travail ici... + + // Enregistrer la présentation dans un fichier. + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Enregistrer les présentations dans des flux** + +Vous pouvez enregistrer une présentation dans un flux en passant un flux de sortie à la méthode `save` de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). Une présentation peut être écrite dans de nombreux types de flux. Dans l’exemple ci‑dessous, nous créons une nouvelle présentation et l’enregistrons dans un flux de fichier. +```js +// Instancier la classe Presentation qui représente un fichier de présentation. +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // Enregistrer la présentation dans le flux. + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **Enregistrer les présentations avec un type de vue prédéfini** + +Aspose.Slides vous permet de définir la vue initiale que PowerPoint utilise lorsque la présentation générée s’ouvre via la classe [ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/). Utilisez la méthode [setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) avec une valeur provenant de l’énumération [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/). +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Enregistrer les présentations au format Strict Office Open XML** + +Aspose.Slides vous permet d’enregistrer une présentation au format Strict Office Open XML. Utilisez la classe [PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) et définissez sa propriété de conformité lors de l’enregistrement. Si vous définissez [Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict), le fichier de sortie est enregistré au format Strict Office Open XML. + +L’exemple ci‑dessous crée une présentation et l’enregistre au format Strict Office Open XML. +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// Instancier la classe Presentation qui représente un fichier de présentation. +let presentation = new aspose.slides.Presentation(); +try { + // Enregistrer la présentation au format Strict Office Open XML. + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **Enregistrer les présentations au format Office Open XML en mode Zip64** + +Un fichier Office Open XML est une archive ZIP qui impose des limites de 4 Go (2^32 octets) sur la taille décompressée de tout fichier, la taille compressée de tout fichier et la taille totale de l’archive, et limite également l’archive à 65 535 (2^16‑1) fichiers. Les extensions du format ZIP64 augmentent ces limites à 2^64. + +La méthode [PptxOptions.setZip64Mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) vous permet de choisir quand utiliser les extensions du format ZIP64 lors de l’enregistrement d’un fichier Office Open XML. + +Cette méthode peut être utilisée avec les modes suivants : + +- [IfNecessary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#IfNecessary) utilise les extensions du format ZIP64 uniquement si la présentation dépasse les limitations ci‑dessus. C’est le mode par défaut. +- [Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) n’utilise jamais les extensions du format ZIP64. +- [Always](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Always) utilise toujours les extensions du format ZIP64. + +Le code suivant montre comment enregistrer une présentation au format PPTX avec les extensions du format ZIP64 activées : +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="NOTE" color="warning" %}} +Lorsque vous enregistrez avec [Zip64Mode.Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never), une [PptxException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxexception/) est levée si la présentation ne peut pas être enregistrée au format ZIP32. +{{% /alert %}} + +## **Enregistrer les présentations sans actualiser la vignette** + +La méthode [PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) contrôle la génération de la vignette lors de l’enregistrement d’une présentation au format PPTX : + +- Si la valeur est `true`, la vignette est actualisée pendant l’enregistrement. C’est la valeur par défaut. +- Si la valeur est `false`, la vignette actuelle est conservée. Si la présentation n’a pas de vignette, aucune n’est générée. + +Dans le code ci‑dessous, la présentation est enregistrée au format PPTX sans actualiser sa vignette. +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Cette option permet de réduire le temps nécessaire pour enregistrer une présentation au format PPTX. +{{% /alert %}} + +## **Mise à jour de la progression de l’enregistrement en pourcentage** + +Le rapport de progression d’enregistrement est configuré via la méthode [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) sur [SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) et ses sous‑classes. Fournissez un proxy Java qui implémente l’interface [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/) ; pendant l’exportation, le rappel reçoit des mises à jour périodiques en pourcentage. + +Les extraits de code suivants montrent comment utiliser `IProgressCallback`. +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // Utilisez la valeur du pourcentage de progression ici. + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Aspose a développé une [application gratuite PowerPoint Splitter](https://products.aspose.app/slides/splitter) utilisant sa propre API. L’application vous permet de diviser une présentation en plusieurs fichiers en enregistrant les diapositives sélectionnées en tant que nouveaux fichiers PPTX ou PPT. +{{% /alert %}} + +## **FAQ** + +**La fonction « enregistrement rapide » (enregistrement incrémentiel) est‑elle prise en charge afin que seules les modifications soient écrites ?** + +Non. L’enregistrement crée le fichier cible complet à chaque fois ; l’« enregistrement rapide » incrémentiel n’est pas pris en charge. + +**Est‑il sûr d’enregistrer la même instance de Presentation depuis plusieurs threads ?** + +Non. Une instance de [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) n’est pas [thread‑safe](/slides/fr/nodejs-java/multithreading/) ; enregistrez‑la depuis un seul thread. + +**Que se passe‑t‑il avec les hyperliens et les fichiers liés externement lors de l’enregistrement ?** + +Les [hyperliens](/slides/fr/nodejs-java/manage-hyperlinks/) sont conservés. Les fichiers liés externement (par ex. : vidéos via des chemins relatifs) ne sont pas copiés automatiquement — assurez‑vous que les chemins référencés restent accessibles. + +**Puis‑je définir/enregistrer les métadonnées du document (Auteur, Titre, Société, Date) ?** + +Oui. Les [propriétés de document](/slides/fr/nodejs-java/presentation-properties/) standard sont prises en charge et seront écrites dans le fichier lors de l’enregistrement. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/modern-api/_index.md b/fr/nodejs-java/developer-guide/modern-api/_index.md index be42a25e05..1280d5c0e4 100644 --- a/fr/nodejs-java/developer-guide/modern-api/_index.md +++ b/fr/nodejs-java/developer-guide/modern-api/_index.md @@ -3,42 +3,40 @@ title: API Moderne type: docs weight: 237 url: /fr/nodejs-java/modern-api/ -keywords: "API Moderne CrossPlatform" +keywords: "API Moderne multiplateforme" description: "API Moderne" --- -## Introduction +## **Introduction** -Historiquement, Aspose Slides a une dépendance sur java.awt et a dans l'API publique les classes suivantes de là-bas : +Historiquement, Aspose Slides dépend de java.awt et expose dans son API publique les classes suivantes provenant de ce package : - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -Depuis la version 24.4, cette API publique est déclarée obsolète. +À partir de la version 24.4, cette API publique est déclarée obsolète. -Pour se débarrasser des dépendances sur ces classes, nous avons ajouté la soi-disant "API Moderne" - c'est-à-dire l'API qui doit être utilisée à la place de celle qui est obsolète, dont les signatures contiennent des dépendances sur BufferedImage. Graphics2D est déclaré obsolète et son support est retiré de l'API publique de Slides. +Afin de se débarrasser des dépendances à ces classes, nous avons ajouté la dite "Modern API" – c’est‑à‑dire l’API qui doit être utilisée à la place de celle‑dépréciée, dont les signatures contiennent des dépendances à BufferedImage. Graphics2D est déclaré obsolète et son support est supprimé de l’API publique de Slides. -La suppression de l'API publique obsolète avec des dépendances sur System.Drawing sera faite dans la version 24.8. +La suppression de l’API publique obsolète avec des dépendances sur System.Drawing sera effectuée dans la version 24.8. -## API Moderne +## **Modern API** -Les classes et énumérations suivantes ont été ajoutées à l'API publique : +Les classes et énumérations suivantes ont été ajoutées à l’API publique : +- IImage – représente l’image raster ou vectorielle. +- ImageFormat – représente le format de fichier de l’image. +- Images – méthodes pour créer et manipuler des instances de la classe IImage. -- IImage - représente l'image raster ou vectorielle. -- ImageFormat - représente le format de fichier de l'image. -- Images - méthodes pour instancier et travailler avec l'interface IImage. - -Veuillez noter que IImage est jetable (il implémente l'interface IDisposable et son utilisation doit être entourée d'une instruction using ou être libérée d'une manière commode). - -Un scénario typique d'utilisation de la nouvelle API peut ressembler à ceci : +Veuillez noter que IImage est jetable (elle implémente l’interface IDisposable et son utilisation doit être encapsulée dans une instruction using ou être disposée d’une autre manière appropriée). +Un scénario typique d’utilisation de la nouvelle API peut ressembler à ce qui suit : ``` javascript var pres = new aspose.slides.Presentation(); try { var ppImage; - // instancier une instance jetable de IImage à partir du fichier sur le disque. + // instancier une instance jetable d'IImage à partir du fichier sur le disque. var image = aspose.slides.Images.fromFile("image.png"); try { - // créer une image PowerPoint en ajoutant une instance de IImage aux images de la présentation. + // créer une image PowerPoint en ajoutant une instance d'IImage aux images de la présentation. ppImage = pres.getImages().addImage(image); } finally { if (image != null) image.dispose(); @@ -48,10 +46,10 @@ try { pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, ppImage); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); - // obtenir une instance de l'IImage représentant la diapositive #1. + // obtenir une instance de IImage représentant la diapositive #1. var slideImage = pres.getSlides().get_Item(0).getImage(size); try { - // sauvegarder l'image sur le disque. + // enregistrer l'image sur le disque. slideImage.save("slide1.jpeg", aspose.slides.ImageFormat.Jpeg); } finally { if (slideImage != null) slideImage.dispose(); @@ -61,11 +59,12 @@ try { } ``` -## Remplacement du ancien code par l'API Moderne -En général, vous devrez remplacer l'appel à l'ancienne méthode utilisant ImageIO par la nouvelle. +## **Remplacement du code ancien par l'API moderne** + +En général, vous devrez remplacer l’appel à l’ancienne méthode utilisant ImageIO par la nouvelle. -Ancien : +Old: ``` javascript var imageio = java.import("javax.imageio.ImageIO"); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -73,7 +72,8 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` -Nouveau : + +New: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); var slideImage = pres.getSlides().get_Item(0).getImage(size); @@ -81,10 +81,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### Obtenir une miniature de diapositive -Code utilisant une API obsolète : +### **Getting a Slide Thumbnail** +Code utilisant une API obsolète : ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +97,8 @@ try { } ``` -API Moderne : +API moderne : ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +110,10 @@ try { } ``` -### Obtenir une miniature de forme -Code utilisant une API obsolète : +### **Getting a Shape Thumbnail** +Code utilisant une API obsolète : ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +126,8 @@ try { } ``` -API Moderne : +API moderne : ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +139,10 @@ try { } ``` -### Obtenir une miniature de présentation -Code utilisant une API obsolète : +### **Getting a Presentation Thumbnail** +Code utilisant une API obsolète : ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +160,8 @@ try { } ``` -API Moderne : +API moderne : ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +184,10 @@ try { } ``` -### Ajouter une image à une présentation -Code utilisant une API obsolète : +### **Adding a Picture to a Presentation** +Code utilisant une API obsolète : ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +202,8 @@ try { } ``` -API Moderne : +API moderne : ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,11 +217,12 @@ try { } ``` -## Méthodes à supprimer et leur remplacement dans l'API Moderne -### Présentation -| Signature de Méthode | Signature de Méthode de Remplacement | -|---------------------------------------------------|---------------------------------------------------------| +## **Méthodes à supprimer et leurs remplacements dans l'API moderne** + +### **Presentation** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|---------------------------------------------------------| | public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | @@ -229,15 +230,15 @@ try { | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### Forme -| Signature de Méthode | Signature de Méthode de Remplacement | -|----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +### **Shape** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### Diapositive -| Signature de Méthode | Signature de Méthode de Remplacement | -|----------------------------------------------------------------------|-----------------------------------------------------------------------| +### **Slide** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | | public final BufferedImage getThumbnail(IRenderingOptions options) | public final IImage getImage(IRenderingOptions options) | @@ -245,45 +246,54 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Sera supprimé complètement | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Sera supprimé complètement | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Sera supprimé complètement | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Will be deleted completely | -### Sortie -| Signature de Méthode | Signature de Méthode de Remplacement | -|-----------------------------------------------------------------|-------------------------------------------------------------| +### **Output** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### ImageCollection -| Signature de Méthode | Signature de Méthode de Remplacement | -|-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +### **ImageCollection** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| Signature de Méthode | Signature de Méthode de Remplacement | -|--------------------------------------|-----------------------------------------| +### **PPImage** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### PatternFormat -| Signature de Méthode | Signature de Méthode de Remplacement | -|-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +### **PatternFormat** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### PatternFormatEffectiveData -| Signature de Méthode | Signature de Méthode de Remplacement | -|-----------------------------------------------------------|-----------------------------------------------------| +### **PatternFormatEffectiveData** +| Signature de la méthode | Signature de la méthode de remplacement | +|-----------------------------------------------|------------------------------------------| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | +## **Le support de l'API pour Graphics2D sera interrompu** -## Le support de l'API pour Graphics2D sera interrompu - -Les méthodes avec [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) sont déclarées obsolètes et leur support sera retiré de l'API publique. +Les méthodes utilisant [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) sont déclarées obsolètes et leur support sera supprimé de l'API publique. La partie de l'API qui l'utilise sera supprimée : -[Diapositive](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) + +# **FAQ** + +**Quel est l'avantage pratique de IImage par rapport à Image/Bitmap ?** + +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) unifie la manipulation des images raster et vectorielles et simplifie l'enregistrement vers différents formats via [ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/). + +**L'API moderne affectera-t-elle les performances de génération des vignettes ?** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +Le passage de `getThumbnail` à `getImage` n'empire pas les scénarios : les nouvelles méthodes offrent les mêmes capacités de génération d'images avec des options et des tailles, tout en conservant le support des options de rendu. Le gain ou la perte spécifique dépend du scénario, mais fonctionnellement les remplacements sont équivalents. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/powerpoint-animation/_index.md b/fr/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..bbabef720f --- /dev/null +++ b/fr/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,80 @@ +--- +title: Animation PowerPoint +type: docs +weight: 150 +url: /fr/nodejs-java/powerpoint-animation/ +keywords: "Animation PowerPoint" +description: "Animation PowerPoint, animation des diapositives PowerPoint avec Aspose.Slides." +--- + +Étant donné que les présentations sont destinées à présenter quelque chose, leur apparence visuelle et leur comportement interactif sont toujours pris en compte lors de leur création. + +**PowerPoint animation** joue un rôle important afin de rendre la présentation attrayante et captivante pour les spectateurs. Aspose.Slides for Node.js via Java propose un large éventail d'options pour ajouter des animations à une présentation PowerPoint : + +- appliquer différents types d'effets d'animation PowerPoint sur les formes, les graphiques, les tableaux, les objets OLE et d'autres éléments de la présentation. +- utiliser plusieurs effets d'animation PowerPoint sur une forme. +- utiliser la chronologie d'animation pour contrôler les effets d'animation. +- créer une animation personnalisée. + +Dans Aspose.Slides for Node.js via Java, divers effets d'animation peuvent être appliqués aux formes. Chaque élément de la diapositive, y compris le texte, les images, les objets OLE, les tableaux, etc., étant considéré comme une forme, cela signifie que nous pouvons appliquer un effet d'animation à chaque élément d'une diapositive. + +## **Effets d'animation** +Aspose.Slides prend en charge **plus de 150 effets d'animation**, y compris les effets d'animation de base comme Bounce, PathFootball, l'effet Zoom et des effets d'animation spécifiques tels que OLEObjectShow, OLEObjectOpen. Vous pouvez consulter la liste complète des effets d'animation dans l'énumération [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/). + +De plus, ces effets d'animation peuvent être utilisés en combinaison avec eux : +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **Animation personnalisée** +Il est possible de créer vos propres **animations personnalisées** dans Aspose.Slides. +Cela peut être réalisé en combinant plusieurs comportements en une nouvelle animation personnalisée. + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) est une unité de base de tout effet d'animation PowerPoint. Tous les effets d'animation sont en réalité un ensemble de comportements composés en une stratégie unique. Vous pouvez combiner des comportements dans une animation personnalisée une fois et la réutiliser dans d'autres présentations. Si vous ajoutez un nouveau comportement à un effet d'animation PowerPoint standard, cela deviendra une autre animation personnalisée. Par exemple, vous pouvez ajouter un comportement de répétition à une animation pour la faire répéter plusieurs fois. + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) est un point où le comportement doit être appliqué. + +## **Chronologie d'animation** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) est une collection d'effets d'animation, appliquée à une forme spécifique. + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) est un ensemble de Séquences utilisé dans une diapositive concrète. C'est un moteur d'animation présent depuis PowerPoint 2002. Dans les versions antérieures de PowerPoint, il était difficile d'ajouter des effets d'animation à une présentation, ce qui ne pouvait être réalisé qu'avec différents contournements. La timeline remplace l'ancienne classe AnimationSettings et fournit un modèle d'objet plus clair pour l'animation PowerPoint. Une diapositive ne peut contenir qu'une seule timeline d'animation. + +## **Animation interactive** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) permet de définir des actions utilisateur (par exemple, un clic de bouton), qui déclencheront le démarrage d’une certaine animation. Les déclencheurs n'ont été ajoutés que dans la dernière version de PowerPoint. + +## **Animation des formes** +Aspose.Slides permet d'appliquer des animations aux formes, qui peuvent être du texte, un rectangle, une ligne, un cadre, un objet OLE, etc. + +{{% alert color="primary" %}} +En savoir plus [**About Shape Animation**](/slides/fr/nodejs-java/shape-animation/). +{{% /alert %}} + +## **Graphiques animés** +Pour créer des graphiques animés, vous devez utiliser les mêmes classes que pour les formes. Cependant, il est possible d'utiliser l'animation PowerPoint uniquement sur les catégories de graphiques ou les séries de graphiques. Vous pouvez également appliquer un effet d'animation à un élément de catégorie ou à un élément de série. + +{{% alert color="primary" %}} +En savoir plus [**About Animated Charts**](/slides/fr/nodejs-java/animated-charts/). +{{% /alert %}} + +## **Texte animé** +En plus du texte animé, il est également possible d'appliquer une animation à un paragraphe. + +{{% alert color="primary" %}} +En savoir plus [**About Animated Text**](/slides/fr/nodejs-java/animated-text/). +{{% /alert %}} + +## **FAQ** + +**Les animations seront-elles conservées lors de l'exportation en PDF ?** +Non. Le PDF est un format statique, donc les animations et les [transitions de diapositives](/slides/fr/nodejs-java/slide-transition/) ne sont pas lues. Si vous avez besoin de mouvement, exportez plutôt vers [HTML5](/slides/fr/nodejs-java/export-to-html5/), [GIF animé](/slides/fr/nodejs-java/convert-powerpoint-to-animated-gif/) ou [vidéo](/slides/fr/nodejs-java/convert-powerpoint-to-video/). + +**Puis-je transformer une présentation animée en vidéo et contrôler la fréquence d'images ainsi que la taille du cadre ?** +Oui. Vous pouvez [rendre la présentation sous forme de cadres](/slides/fr/nodejs-java/convert-powerpoint-to-video/) et les encoder dans une vidéo (par exemple via ffmpeg), en choisissant le nombre d'images par seconde et la résolution. Les animations et les transitions de diapositives sont lues pendant le rendu. + +**Les animations resteront-elles intactes lors de l'utilisation d'ODP (et pas seulement de PPTX) ?** +PPT, PPTX et ODP sont pris en charge pour la [lecture](/slides/fr/nodejs-java/open-presentation/) et l'[écriture](/slides/fr/nodejs-java/save-presentation/), mais les différences de format peuvent entraîner des effets légèrement différents en apparence ou en comportement. Validez les cas critiques avec des exemples réels. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-comments/_index.md b/fr/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..ef129832ca --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,223 @@ +--- +title: Commentaires de présentation +type: docs +weight: 100 +url: /fr/nodejs-java/presentation-comments/ +keywords: "Commentaires, commentaires PowerPoint, présentation PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "Ajouter des commentaires et des réponses dans une présentation PowerPoint en JavaScript" +--- + +Dans PowerPoint, un commentaire apparaît comme une note ou une annotation sur une diapositive. Lorsqu'un commentaire est cliqué, son contenu ou ses messages sont révélés. + +## **Pourquoi ajouter des commentaires aux présentations ?** + +Vous pouvez vouloir utiliser des commentaires pour fournir des retours ou communiquer avec vos collègues lors de la révision des présentations. + +Pour vous permettre d'utiliser des commentaires dans les présentations PowerPoint, Aspose.Slides for Node.js via Java fournit + +* La classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui contient les collections d'auteurs (à partir de la classe [CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection)). Les auteurs ajoutent des commentaires aux diapositives. +* La classe [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection) qui contient la collection de commentaires pour chaque auteur. +* La classe [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) qui contient des informations sur les auteurs et leurs commentaires : qui a ajouté le commentaire, l'heure d'ajout, la position du commentaire, etc. +* La classe [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor) qui contient des informations sur chaque auteur : le nom de l'auteur, ses initiales, les commentaires associés à son nom, etc. + +## **Ajouter un commentaire à une diapositive** +Ce code JavaScript vous montre comment ajouter un commentaire à une diapositive dans une présentation PowerPoint : +```javascript +// Instancie la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une diapositive vide + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // Ajoute un auteur + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // Définit la position des commentaires + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // Ajoute un commentaire de diapositive pour un auteur sur la diapositive 1 + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // Ajoute un commentaire de diapositive pour un auteur sur la diapositive 2 + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // Accède à ISlide 1 + var slide = pres.getSlides().get_Item(0); + // Lorsque null est passé en argument, les commentaires de tous les auteurs sont récupérés pour la diapositive sélectionnée + var Comments = slide.getSlideComments(author); + // Accède au commentaire à l'index 0 pour la diapositive 1 + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // Sélectionne la collection de commentaires de l'auteur à l'index 0 + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Accéder aux commentaires d’une diapositive** +Ce code JavaScript vous montre comment accéder à un commentaire existant sur une diapositive dans une présentation PowerPoint : +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Répondre aux commentaires** +Un commentaire parent est le commentaire principal ou original dans une hiérarchie de commentaires ou de réponses. En utilisant les méthodes [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) ou [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) (de la classe [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)), vous pouvez définir ou obtenir un commentaire parent. + +Ce code JavaScript vous montre comment ajouter des commentaires et obtenir leurs réponses : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute un commentaire + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // Ajoute une réponse au commentaire 1 + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // Ajoute une autre réponse au commentaire 1 + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // Ajoute une réponse à une réponse existante + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // Affiche la hiérarchie des commentaires dans la console + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // Supprime le commentaire 1 et toutes ses réponses + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Attention" %}} + +* Lorsque la méthode [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--) (de la classe [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)) est utilisée pour supprimer un commentaire, les réponses au commentaire sont également supprimées. +* Si le paramètre [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) entraîne une référence circulaire, [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException) sera levée. + +{{% /alert %}} + +## **Ajouter un commentaire moderne** + +En 2021, Microsoft a introduit les *commentaires modernes* dans PowerPoint. La fonctionnalité de commentaires modernes améliore considérablement la collaboration dans PowerPoint. Grâce aux commentaires modernes, les utilisateurs de PowerPoint peuvent résoudre des commentaires, ancrer des commentaires à des objets et du texte, et interagir beaucoup plus facilement qu'auparavant. + +Dans [Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/), nous avons implémenté la prise en charge des commentaires modernes en ajoutant la classe [ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment). Les méthodes [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) et [insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) ont été ajoutées à la classe [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection). + +Ce code JavaScript vous montre comment ajouter un commentaire moderne à une diapositive dans une présentation PowerPoint : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Supprimer un commentaire** + +### **Supprimer tous les commentaires et les auteurs** +Ce code JavaScript vous montre comment supprimer tous les commentaires et auteurs dans une présentation : +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Supprime tous les commentaires de la présentation + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // Supprime tous les auteurs + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Supprimer des commentaires spécifiques** +Ce code JavaScript vous montre comment supprimer des commentaires spécifiques sur une diapositive : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // ajouter des commentaires... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // supprimer tous les commentaires contenant le texte "comment 1" + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Aspose.Slides prend‑t‑il en charge un statut tel que « résolu » pour les commentaires modernes ?** +Oui. Les [commentaires modernes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) exposent les méthodes [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) et [setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/) ; vous pouvez lire et définir l'[état d'un commentaire](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncommentstatus/) (par exemple, le marquer comme résolu), et cet état est enregistré dans le fichier et reconnu par PowerPoint. + +**Les discussions en fil (chaînes de réponses) sont‑elles prises en charge, et y a‑t‑il une limite de profondeur ?** +Oui. Chaque commentaire peut référencer son [commentaire parent](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/), ce qui permet des chaînes de réponses arbitraires. L’API ne déclare pas de limite de profondeur spécifique. + +**Dans quel système de coordonnées la position d’un marqueur de commentaire est‑elle définie sur une diapositive ?** +La position est stockée sous forme d’un point à virgule flottante dans le système de coordonnées de la diapositive. Cela vous permet de placer le marqueur de commentaire exactement où vous le souhaitez. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..8641231017 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,206 @@ +--- +title: Gérer le Blob +type: docs +weight: 10 +url: /fr/nodejs-java/manage-blob/ +description: Gérer le Blob dans une présentation PowerPoint en utilisant JavaScript. Utiliser le Blob pour réduire la consommation de mémoire dans une présentation PowerPoint en utilisant JavaScript. Ajouter un gros fichier via Blob à une présentation PowerPoint en utilisant JavaScript. Exporter un gros fichier via Blob depuis une présentation PowerPoint en utilisant JavaScript. Charger une grande présentation PowerPoint en tant que Blob en utilisant JavaScript. +--- + +## **À propos de BLOB** + +**BLOB** (**Binary Large Object**) est généralement un gros élément (photo, présentation, document ou média) enregistré sous des formats binaires. + +Aspose.Slides for Node.js via Java vous permet d'utiliser des BLOBs pour les objets de manière à réduire la consommation de mémoire lorsqu'il s'agit de gros fichiers. + +{{% alert title="Info" color="info" %}} +Pour contourner certaines limitations lors de l'interaction avec des flux, Aspose.Slides peut copier le contenu du flux. Charger une grande présentation via son flux entraînera la copie du contenu de la présentation et provoquera un chargement lent. Ainsi, lorsque vous avez l'intention de charger une grande présentation, nous vous recommandons fortement d'utiliser le chemin du fichier de présentation et non son flux. +{{% /alert %}} + +## **Utiliser BLOB pour réduire la consommation de mémoire** + +### **Ajouter un gros fichier via BLOB à une présentation** + +[Aspose.Slides](/slides/fr/nodejs-java/) for Node.js via Java vous permet d'ajouter de gros fichiers (dans ce cas, un gros fichier vidéo) via un processus impliquant des BLOBs afin de réduire la consommation de mémoire. + +Ce JavaScript vous montre comment ajouter un gros fichier vidéo via le processus BLOB à une présentation : +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// Crée une nouvelle présentation à laquelle la vidéo sera ajoutée +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // Ajoutons la vidéo à la présentation - nous avons choisi le comportement KeepLocked car nous + // n'avons pas l'intention d'accéder au fichier "veryLargeVideo.avi". + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // Enregistre la présentation. Bien qu'une grande présentation soit générée, la consommation de mémoire + // reste faible tout au long du cycle de vie de l'objet pres + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Exporter un gros fichier via BLOB depuis une présentation** + +Aspose.Slides for Node.js via Java vous permet d'exporter de gros fichiers (dans ce cas, un fichier audio ou vidéo) via un processus impliquant des BLOBs depuis les présentations. Par exemple, vous pouvez avoir besoin d'extraire un gros fichier multimédia d'une présentation sans le charger en mémoire de votre ordinateur. En exportant le fichier via le processus BLOB, vous maintenez une faible consommation de mémoire. + +Ce code en JavaScript démontre l'opération décrite : +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// Verrouille le fichier source et ne le charge PAS en mémoire +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// crée l'instance Presentation, verrouille le fichier "hugePresentationWithAudiosAndVideos.pptx". +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // Enregistrons chaque vidéo dans un fichier. Pour éviter une consommation élevée de mémoire, nous avons besoin d'un tampon qui sera utilisé + // pour transférer les données du flux vidéo de la présentation vers un flux pour un nouveau fichier vidéo. + var buffer = new byte[8 * 1024]; + // Parcourt les vidéos + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // Ouvre le flux vidéo de la présentation. Veuillez noter que nous avons intentionnellement évité d'accéder aux propriétés + // comme video.BinaryData - car cette propriété renvoie un tableau d'octets contenant toute la vidéo, ce qui + // entraîne le chargement des octets en mémoire. Nous utilisons video.GetStream, qui renvoie un Stream - et ne + // nécessite pas de charger toute la vidéo en mémoire. + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // La consommation de mémoire restera faible quelle que soit la taille de la vidéo ou de la présentation. + } + // Si nécessaire, vous pouvez appliquer les mêmes étapes pour les fichiers audio. +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **Ajouter une image en tant que BLOB dans une présentation** + +Avec les méthodes de la classe [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) et [**ImageCollection** ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection), vous pouvez ajouter une grande image sous forme de flux pour qu'elle soit traitée comme un BLOB. + +Ce code JavaScript vous montre comment ajouter une grande image via le processus BLOB : +```javascript +var pathToLargeImage = "large_image.jpg"; +// crée une nouvelle présentation à laquelle l'image sera ajoutée. +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // Ajoutons l'image à la présentation - nous choisissons le comportement KeepLocked car nous + // PAS l'intention d'accéder au fichier "largeImage.png" file. + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // Enregistre la présentation. Lorsqu'une grande présentation est générée, la consommation de mémoire + // reste faible tout au long du cycle de vie de l'objet pres. + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Mémoire et présentations volumineuses** + +Typiquement, pour charger une grande présentation, les ordinateurs nécessitent beaucoup de mémoire temporaire. Tout le contenu de la présentation est chargé en mémoire et le fichier (à partir duquel la présentation a été chargée) n'est plus utilisé. + +Considérez une grande présentation PowerPoint (large.pptx) contenant un fichier vidéo de 1,5 Go. Le mode standard de chargement de la présentation est décrit dans ce code JavaScript : +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Mais cette méthode consomme environ 1,6 Go de mémoire temporaire. + +### **Charger une grande présentation en tant que BLOB** + +Grâce au processus impliquant un BLOB, vous pouvez charger une grande présentation tout en utilisant peu de mémoire. Ce code JavaScript décrit l'implémentation où le processus BLOB est utilisé pour charger un gros fichier de présentation (large.pptx) : +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Modifier le dossier des fichiers temporaires** + +Lorsque le processus BLOB est utilisé, votre ordinateur crée des fichiers temporaires dans le dossier par défaut des fichiers temporaires. Si vous souhaitez que les fichiers temporaires soient conservés dans un autre dossier, vous pouvez modifier les paramètres de stockage en utilisant `setTempFilesRootPath` : +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Info" color="info" %}} +Lorsque vous utilisez `setTempFilesRootPath`, Aspose.Slides ne crée pas automatiquement un dossier pour stocker les fichiers temporaires. Vous devez créer le dossier manuellement. +{{% /alert %}} + +## **FAQ** + +**Quelles données d'une présentation Aspose.Slides sont traitées comme BLOB et contrôlées par les options BLOB ?** + +Les gros objets binaires tels que les images, l'audio et la vidéo sont traités comme des BLOB. Le fichier complet de la présentation implique également la gestion des BLOB lors du chargement ou de l'enregistrement. Ces objets sont régis par des politiques BLOB qui vous permettent de gérer l'utilisation de la mémoire et de recourir à des fichiers temporaires lorsque nécessaire. + +**Où configurer les règles de gestion des BLOB lors du chargement d'une présentation ?** + +Utilisez [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) avec [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/). Vous y définissez la limite en mémoire pour les BLOB, autorisez ou interdisez les fichiers temporaires, choisissez le chemin racine pour les fichiers temporaires et sélectionnez le comportement de verrouillage de la source. + +**Les paramètres BLOB affectent-ils les performances, et comment équilibrer vitesse et mémoire ?** + +Oui. Garder les BLOB en mémoire maximise la vitesse mais augmente la consommation de RAM ; réduire la limite mémoire transfère davantage de travail vers les fichiers temporaires, diminuant ainsi la RAM au prix d'un I/O supplémentaire. Utilisez la méthode [setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/) pour atteindre le bon équilibre selon votre charge de travail et votre environnement. + +**Les options BLOB aident‑elles lors de l'ouverture de présentations extrêmement volumineuses (par ex., plusieurs gigaoctets) ?** + +Oui. [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) sont conçues pour ces scénarios : activer les fichiers temporaires et utiliser le verrouillage de la source peut réduire considérablement l'utilisation maximale de RAM et stabiliser le traitement de présentations très volumineuses. + +**Puis‑je utiliser les politiques BLOB lors du chargement à partir de flux plutôt que de fichiers disque ?** + +Oui. Les mêmes règles s'appliquent aux flux : l'instance de présentation peut posséder et verrouiller le flux d'entrée (selon le mode de verrouillage choisi), et les fichiers temporaires sont utilisés lorsqu'ils sont autorisés, maintenant ainsi une utilisation prévisible de la mémoire pendant le traitement. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..da87e78532 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,309 @@ +--- +title: Gérer les hyperliens +type: docs +weight: 20 +url: /fr/nodejs-java/manage-hyperlinks/ +keywords: "Hyperlien PowerPoint, hyperlien texte, hyperlien diapositive, hyperlien forme, hyperlien image, hyperlien vidéo, Java" +description: "Comment ajouter un hyperlien à une présentation PowerPoint en JavaScript" +--- + +Un hyperlien est une référence à un objet ou à des données ou à un emplacement dans quelque chose. Voici des hyperliens courants dans les présentations PowerPoint : + +* Liens vers des sites Web dans du texte, des formes ou des médias +* Liens vers des diapositives + +Aspose.Slides for Node.js via Java vous permet d’effectuer de nombreuses tâches impliquant des hyperliens dans les présentations. + +{{% alert color="primary" %}} +Vous voudrez peut‑être essayer Aspose simple, [éditeur PowerPoint gratuit en ligne.](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **Ajout d’hyperliens URL** + +### **Ajout d’hyperliens URL à du texte** + +Ce code JavaScript vous montre comment ajouter un hyperlien vers un site Web à un texte : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Ajout d’hyperliens URL à des formes ou des cadres** + +Ce code d’exemple en JavaScript vous montre comment ajouter un hyperlien vers un site Web à une forme : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Ajout d’hyperliens URL à des médias** + +Aspose.Slides vous permet d’ajouter des hyperliens à des images, des fichiers audio et vidéo. + +Ce code d’exemple vous montre comment ajouter un hyperlien à une **image** : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une image à la présentation + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // Crée un cadre d'image sur la diapositive 1 à partir de l'image précédemment ajoutée + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Ce code d’exemple vous montre comment ajouter un hyperlien à un **fichier audio** : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Ce code d’exemple vous montre comment ajouter un hyperlien à une **vidéo** : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Astuce" color="primary" %}} +Vous voudrez peut‑être voir *[Gérer OLE](/slides/fr/nodejs-java/manage-ole/)*. +{{% /alert %}} + +## **Utilisation des hyperliens pour créer une table des matières** + +Comme les hyperliens vous permettent d’ajouter des références à des objets ou à des emplacements, vous pouvez les utiliser pour créer une table des matières. + +Ce code d’exemple vous montre comment créer une table des matières avec des hyperliens : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Mise en forme des hyperliens** + +### **Couleur** + +Avec la méthode [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) de la classe [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink), vous pouvez définir la couleur des hyperliens et également obtenir l’information de couleur des hyperliens. La fonctionnalité a été introduite pour la première fois dans PowerPoint 2019, de sorte que les changements concernant cette propriété ne s’appliquent pas aux versions antérieures de PowerPoint. + +Ce code d’exemple montre une opération où des hyperliens de couleur différente ont été ajoutés à la même diapositive : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Suppression des hyperliens dans les présentations** + +### **Suppression des hyperliens du texte** + +Ce code JavaScript vous montre comment supprimer l’hyperlien d’un texte dans une diapositive de présentation : +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // Vérifie si la forme prend en charge le cadre texte (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Parcourt les paragraphes du cadre texte + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // Parcourt chaque portion du paragraphe + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// Modifie le texte + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Modifie la mise en forme + } + } + } + } + } + // Enregistre la présentation modifiée + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Suppression des hyperliens des formes ou des cadres** + +Ce code JavaScript vous montre comment supprimer l’hyperlien d’une forme dans une diapositive de présentation : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Hyperlien mutable** + +La classe [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) est mutable. Avec cette classe, vous pouvez modifier les valeurs de ces propriétés : + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +L’extrait de code vous montre comment ajouter un hyperlien à une diapositive et modifier son info-bulle plus tard : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Propriétés prises en charge dans IHyperlinkQueries** + +Vous pouvez accéder à [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) depuis une présentation, une diapositive ou un texte pour lequel l’hyperlien est défini. + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +La classe [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) prend en charge ces méthodes et propriétés : + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **FAQ** + +**Comment créer une navigation interne non seulement vers une diapositive, mais vers une « section » ou la première diapositive d’une section ?** + +Les sections dans PowerPoint sont des groupements de diapositives ; la navigation cible techniquement une diapositive spécifique. Pour « naviguer vers une section », vous liez généralement à sa première diapositive. + +**Puis‑je attacher un hyperlien aux éléments de la diapositive maîtresse afin qu’il fonctionne sur toutes les diapositives ?** + +Oui. Les éléments de la diapositive maîtresse et des mises en page prennent en charge les hyperliens. Ces liens apparaissent sur les diapositives enfants et sont cliquables pendant le diaporama. + +**Les hyperliens seront‑ils conservés lors de l’exportation vers PDF, HTML, images ou vidéo ?** + +Dans [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/) et [HTML](/slides/fr/nodejs-java/convert-powerpoint-to-html/), oui — les liens sont généralement conservés. Lors de l’exportation vers [images](/slides/fr/nodejs-java/convert-powerpoint-to-png/) et [vidéo](/slides/fr/nodejs-java/convert-powerpoint-to-video/), la possibilité de cliquer ne sera pas conservée en raison de la nature de ces formats (les images raster/vidéos ne prennent pas en charge les hyperliens). \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..2c58df700c --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,239 @@ +--- +title: Gérer l'audio dans les présentations avec JavaScript +linktitle: Cadre audio +type: docs +weight: 10 +url: /fr/nodejs-java/audio-frame/ +keywords: +- audio +- cadre audio +- miniature +- ajouter de l'audio +- propriétés audio +- options audio +- extraire l'audio +- Node.js +- JavaScript +- Aspose.Slides +description: "Créer et contrôler les cadres audio dans Aspose.Slides pour Node.js — exemples JavaScript pour intégrer, rogner, boucler et configurer la lecture dans les présentations PPT, PPTX et ODP." +--- + +## **Créer des cadres audio** + +Aspose.Slides for Node.js via Java vous permet d'ajouter des fichiers audio aux diapositives. Les fichiers audio sont intégrés dans les diapositives sous forme de cadres audio. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d'une diapositive via son index. +3. Chargez le flux du fichier audio que vous souhaitez intégrer dans la diapositive. +4. Ajoutez le cadre audio intégré (contenant le fichier audio) à la diapositive. +5. Définissez [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) et `Volume` exposés par l'objet [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame). +6. Enregistrez la présentation modifiée. + +Ce code JavaScript vous montre comment ajouter un cadre audio intégré à une diapositive: +```javascript +// Instancie une classe Presentation qui représente un fichier de présentation +const pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive + const sld = pres.getSlides().get_Item(0); + // Charge le fichier son wav dans un flux + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // Ajoute le cadre audio + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // Définit le mode de lecture et le volume de l'audio + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // Écrit le fichier PowerPoint sur le disque + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Modifier la miniature du cadre audio** + +Lorsque vous ajoutez un fichier audio à une présentation, l'audio apparaît sous forme de cadre avec une image standard par défaut (voir l'image dans la section ci-dessous). Vous pouvez modifier l'image d'aperçu du cadre audio (définir votre image préférée). + +Ce code JavaScript vous montre comment modifier la miniature ou l'image d'aperçu d'un cadre audio : +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // Ajoute un cadre audio à la diapositive avec une position et une taille spécifiées. + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // Ajoute une image aux ressources de la présentation. + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Définit l'image pour le cadre audio. + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // Enregistre la présentation modifiée sur le disque + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Modifier les options de lecture audio** + +Aspose.Slides for Node.js via Java vous permet de modifier les options qui contrôlent la lecture ou les propriétés d'un audio. Par exemple, vous pouvez ajuster le volume d'un audio, définir la lecture en boucle, ou même masquer l'icône audio. + +Le volet **Options audio** dans Microsoft PowerPoint : + +![example1_image](audio_frame_0.png) + +Les **options audio** de PowerPoint qui correspondent aux propriétés Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) : +- **Démarrer** la liste déroulante correspond à la méthode [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode) +- **Volume** correspond à la méthode [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume) +- **Lire sur plusieurs diapositives** correspond à la méthode [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides) +- **Boucler jusqu'à l'arrêt** correspond à la méthode [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode) +- **Masquer pendant le diaporama** correspond à la méthode [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing) +- **Rembobiner après lecture** correspond à la méthode [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio) + +Les options **édition** de PowerPoint qui correspondent aux propriétés Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) : +- **Fondu d'entrée** correspond à la méthode [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration) +- **Fondu de sortie** correspond à la méthode [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration) +- **Rogner le temps de début de l'audio** correspond à la méthode [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart) +- **Rogner le temps de fin de l'audio** valeur égale à la durée de l'audio moins la valeur de la méthode [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd) + +Le **contrôle du volume** de PowerPoint dans le panneau de contrôle audio correspond à la méthode [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue). Il vous permet de modifier le volume audio en pourcentage. + +Voici comment modifier les options de lecture audio : +1. [Créer](#create-audio-frame) ou obtenir le cadre audio. +2. Définissez de nouvelles valeurs pour les propriétés du cadre audio que vous souhaitez ajuster. +3. Enregistrez le fichier PowerPoint modifié. + +Ce code JavaScript démontre une opération où les options d'un audio sont ajustées : +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // Récupère la forme AudioFrame + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // Définit le mode de lecture sur lecture au clic + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // Définit le volume à Bas + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // Définit la lecture audio sur toutes les diapositives + audioFrame.setPlayAcrossSlides(true); + // Désactive la boucle pour l'audio + audioFrame.setPlayLoopMode(false); + // Masque le cadre audio pendant le diaporama + audioFrame.setHideAtShowing(true); + // Rembobine l'audio au début après la lecture + audioFrame.setRewindAudio(true); + // Enregistre le fichier PowerPoint sur le disque + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Cet exemple JavaScript montre comment ajouter un nouveau cadre audio avec audio intégré, le rogner, et définir les durées de fondu : +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // Définit le décalage de début du rognage à 1,5 seconde + audioFrame.setTrimFromStart(1500); + // Définit le décalage de fin du rognage à 2 secondes + audioFrame.setTrimFromEnd(2000); + + // Définit la durée du fondu d'entrée à 200 ms + audioFrame.setFadeInDuration(200); + // Définit la durée du fondu de sortie à 500 ms + audioFrame.setFadeOutDuration(500); + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +L'exemple de code suivant montre comment récupérer un cadre audio avec audio intégré et régler son volume à 85 % : +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // Récupère une forme AudioFrame + const audioFrame = slide.getShapes().get_Item(0); + + // Définit le volume de l'audio à 85% + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **Extraire l'audio** + +Aspose.Slides for Node.js via Java vous permet d'extraire le son utilisé dans les transitions de diaporama. Par exemple, vous pouvez extraire le son utilisé dans une diapositive spécifique. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) et chargez la présentation contenant l'audio. +2. Obtenez la référence de la diapositive concernée via son index. +3. Accédez aux [transitions du diaporama](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--) pour la diapositive. +4. Extrayez le son sous forme de données binaires. + +Ce code JavaScript vous montre comment extraire l'audio utilisé dans une diapositive : +```javascript +// Instancie une classe Presentation qui représente un fichier de présentation +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // Accède à la diapositive souhaitée + const slide = pres.getSlides().get_Item(0); + // Obtient les effets de transition du diaporama pour la diapositive + const transition = slide.getSlideShowTransition(); + // Extrait le son sous forme de tableau d'octets + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je réutiliser le même fichier audio sur plusieurs diapositives sans augmenter la taille du fichier ?** + +Oui. Ajoutez l'audio une fois à la collection d'**audio partagé** de la présentation [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) et créez des cadres audio supplémentaires qui font référence à cet actif existant. Cela évite la duplication des données multimédias et maintient la taille de la présentation sous contrôle. + +**Puis-je remplacer le son d'un cadre audio existant sans recréer la forme ?** + +Oui. Pour un son lié, mettez à jour le [link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) pour qu'il pointe vers le nouveau fichier. Pour un son intégré, remplacez l'objet [embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) par un autre provenant de la [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) de la présentation. La mise en forme du cadre et la plupart des paramètres de lecture restent intacts. + +**Le rognage modifie-t-il les données audio sous‑jacentes stockées dans la présentation ?** + +Non. Le rognage n’ajuste que les limites de lecture. Les octets audio originaux restent intacts et accessibles via l'audio intégré ou la collection d'audio de la présentation. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..bf9acb3e3a --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: Flash +type: docs +weight: 10 +url: /fr/nodejs-java/flash/ +description: Extraire les objets Flash d'une présentation PowerPoint avec JavaScript +--- + +## **Extraire les objets Flash d’une présentation** + +Aspose.Slides pour Node.js via Java offre une fonctionnalité d’extraction d’objets flash d’une présentation. Vous pouvez accéder au contrôle flash par son nom et l’extraire de la présentation, y compris les données d’objet SWF stockées. +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quels formats de présentation sont pris en charge lors de l’extraction de contenu Flash ?** + +[Aspose.Slides prend en charge](/slides/fr/nodejs-java/supported-file-formats/) les principaux formats PowerPoint tels que PPT et PPTX, car il peut charger ces conteneurs et accéder à leurs contrôles, y compris les éléments ActiveX liés à Flash. + +**Puis-je convertir une présentation contenant du Flash en HTML5 et conserver l’interactivité du Flash ?** + +Non. Aspose.Slides n’exécute pas le contenu SWF ni ne convertit son interactivité. Bien que l’exportation vers [HTML](/slides/fr/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/fr/nodejs-java/export-to-html5/) soit prise en charge, le Flash ne fonctionnera pas dans les navigateurs modernes en raison de la fin du support. La solution recommandée consiste à remplacer le Flash par des alternatives telles que la vidéo ou des animations HTML5 avant l’exportation. + +**Du point de vue de la sécurité, Aspose.Slides exécute-t-il des fichiers SWF lors de la lecture d’une présentation ?** + +Non. Aspose.Slides considère le Flash comme des données binaires intégrées au fichier et n’exécute pas le contenu SWF pendant le traitement. + +**Comment dois-je gérer les présentations qui incluent du Flash ainsi que d’autres fichiers intégrés via OLE ?** + +Aspose.Slides prend en charge [l’extraction des objets OLE intégrés](/slides/fr/nodejs-java/manage-ole/), vous permettant de traiter tout le contenu intégré lié en une seule passe, en gérant les contrôles Flash et les autres documents intégrés via OLE ensemble. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..b328bdde8f --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,308 @@ +--- +title: Image +type: docs +weight: 10 +url: /fr/nodejs-java/image/ +keywords: +- ajouter image +- ajouter image +- ajouter bitmap +- remplacer image +- remplacer image +- depuis le web +- arrière-plan +- ajouter PNG +- ajouter JPG +- ajouter SVG +- ajouter EMF +- ajouter WMF +- ajouter TIFF +- PowerPoint +- OpenDocument +- présentation +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "Simplifiez la gestion des images dans PowerPoint et OpenDocument avec Aspose.Slides pour Node.js, en optimisant les performances et en automatisant votre flux de travail." +--- + +## **Images dans les diapositives des présentations** + +Les images rendent les présentations plus attrayantes et intéressantes. Dans Microsoft PowerPoint, vous pouvez insérer des images depuis un fichier, Internet ou d’autres emplacements sur les diapositives. De même, Aspose.Slides vous permet d’ajouter des images aux diapositives de vos présentations grâce à différentes procédures. + +{{% alert title="Astuce" color="primary" %}} + +Aspose propose des convertisseurs gratuits — [JPEG vers PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) et [PNG vers PowerPoint](https://products.aspose.app/slides/import/png-to-ppt) — qui permettent de créer rapidement des présentations à partir d’images. + +{{% /alert %}} + +{{% alert title="Info" color="info" %}} + +Si vous souhaitez ajouter une image en tant qu’objet cadre—en particulier si vous prévoyez d’utiliser les options de formatage standard pour modifier sa taille, ajouter des effets, etc.—voir [Cadre d’image](https://docs.aspose.com/slides/nodejs-java/picture-frame/). + +{{% /alert %}} + +{{% alert title="Remarque" color="warning" %}} + +Vous pouvez manipuler les opérations d’entrée/sortie impliquant des images et des présentations PowerPoint pour convertir une image d’un format à un autre. Consultez ces pages : convertir [image en JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/ ); convertir [JPG en image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/ ); convertir [JPG en PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), convertir [PNG en JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); convertir [PNG en SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), convertir [SVG en PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +Aspose.Slides prend en charge les opérations avec des images dans ces formats populaires : JPEG, PNG, GIF et d’autres. + +## **Ajout d’images stockées localement aux diapositives** + +Vous pouvez ajouter une ou plusieurs images présentes sur votre ordinateur à une diapositive d’une présentation. Ce code d’exemple en JavaScript vous montre comment ajouter une image à une diapositive : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajout d’images depuis un flux aux diapositives** + +Si l’image que vous souhaitez ajouter à une diapositive n’est pas disponible sur votre ordinateur, vous pouvez l’ajouter directement depuis le Web. + +Ce code d’exemple vous montre comment ajouter une image depuis le Web à une diapositive en JavaScript : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Accède à la première diapositive + var sld = pres.getSlides().get_Item(0); + // Charge un fichier Excel en flux + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // Crée un objet de données pour l'intégration + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // Ajoute une forme de cadre d'objet Ole + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // Écrit le fichier PPTX sur le disque + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajout d’images aux maîtres de diapositives** + +Un maître de diapositive est la diapositive supérieure qui stocke et contrôle les informations (thème, mise en page, etc.) de toutes les diapositives qui en découlent. Ainsi, lorsque vous ajoutez une image à un maître de diapositive, cette image apparaît sur chaque diapositive utilisant ce maître. + +Ce code d’exemple en JavaScript vous montre comment ajouter une image à un maître de diapositive : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajout d’images comme arrière-plan de diapositive** + +Vous pouvez décider d’utiliser une image comme arrière‑plan d’une diapositive spécifique ou de plusieurs diapositives. Dans ce cas, vous devez consulter *[Définir des images comme arrière‑plans pour les diapositives](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)*. + +## **Ajout de SVG aux présentations** +Vous pouvez ajouter ou insérer n’importe quelle image dans une présentation en utilisant la méthode [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) appartenant à la classe [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +Pour créer un objet image basé sur une image SVG, procédez ainsi : + +1. Créez un objet SvgImage à insérer dans ImageShapeCollection +2. Créez un objet PPImage à partir de ISvgImage +3. Créez un objet PictureFrame en utilisant la classe PPImage + +Ce code d’exemple vous montre comment mettre en œuvre les étapes ci‑dessus pour ajouter une image SVG à une présentation : +```javascript +// Instancier la classe Presentation qui représente le fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Conversion du SVG en ensemble de formes** +La conversion du SVG en un ensemble de formes par Aspose.Slides est similaire à la fonctionnalité PowerPoint utilisée pour travailler avec les images SVG : + +![PowerPoint Popup Menu](img_01_01.png) + +Cette fonctionnalité est fournie par l’une des surcharge de la méthode [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) de la classe [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) qui accepte un objet [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage) en premier argument. + +Ce code d’exemple vous montre comment utiliser la méthode décrite pour convertir un fichier SVG en un ensemble de formes : +```javascript +// Créer une nouvelle présentation +var presentation = new aspose.slides.Presentation(); +try { + // Lire le contenu du fichier SVG + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // Créer un objet SvgImage + var svgImage = new aspose.slides.SvgImage(svgContent); + // Obtenir la taille de la diapositive + var slideSize = presentation.getSlideSize().getSize(); + // Convertir l'image SVG en groupe de formes en l'ajustant à la taille de la diapositive + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // Enregistrer la présentation au format PPTX + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Ajout d’images en tant qu’EMF dans les diapositives** +Aspose.Slides for Node.js via Java vous permet de générer des images EMF à partir de feuilles Excel et d’ajouter ces images en tant qu’EMF dans les diapositives avec Aspose.Cells. + +Ce code d’exemple vous montre comment réaliser la tâche décrite : +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); +// Save the workbook to stream +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Remplacement d’images dans la collection d’images** + +Aspose.Slides vous permet de remplacer les images stockées dans la collection d’images d’une présentation (y compris celles utilisées par les formes de diapositives). Cette section montre plusieurs approches pour mettre à jour les images de la collection. L’API fournit des méthodes simples pour remplacer une image à l’aide de données brutes, d’une instance [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) ou d’une autre image déjà présente dans la collection. + +Suivez les étapes ci‑dessous : + +1. Chargez le fichier de présentation contenant les images à l’aide de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Chargez une nouvelle image depuis un fichier dans un tableau d’octets. +3. Remplacez l’image cible par la nouvelle image en utilisant le tableau d’octets. +4. Dans la deuxième approche, chargez l’image dans un objet [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) et remplacez l’image cible par cet objet. +5. Dans la troisième approche, remplacez l’image cible par une image déjà présente dans la collection d’images de la présentation. +6. Enregistrez la présentation modifiée au format PPTX. + +```js +// Instancier la classe Presentation qui représente un fichier de présentation. +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // La première façon. + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // La deuxième façon. + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // La troisième façon. + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // Enregistrer la présentation dans un fichier. + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} + +En utilisant le convertisseur GRATUIT Aspose [Texte vers GIF](https://products.aspose.app/slides/text-to-gif), vous pouvez facilement animer du texte, créer des GIF à partir de texte, etc. + +{{% /alert %}} + +## **FAQ** + +**La résolution de l’image originale reste‑t‑elle intacte après l’insertion ?** + +Oui. Les pixels source sont conservés, mais l’apparence finale dépend de la manière dont le [cadre d’image](/slides/fr/nodejs-java/picture-frame/) est mis à l’échelle sur la diapositive et de toute compression appliquée lors de l’enregistrement. + +**Quelle est la meilleure façon de remplacer le même logo sur des dizaines de diapositives en une fois ?** + +Placez le logo sur le maître de diapositive ou sur une mise en page et remplacez‑le dans la collection d’images de la présentation ; les mises à jour se propageront à tous les éléments qui utilisent cette ressource. + +**Un SVG inséré peut‑il être converti en formes modifiables ?** + +Oui. Vous pouvez convertir un SVG en un groupe de formes, après quoi chaque partie devient modifiable avec les propriétés de forme classiques. + +**Comment définir une image comme arrière‑plan pour plusieurs diapositives en même temps ?** + +[Attribuez l’image comme arrière‑plan](/slides/fr/nodejs-java/presentation-background/) sur le maître de diapositive ou la mise en page concernée ; toutes les diapositives utilisant ce maître/mise en page hériteront de l’arrière‑plan. + +**Comment empêcher la présentation de « gonfler » en taille à cause de nombreuses images ?** + +Réutilisez une même ressource d’image au lieu de duplicata, choisissez des résolutions raisonnables, appliquez une compression lors de l’enregistrement et conservez les graphiques répétés sur le maître lorsque cela est approprié. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..a282ce1f2f --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,449 @@ +--- +title: Cadre d'image +type: docs +weight: 10 +url: /fr/nodejs-java/picture-frame/ +keywords: +- cadre d'image +- ajouter un cadre d'image +- créer un cadre d'image +- ajouter une image +- créer une image +- extraire une image +- recadrer une image +- propriété StretchOff +- mise en forme du cadre d'image +- propriétés du cadre d'image +- effet d'image +- ratio d'aspect +- PowerPoint +- présentation +- Node.js +- JavaScript +- Aspose.Slides pour Node.js via Java +description: "Ajouter un cadre d'image à une présentation PowerPoint en JavaScript" +--- + +Un cadre d'image est une forme qui contient une image - c'est comme une photo dans un cadre. + +Vous pouvez ajouter une image à une diapositive via un cadre d'image. Ainsi, vous pouvez formater l'image en formatant le cadre d'image. + +{{% alert title="Astuce" color="primary" %}} + +Aspose fournit des convertisseurs gratuits - [JPEG to PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) et [PNG to PowerPoint](https://products.aspose.app/slides/import/png-to-ppt) - qui permettent de créer rapidement des présentations à partir d'images. + +{{% /alert %}} + +## **Créer un cadre d'image** + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez une référence à une diapositive via son indice. +3. Créez un objet `PPImage` en ajoutant une image à la [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) associée à l'objet de présentation qui sera utilisé pour remplir la forme. +4. Spécifiez la largeur et la hauteur de l'image. +5. Créez un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) basé sur la largeur et la hauteur de l'image via la méthode `addPictureFrame` exposée par l'objet forme associé à la diapositive référencée. +6. Ajoutez un cadre d'image (contenant la photo) à la diapositive. +7. Enregistrez la présentation modifiée en tant que fichier PPTX. + +```javascript +// Instancie la classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive + var sld = pres.getSlides().get_Item(0); + // Instancie la classe Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Ajoute un cadre d'image avec la même hauteur et largeur que l'image + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Enregistre le fichier PPTX sur le disque + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" %}} + +Les cadres d'image vous permettent de créer rapidement des diapositives de présentation à partir d'images. Lorsque vous combinez le cadre d'image avec les options d'enregistrement d'Aspose.Slides, vous pouvez manipuler les opérations d'entrée/sortie pour convertir les images d'un format à un autre. Vous pourriez être intéressé par ces pages : convertir [image en JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); convertir [JPG en image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); convertir [JPG en PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), convertir [PNG en JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); convertir [PNG en SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), convertir [SVG en PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Créer un cadre d'image avec mise à l'échelle relative** + +En modifiant la mise à l'échelle relative d'une image, vous pouvez créer un cadre d'image plus complexe. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez une référence à une diapositive via son indice. +3. Ajoutez une image à la collection d'images de la présentation. +4. Créez un objet [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) en ajoutant une image à la [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) associée à l'objet de présentation qui sera utilisé pour remplir la forme. +5. Spécifiez la largeur et la hauteur relatives de l'image dans le cadre d'image. +6. Enregistrez la présentation modifiée en tant que fichier PPTX. + +```javascript +// Instancie la classe Presentation qui représente le PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive + var sld = pres.getSlides().get_Item(0); + // Instancie la classe Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Ajoute un cadre d'image avec la même hauteur et largeur que l'image + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Définit l'échelle relative de la largeur et de la hauteur + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // Enregistre le fichier PPTX sur le disque + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Extraire des images raster depuis les cadres d'image** + +Vous pouvez extraire des images raster des objets [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) et les enregistrer au format PNG, JPG et autres. L'exemple de code ci‑dessous montre comment extraire une image du document « sample.pptx » et l'enregistrer au format PNG. + +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Extraire des images SVG depuis les cadres d'image** + +Lorsque une présentation contient des graphiques SVG placés à l'intérieur de formes [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) , Aspose.Slides pour Node.js via Java vous permet de récupérer les images vectorielles originales avec une fidélité totale. En parcourant la collection de formes de la diapositive, vous pouvez identifier chaque [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), vérifier si le [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) sous‑jacent contient du contenu SVG, puis enregistrer cette image sur le disque ou dans un flux au format SVG natif. + +L'exemple de code suivant montre comment extraire une image SVG d'un cadre d'image : + +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Obtenir la transparence d'une image** + +Aspose.Slides vous permet d'obtenir l'effet de transparence appliqué à une image. Ce code JavaScript montre l'opération : + +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **Mise en forme du cadre d'image** + +Aspose.Slides fournit de nombreuses options de mise en forme qui peuvent être appliquées à un cadre d'image. En utilisant ces options, vous pouvez modifier un cadre d'image pour qu'il réponde à des exigences spécifiques. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez une référence à une diapositive via son indice. +3. Créez un objet `PPImage` en ajoutant une image à la [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) associée à l'objet de présentation qui sera utilisé pour remplir la forme. +4. Spécifiez la largeur et la hauteur de l'image. +5. Créez un `PictureFrame` basé sur la largeur et la hauteur de l'image via la méthode [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) exposée par l'objet [Shapes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) associé à la diapositive référencée. +6. Ajoutez le cadre d'image (contenant la photo) à la diapositive. +7. Définissez la couleur de la bordure du cadre d'image. +8. Définissez l'épaisseur de la bordure du cadre d'image. +9. Faites pivoter le cadre d'image en lui attribuant une valeur positive ou négative. + * Une valeur positive fait pivoter l'image dans le sens des aiguilles d'une montre. + * Une valeur négative fait pivoter l'image dans le sens inverse des aiguilles d'une montre. +10. Ajoutez le cadre d'image (contenant la photo) à la diapositive. +11. Enregistrez la présentation modifiée en tant que fichier PPTX. + +```javascript +// Instancie la classe Presentation qui représente le PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive + var sld = pres.getSlides().get_Item(0); + // Instancie la classe Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Ajoute un cadre d'image avec la même hauteur et largeur que l'image + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Applique un certain formatage à PictureFrameEx + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // Enregistre le fichier PPTX sur le disque + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Astuce" color="primary" %}} + +Aspose a récemment développé un [créateur de collages gratuit](https://products.aspose.app/slides/collage). Si vous avez besoin de [fusionner des images JPG/JPEG](https://products.aspose.app/slides/collage/jpg) ou PNG, ou de [créer des grilles à partir de photos](https://products.aspose.app/slides/collage/photo-grid), vous pouvez utiliser ce service. + +{{% /alert %}} + +## **Ajouter une image en tant que lien** + +Pour éviter des présentations volumineuses, vous pouvez ajouter des images (ou vidéos) via des liens au lieu d'incorporer les fichiers directement dans les présentations. Ce code JavaScript montre comment ajouter une image et une vidéo dans un espace réservé : + +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Rogner une image** + +Ce code JavaScript montre comment rogner une image existante sur une diapositive : + +```javascript +var pres = new aspose.slides.Presentation(); +// Crée un nouvel objet image +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Ajoute un PictureFrame à une diapositive + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // Recadre l'image (valeurs en pourcentage) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // Enregistre le résultat + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Supprimer les zones rognées d'un cadre d'image** + +Si vous souhaitez supprimer les zones rognées d'une image contenue dans un cadre, vous pouvez utiliser la méthode [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) . Cette méthode renvoie l'image rognée ou l'image d'origine si le rognage n'est pas nécessaire. + +Ce code JavaScript montre l'opération : + +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // Obtient le PictureFrame de la première diapositive + var picFrame = slide.getShapes().get_Item(0); + // Supprime les zones rognées de l'image du PictureFrame et renvoie l'image rognée + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // Enregistre le résultat + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +La méthode [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) ajoute l'image rognée à la collection d'images de la présentation. Si l'image n'est utilisée que dans le [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) traité, cette configuration peut réduire la taille de la présentation. Sinon, le nombre d'images dans la présentation résultante augmentera. + +Cette méthode convertit les méta‑fichiers WMF/EMF en image PNG raster lors de l'opération de rognage. + +{{% /alert %}} + +## **Verrouiller le ratio d'aspect** + +Si vous souhaitez qu'une forme contenant une image conserve son ratio d'aspect même après avoir modifié les dimensions de l'image, vous pouvez utiliser la méthode [setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-) pour définir le paramètre *Lock Aspect Ratio*. + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // définir la forme pour qu'elle conserve le ratio d'aspect lors du redimensionnement + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +Ce paramètre *Lock Aspect Ratio* ne préserve que le ratio d'aspect de la forme et non celui de l'image qu'elle contient. + +{{% /alert %}} + +## **Utiliser la propriété StretchOff** + +En utilisant les méthodes [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-), [setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--), [setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) et [setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) de la classe [PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat), vous pouvez spécifier un rectangle de remplissage. + +Lorsque le redimensionnement est spécifié pour une image, un rectangle source est mis à l'échelle pour s'adapter au rectangle de remplissage indiqué. Chaque bord du rectangle de remplissage est défini par un décalage en pourcentage par rapport au bord correspondant de la boîte englobante de la forme. Un pourcentage positif indique un retrait tandis qu'un pourcentage négatif indique une extrusion. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio). +2. Obtenez une référence à une diapositive via son indice. +3. Ajoutez un rectangle `AutoShape`. +4. Créez une image. +5. Définissez le type de remplissage de la forme. +6. Définissez le mode de remplissage d'image de la forme. +7. Ajoutez une image définie pour remplir la forme. +8. Spécifiez les décalages de l'image par rapport au bord correspondant de la boîte englobante de la forme +9. Enregistrez la présentation modifiée en tant que fichier PPTX. + +```javascript +// Instancie la classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive + var slide = pres.getSlides().get_Item(0); + // Instancie la classe ImageEx + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Ajoute une AutoShape de type Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Définit le type de remplissage de la forme + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // Définit le mode de remplissage d'image de la forme + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // Définit l'image pour remplir la forme + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // Spécifie les décalages de l'image par rapport au bord correspondant de la boîte englobante de la forme + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // Enregistre le fichier PPTX sur le disque + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Comment savoir quels formats d'image sont pris en charge pour PictureFrame ?** + +Aspose.Slides prend en charge à la fois les images raster (PNG, JPEG, BMP, GIF, etc.) et les images vectorielles (par exemple, SVG) via l'objet image assigné à un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/). La liste des formats pris en charge chevauche généralement les capacités du moteur de conversion de diapositives et d'images. + +**Comment l'ajout de dizaines d'images volumineuses affecte-t-il la taille et les performances du PPTX ?** + +L'intégration d'images volumineuses augmente la taille du fichier et l'utilisation de la mémoire ; le fait de lier les images permet de réduire la taille de la présentation mais nécessite que les fichiers externes restent accessibles. Aspose.Slides offre la possibilité d'ajouter des images par lien afin de réduire la taille du fichier. + +**Comment puis‑je verrouiller un objet image contre tout déplacement/redimensionnement accidentel ?** + +Utilisez les [verrous de forme](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/) pour un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) (par exemple, désactiver le déplacement ou le redimensionnement). Le mécanisme de verrouillage est décrit pour les formes dans un [article de protection](/slides/fr/nodejs-java/applying-protection-to-presentation/) distinct et est pris en charge pour divers types de formes, y compris les [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/). + +**La fidélité du vecteur SVG est‑elle conservée lors de l'exportation d’une présentation en PDF/images ?** + +Aspose.Slides permet d'extraire un SVG d'un [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) en tant que vecteur original. Lors de l'[exportation vers PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/) ou vers des [formats raster](/slides/fr/nodejs-java/convert-powerpoint-to-png/), le résultat peut être rasterisé en fonction des paramètres d'exportation ; le fait que le SVG original soit stocké comme vecteur est confirmé par le comportement d'extraction. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..40478f5df2 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,180 @@ +--- +title: Cadre vidéo +type: docs +weight: 10 +url: /fr/nodejs-java/video-frame/ +keywords: "Ajouter une vidéo, créer un cadre vidéo, extraire une vidéo, présentation PowerPoint, Java, Aspose.Slides pour Node.js via Java" +description: "Ajouter un cadre vidéo à une présentation PowerPoint en JavaScript" +--- + +Une vidéo bien placée dans une présentation peut rendre votre message plus percutant et augmenter le niveau d'engagement de votre public. + +PowerPoint vous permet d’ajouter des vidéos à une diapositive de deux manières : + +* Ajouter ou incorporer une vidéo locale (stockée sur votre machine) +* Ajouter une vidéo en ligne (depuis une source Web telle que YouTube). + +Pour vous permettre d’ajouter des vidéos (objets vidéo) à une présentation, Aspose.Slides fournit la classe [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/), la classe [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) et d’autres types pertinents. + +## **Créer un cadre vidéo intégré** + +Si le fichier vidéo que vous souhaitez ajouter à votre diapositive est stocké localement, vous pouvez créer un cadre vidéo pour incorporer la vidéo dans votre présentation. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive via son indice. +3. Ajoutez un objet [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) et transmettez le chemin du fichier vidéo pour l’incorporer à la présentation. +4. Ajoutez un objet [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) pour créer un cadre pour la vidéo. +5. Enregistrez la présentation modifiée. + +Ce code JavaScript vous montre comment ajouter une vidéo stockée localement à une présentation : +```javascript +// Instancie la classe Presentation +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Charge la vidéo + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // Obtient la première diapositive et ajoute un videoframe + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // Enregistre la présentation sur le disque + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Vous pouvez également ajouter une vidéo en transmettant directement son chemin de fichier à la méthode [addVideoFrame(float x,float y,float width,float height,IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-) : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Créer un cadre vidéo avec une vidéo depuis une source Web** + +Microsoft [PowerPoint 2013 et versions ultérieures](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us) prennent en charge les vidéos YouTube dans les présentations. Si la vidéo que vous souhaitez utiliser est disponible en ligne (par ex. sur YouTube), vous pouvez l’ajouter à votre présentation via son lien Web. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive via son indice. +3. Ajoutez un objet [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) et transmettez le lien vers la vidéo. +4. Définissez une vignette pour le cadre vidéo. +5. Enregistrez la présentation. + +Ce code JavaScript vous montre comment ajouter une vidéo depuis le Web à une diapositive dans une présentation PowerPoint : +```javascript +// Crée un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **Extraire la vidéo d'une diapositive** + +En plus d’ajouter des vidéos aux diapositives, Aspose.Slides vous permet d’extraire les vidéos incorporées dans les présentations. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) pour charger la présentation contenant la vidéo. +2. Parcourez tous les objets [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). +3. Parcourez tous les objets [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) pour trouver un [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). +4. Enregistrez la vidéo sur le disque. + +Ce code JavaScript vous montre comment extraire la vidéo d’une diapositive de présentation : +```javascript +// Instancie un objet Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // Obtient l'extension du fichier + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quels paramètres de lecture peuvent être modifiés pour un VideoFrame ?** + +Vous pouvez contrôler le [mode de lecture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/) (automatique ou au clic) et la [boucle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/). Ces options sont disponibles via les propriétés de l’objet [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). + +**L’ajout d’une vidéo influe‑t‑il sur la taille du fichier PPTX ?** + +Oui. Lorsque vous incorporez une vidéo locale, les données binaires sont incluses dans le document, ce qui augmente la taille de la présentation proportionnellement à la taille du fichier. Lorsque vous ajoutez une vidéo en ligne, un lien et une vignette sont incorporés, ce qui entraîne une hausse de taille moindre. + +**Puis‑je remplacer la vidéo d’un VideoFrame existant sans modifier sa position ni sa taille ?** + +Oui. Vous pouvez échanger le [contenu vidéo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/) à l’intérieur du cadre tout en conservant la géométrie de la forme ; c’est un scénario courant pour mettre à jour les médias dans une mise en page existante. + +**Le type de contenu (MIME) d’une vidéo incorporée peut‑il être déterminé ?** + +Oui. Une vidéo incorporée possède un [type de contenu](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/) que vous pouvez lire et utiliser, par exemple lors de l’enregistrement sur le disque. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..673eaca51c --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,334 @@ +--- +title: Gérer OLE dans les présentations avec JavaScript +linktitle: Gérer OLE +type: docs +weight: 40 +url: /fr/nodejs-java/manage-ole/ +keywords: +- objet OLE +- Liaison et incorporation d'objets +- ajouter OLE +- incorporer OLE +- ajouter objet +- incorporer objet +- ajouter fichier +- incorporer fichier +- objet lié +- fichier lié +- modifier OLE +- icône OLE +- titre OLE +- extraire OLE +- extraire objet +- extraire fichier +- PowerPoint +- présentation +- Node.js +- JavaScript +- Aspose.Slides +description: "Optimisez la gestion des objets OLE dans les fichiers PowerPoint et OpenDocument avec Aspose.Slides pour Node.js. Intégrez, mettez à jour et exportez le contenu OLE de manière transparente." +--- + +{{% alert color="primary" %}} + +OLE (Object Linking & Embedding) est une technologie Microsoft qui permet de placer des données et des objets créés dans une application dans une autre application via un lien ou une incorporation. + +{{% /alert %}} + +Considérez un graphique créé dans MS Excel. Ce graphique est ensuite placé dans une diapositive PowerPoint. Ce graphique Excel est considéré comme un objet OLE. + +- Un objet OLE peut apparaître sous forme d’icône. Dans ce cas, lorsque vous double‑cliquez sur l’icône, le graphique s’ouvre dans son application associée (Excel), ou il vous est demandé de sélectionner une application pour ouvrir ou modifier l’objet. +- Un objet OLE peut afficher son contenu réel, comme le contenu d’un graphique. Dans ce cas, le graphique est activé dans PowerPoint, l’interface du graphique se charge et vous pouvez modifier les données du graphique directement dans PowerPoint. + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) vous permet d’insérer des objets OLE dans des diapositives sous forme de cadres d’objet OLE ([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)). + +## **Ajout de cadres d’objet OLE aux diapositives** + +En supposant que vous avez déjà créé un graphique dans Microsoft Excel et que vous souhaitez l’incorporer dans une diapositive sous forme de cadre d’objet OLE à l’aide d’Aspose.Slides for Node.js via Java, procédez ainsi : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtenez la référence d’une diapositive via son index. +1. Lisez le fichier Excel sous forme de tableau d’octets. +1. Ajoutez le [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) à la diapositive en fournissant le tableau d’octets et les autres informations sur l’objet OLE. +1. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +Dans l’exemple ci‑dessous, nous avons ajouté un graphique provenant d’un fichier Excel à une diapositive sous forme de cadre d’objet OLE à l’aide d’Aspose.Slides for Node.js via Java. +**Remarque** : le constructeur [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) accepte une extension d’objet incorporable comme second paramètre. Cette extension permet à PowerPoint d’interpréter correctement le type de fichier et de choisir l’application appropriée pour ouvrir cet objet OLE. +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// Prepare data for the OLE object. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// Add the OLE object frame to the slide. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **Ajout de cadres d’objet OLE liés** + +Aspose.Slides for Node.js via Java vous permet d’ajouter un [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) sans incorporer les données, mais uniquement avec un lien vers le fichier. + +Ce code JavaScript montre comment ajouter un [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) avec un fichier Excel lié à une diapositive : +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// Add an OLE object frame with a linked Excel file. +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Accès aux cadres d’objet OLE** + +Si un objet OLE est déjà incorporé dans une diapositive, vous pouvez le trouver ou y accéder de cette manière : + +1. Chargez une présentation contenant l’objet OLE incorporé en créant une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence de la diapositive en utilisant son index. +3. Accédez à la forme [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame). Dans notre exemple, nous avons utilisé le PPTX précédemment créé qui ne contient qu’une forme sur la première diapositive. +4. Une fois le cadre d’objet OLE accessible, vous pouvez effectuer toute opération dessus. + +Dans l’exemple ci‑dessous, un cadre d’objet OLE (un objet graphique Excel incorporé dans une diapositive) et ses données de fichier sont accessibles. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Obtenir les données du fichier incorporé. + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + + // Obtenir l'extension du fichier incorporé. + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + // ... +} +``` + + +### **Accès aux propriétés du cadre d’objet OLE lié** + +Aspose.Slides vous permet d’accéder aux propriétés du cadre d’objet OLE lié. + +Ce code JavaScript montre comment vérifier si un objet OLE est lié puis obtenir le chemin du fichier lié : +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Vérifier si l'objet OLE est lié. + if (oleFrame.isObjectLink()) { + // Afficher le chemin complet du fichier lié. + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // Afficher le chemin relatif du fichier lié s'il est présent. + // Seules les présentations PPT peuvent contenir le chemin relatif. + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **Modification des données d’un objet OLE** + +{{% alert color="primary" %}} + +Dans cette section, l’exemple de code ci‑dessous utilise [Aspose.Cells for Java](/cells/java/). + +{{% /alert %}} + +Si un objet OLE est déjà incorporé dans une diapositive, vous pouvez facilement accéder à cet objet et modifier ses données de cette façon : + +1. Chargez une présentation contenant l’objet OLE incorporé en créant une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence de la diapositive via son index. +3. Accédez à la forme du cadre d’objet OLE. Dans notre exemple, nous avons utilisé le PPTX précédemment créé qui possède une forme sur la première diapositive. +4. Une fois le cadre d’objet OLE accessible, vous pouvez effectuer toute opération dessus. +5. Créez un objet `Workbook` et accédez aux données OLE. +6. Accédez à la `Worksheet` souhaitée et modifiez les données. +7. Enregistrez le `Workbook` mis à jour dans un flux. +8. Remplacez les données de l’objet OLE à partir du flux. + +Dans l’exemple ci‑dessous, un cadre d’objet OLE (un objet graphique Excel incorporé dans une diapositive) est accédé et ses données de fichier sont modifiées pour mettre à jour les données du graphique. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // Lire les données de l'objet OLE en tant qu'objet Workbook. + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // Modifier les données du classeur. + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // Modifier les données de l'objet du cadre OLE. + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Incorporation d’autres types de fichiers dans les diapositives** + +Outre les graphiques Excel, Aspose.Slides for Node.js via Java vous permet d’incorporer d’autres types de fichiers dans les diapositives. Par exemple, vous pouvez insérer des fichiers HTML, PDF et ZIP comme objets. Lorsqu’un utilisateur double‑clique sur l’objet inséré, il s’ouvre automatiquement dans le programme correspondant, ou il est invité à choisir un programme approprié pour l’ouvrir. + +Ce code JavaScript montre comment incorporer HTML et ZIP dans une diapositive : +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Définition des types de fichier pour les objets incorporés** + +Lors de la manipulation de présentations, il peut être nécessaire de remplacer d’anciens objets OLE par de nouveaux ou de remplacer un objet OLE non pris en charge par un objet pris en charge. Aspose.Slides for Node.js via Java vous permet de définir le type de fichier d’un objet incorporé, ce qui vous permet de mettre à jour les données du cadre OLE ou son extension. + +Ce code JavaScript montre comment définir le type de fichier d’un objet OLE incorporé sur `zip` : +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// Modifier le type de fichier en ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Définition des images d’icône et des titres pour les objets incorporés** + +Après l’incorporation d’un objet OLE, un aperçu constitué d’une image d’icône est ajouté automatiquement. Cet aperçu est ce que voient les utilisateurs avant d’accéder ou d’ouvrir l’objet OLE. Si vous souhaitez utiliser une image et un texte spécifiques comme éléments de l’aperçu, vous pouvez définir l’image d’icône et le titre à l’aide d’Aspose.Slides for Node.js via Java. + +Ce code JavaScript montre comment définir l’image d’icône et le titre d’un objet incorporé : +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// Ajouter une image aux ressources de la présentation. +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// Set a title and the image for the OLE preview. +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Empêcher le redimensionnement et le repositionnement d’un cadre d’objet OLE** + +Après avoir ajouté un objet OLE lié à une diapositive de présentation, lorsque vous ouvrez la présentation dans PowerPoint, un message peut s’afficher vous demandant de mettre à jour les liens. Cliquer sur le bouton « Update Links » peut modifier la taille et la position du cadre d’objet OLE parce que PowerPoint met à jour les données de l’objet OLE lié et rafraîchit l’aperçu de l’objet. Pour empêcher PowerPoint de demander la mise à jour des données de l’objet, utilisez la méthode `setUpdateAutomatic` de la classe [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) avec la valeur `false` : +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **Extraction des fichiers incorporés** + +Aspose.Slides for Node.js via Java vous permet d’extraire les fichiers incorporés dans les diapositives sous forme d’objets OLE de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) contenant les objets OLE que vous souhaitez extraire. +2. Parcourez toutes les formes de la présentation et accédez aux formes [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe). +3. Accédez aux données des fichiers incorporés à partir des cadres d’objet OLE et écrivez‑les sur le disque. + +Ce code JavaScript montre comment extraire les fichiers incorporés dans une diapositive sous forme d’objets OLE : +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **FAQ** + +**Le contenu OLE sera‑t‑il rendu lors de l’exportation des diapositives vers PDF/images ?** + +Ce qui est visible sur la diapositive est rendu – l’icône/l’image de substitution (aperçu). Le contenu OLE « live » n’est pas exécuté pendant le rendu. Si nécessaire, définissez votre propre image d’aperçu pour garantir l’apparence attendue dans le PDF exporté. + +**Comment verrouiller un objet OLE sur une diapositive afin que les utilisateurs ne puissent pas le déplacer/modifier dans PowerPoint ?** + +Verrouillez la forme : Aspose.Slides fournit des [verrous au niveau de la forme](/slides/fr/nodejs-java/applying-protection-to-presentation/). Ce n’est pas du chiffrement, mais cela empêche efficacement les modifications et déplacements accidentels. + +**Les chemins relatifs des objets OLE liés seront‑ils conservés dans le format PPTX ?** + +Dans PPTX, les informations de « chemin relatif » ne sont pas disponibles – seul le chemin complet l’est. Les chemins relatifs existent dans le format PPT plus ancien. Pour la portabilité, privilégiez des chemins absolus fiables/URI accessibles ou l’incorporation. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..7159e0427f --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,65 @@ +--- +title: Texte animé +type: docs +weight: 60 +url: /fr/nodejs-java/animated-text/ +keywords: "Texte animé dans PowerPoint" +description: "Texte animé dans PowerPoint avec Java" +--- + +## **Ajout d'effets d'animation aux paragraphes** + +Nous avons ajouté la méthode [**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) aux classes [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) et [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence). Cette méthode vous permet d'ajouter des effets d'animation à un seul paragraphe. Le code d'exemple suivant montre comment ajouter un effet d'animation à un seul paragraphe : +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // sélectionner le paragraphe pour ajouter l'effet + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // ajouter l'effet d'animation Fly au paragraphe sélectionné + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Obtention des effets d'animation dans les paragraphes** + +Vous pouvez décider de découvrir les effets d'animation ajoutés à un paragraphe — par exemple, dans un scénario, vous souhaitez obtenir les effets d'animation d'un paragraphe car vous prévoyez d'appliquer ces effets à un autre paragraphe ou à une forme. + +Aspose.Slides for Node.js via Java vous permet d'obtenir tous les effets d'animation appliqués aux paragraphes contenus dans un cadre de texte (forme). Le code d'exemple suivant montre comment obtenir les effets d'animation dans un paragraphe : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **FAQ** + +**En quoi les animations de texte diffèrent‑elles des transitions de diapositive, et peuvent‑elles être combinées ?** + +Les animations de texte contrôlent le comportement d'un objet au fil du temps sur une diapositive, tandis que [transitions](/slides/fr/nodejs-java/slide-transition/) contrôlent la façon dont les diapositives changent. Elles sont indépendantes et peuvent être utilisées ensemble ; l'ordre de lecture est régi par la chronologie des animations et les paramètres de transition. + +**Les animations de texte sont‑elles conservées lors de l'exportation vers PDF ou images ?** + +Non. Les PDF et les images raster sont statiques, vous verrez donc un seul état de la diapositive sans mouvement. Pour conserver le mouvement, utilisez l'exportation [video](/slides/fr/nodejs-java/convert-powerpoint-to-video/) ou [HTML](/slides/fr/nodejs-java/export-to-html5/). + +**Les animations de texte fonctionnent‑elles dans les mises en page et le masque des diapositives ?** + +Les effets appliqués aux objets de mise en page/masque sont hérités par les diapositives, mais leur chronologie et leur interaction avec les animations au niveau de la diapositive dépendent de la séquence finale sur la diapositive. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..3f69d60423 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,112 @@ +--- +title: Extraire le texte d'une présentation +type: docs +weight: 90 +url: /fr/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +Il n'est pas rare que les développeurs aient besoin d'extraire le texte d'une présentation. Pour ce faire, vous devez extraire le texte de toutes les formes de toutes les diapositives d'une présentation. Cet article explique comment extraire le texte des présentations Microsoft PowerPoint PPTX à l'aide d'Aspose.Slides. + +{{% /alert %}} + +## **Extraire le texte d'une diapositive** + +Aspose.Slides for Node.js via Java fournit la classe [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Cette classe expose un certain nombre de méthodes statiques surchargées permettant d'extraire tout le texte d'une présentation ou d'une diapositive. Pour extraire le texte d'une diapositive dans une présentation PPTX, utilisez la méthode statique surchargée [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) exposée par la classe [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Cette méthode accepte l'objet Slide en paramètre. +Lors de l'exécution, la méthode Slide parcourt tout le texte de la diapositive passée en paramètre et renvoie un tableau d'objets [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) . Cela signifie que toute mise en forme du texte associée au texte est disponible. Le fragment de code suivant extrait tout le texte de la première diapositive de la présentation : +```javascript +// Instancier la classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // Obtenir un tableau d'objets ITextFrame provenant de toutes les diapositives du PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // Boucler à travers le tableau de TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Boucler à travers les paragraphes du ITextFrame actuel + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Boucler à travers les portions du IParagraph actuel + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Afficher le texte dans la portion actuelle + console.log(port.getText()); + // Afficher la hauteur de police du texte + console.log(port.getPortionFormat().getFontHeight()); + // Afficher le nom de la police du texte + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); +} finally { + pres.dispose(); +} +``` + + +## **Extraire le texte d'une présentation** + +Pour analyser le texte de l'ensemble de la présentation, utilisez la méthode statique [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) exposée par la classe SlideUtil. Elle prend deux paramètres : + +1. Tout d'abord, un objet [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) qui représente la présentation dont le texte est extrait. +2. Deuxièmement, une valeur booléenne déterminant si la diapositive maître doit être incluse lors de l'analyse du texte de la présentation. + La méthode renvoie un tableau d'objets [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) contenant les informations de mise en forme du texte. Le code ci‑dessous analyse le texte et les informations de mise en forme d'une présentation, y compris les diapositives maîtres. +```javascript +// Instancier la classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // Obtenir un tableau d'objets ITextFrame provenant de toutes les diapositives du PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // Parcourir le tableau de TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Parcourir les paragraphes du ITextFrame actuel + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Parcourir les portions du IParagraph actuel + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Afficher le texte de la portion actuelle + console.log(port.getText()); + // Afficher la hauteur de police du texte + console.log(port.getPortionFormat().getFontHeight()); + // Afficher le nom de la police du texte + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **Extraction de texte catégorisée et rapide** + +La nouvelle méthode statique getPresentationText a été ajoutée à la classe Presentation. Il existe trois surcharges pour cette méthode : +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + + +## **FAQ** + +**Quelle est la vitesse d'Aspose.Slides lors du traitement de grandes présentations lors de l'extraction de texte ?** + +Aspose.Slides est optimisé pour des performances élevées et traite efficacement même les grandes présentations, ce qui le rend adapté aux scénarios de traitement en temps réel ou en lot. + +**Aspose.Slides peut‑il extraire le texte des tableaux et graphiques dans les présentations ?** + +Oui, Aspose.Slides prend entièrement en charge l'extraction du texte des tableaux, graphiques et autres éléments complexes des diapositives, vous permettant d'accéder facilement à tout le contenu textuel et de l'analyser. + +**Ai‑je besoin d'une licence spéciale Aspose.Slides pour extraire le texte des présentations ?** + +Vous pouvez extraire le texte avec la version d'essai gratuite d'Aspose.Slides, bien qu'elle comporte certaines limitations, comme le traitement d'un nombre limité de diapositives. Pour un usage illimité et la gestion de présentations plus volumineuses, l'achat d'une licence complète est recommandé. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..ede01551dc --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,154 @@ +--- +title: Gérer les paramètres d'AutoFit +type: docs +weight: 30 +url: /fr/nodejs-java/manage-autofit-settings/ +keywords: "Zone de texte, AutoFit, Présentation PowerPoint, Java, Aspose.Slides pour Node.js via Java" +description: "Définir les paramètres d'AutoFit pour la zone de texte dans PowerPoint en JavaScript" +--- + +Par défaut, lorsque vous ajoutez une zone de texte, Microsoft PowerPoint utilise le paramètre **Resize shape to fix text** pour la zone de texte — il redimensionne automatiquement la zone de texte pour garantir que son texte y tient toujours. + +![textbox-in-powerpoint](textbox-in-powerpoint.png) + +* Lorsque le texte de la zone de texte devient plus long ou plus grand, PowerPoint agrandit automatiquement la zone de texte—augmente sa hauteur—pour lui permettre de contenir plus de texte. +* Lorsque le texte de la zone de texte devient plus court ou plus petit, PowerPoint réduit automatiquement la zone de texte—diminue sa hauteur—pour éliminer l’espace redondant. + +Dans PowerPoint, voici les 4 paramètres ou options importants qui contrôlent le comportement d’auto‑ajustement d’une zone de texte : + +* **Do not Autofit** +* **Shrink text on overflow** +* **Resize shape to fit text** +* **Wrap text in shape.** + +![autofit-options-powerpoint](autofit-options-powerpoint.png) + +Aspose.Slides for Node.js via Java propose des options similaires—certaines propriétés de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)—qui vous permettent de contrôler le comportement d’auto‑ajustement des zones de texte dans les présentations. + +## **Redimensionner la forme pour faire tenir le texte** + +Si vous souhaitez que le texte d’une zone de texte s’adapte toujours à son cadre après des modifications, vous devez utiliser l’option **Resize shape to fix text**. Pour spécifier ce paramètre, appelez la méthode [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) avec la valeur `Shape`. + +![alwaysfit-setting-powerpoint](alwaysfit-setting-powerpoint.png) + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Si le texte devient plus long ou plus grand, la zone de texte sera automatiquement redimensionnée (augmentation de la hauteur) pour garantir que tout le texte y tienne. Si le texte devient plus court, l’inverse se produit. + +## **Ne pas auto‑ajuster** + +Si vous souhaitez qu’une zone de texte ou une forme conserve ses dimensions quels que soient les changements apportés au texte qu’elle contient, vous devez utiliser l’option **Do not Autofit**. Pour spécifier ce paramètre, appelez la méthode [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) avec la valeur `None`. + +![donotautofit-setting-powerpoint](donotautofit-setting-powerpoint.png) + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Lorsque le texte devient trop long pour son cadre, il déborde. + +## **Réduire le texte en cas de débordement** + +Si le texte devient trop long pour son cadre, grâce à l’option **Shrink text on overflow**, vous pouvez spécifier que la taille et l’interligne du texte doivent être réduits pour qu’il tienne dans son cadre. Pour spécifier ce paramètre, appelez la méthode [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) avec la valeur `Normal`. + +![shrinktextonoverflow-setting-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +Lorsque l’option **Shrink text on overflow** est utilisée, le paramètre est appliqué uniquement lorsque le texte devient trop long pour son cadre. +{{% /alert %}} + +## **Wrap Text** + +Si vous souhaitez que le texte d’une forme soit renvoyé à l’intérieur de celle‑ci lorsque le texte dépasse le bord de la forme (largeur uniquement), vous devez utiliser le paramètre **Wrap text in shape**. Pour spécifier ce paramètre, vous devez appeler la méthode [setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setWrapText) de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) avec la valeur `true`. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +Si vous appelez la méthode `setWrapText` avec la valeur `False` pour une forme, lorsque le texte à l’intérieur de la forme devient plus long que la largeur de la forme, le texte s’étend au‑delà des bordures de la forme sur une seule ligne. +{{% /alert %}} + +## **FAQ** + +**Les marges internes du cadre de texte affectent-elles l’AutoFit ?** + +Oui. Le remplissage (marges internes) réduit la zone utilisable pour le texte, de sorte que l’AutoFit s’active plus tôt—en réduisant la police ou en redimensionnant la forme plus tôt. Vérifiez et ajustez les marges avant de régler l’AutoFit. + +**Comment l’AutoFit interagit‑il avec les sauts de ligne manuels et souples ?** + +Les sauts forcés restent en place, et l’AutoFit adapte la taille de la police et l’interligne autour d’eux. Supprimer les sauts inutiles réduit souvent l’agressivité du rétrécissement du texte par AutoFit. + +**La modification de la police du thème ou le déclenchement d’une substitution de police affecte‑t‑elle les résultats de l’AutoFit ?** + +Oui. Substituer par une police aux métriques de glyphes différentes modifie la largeur/hauteur du texte, ce qui peut changer la taille finale de la police et le retour à la ligne. Après toute modification ou substitution de police, revérifiez les diapositives. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..8819cb8c1f --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,329 @@ +--- +title: Gérer les puces +type: docs +weight: 60 +url: /fr/nodejs-java/manage-bullet/ +keywords: "Puces, Listes à puces, Nombres, Listes numérotées, Puces image, Puces à plusieurs niveaux, Présentation PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "Créer des listes à puces et numérotées dans une présentation PowerPoint en JavaScript" +--- + +Dans **Microsoft PowerPoint**, vous pouvez créer des listes à puces et numérotées de la même façon que dans Word et d’autres éditeurs de texte. **Aspose.Slides for Node.js via Java** vous permet également d’utiliser des puces et des numéros dans les diapositives de vos présentations. + +## **Pourquoi utiliser les listes à puces ?** + +Les listes à puces vous aident à organiser et présenter l’information rapidement et efficacement. + +**Exemple de liste à puces** + +Dans la plupart des cas, une liste à puces remplit ces trois fonctions principales : + +- attire l’attention de vos lecteurs ou spectateurs sur les informations importantes +- permet à vos lecteurs ou spectateurs de repérer facilement les points clés +- communique et transmet efficacement les détails importants. + +## **Pourquoi utiliser les listes numérotées ?** + +Les listes numérotées aident également à organiser et présenter l’information. Idéalement, vous devez utiliser des nombres (au lieu de puces) lorsque l’ordre des entrées (par exemple, *étape 1, étape 2*, etc.) est important ou lorsqu’une entrée doit être référencée (par exemple, *voir étape 3*). + +**Exemple de liste numérotée** + +Voici un résumé des étapes (étape 1 à étape 15) de la procédure **Creating Bullets** ci‑dessous : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Accédez à la diapositive souhaitée dans la collection de diapositives à l’aide de l’objet [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +3. Ajoutez une [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) dans la diapositive sélectionnée. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) de la forme ajoutée. +5. Supprimez le paragraphe par défaut dans le TextFrame. +6. Créez la première instance de paragraphe à l’aide de la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph). +7. Définissez le type de puce du paragraphe. +8. Définissez le type de puce sur [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) et définissez le caractère de puce. +9. Définissez le texte du paragraphe. +10. Définissez l’indentation du paragraphe pour positionner la puce. +11. Définissez la couleur de la puce. +12. Définissez la hauteur des puces. +13. Ajoutez le paragraphe créé dans la collection de paragraphes du TextFrame. +14. Ajoutez le deuxième paragraphe et répétez le processus décrit aux étapes **7 à 13**. +15. Enregistrez la présentation. + +```javascript +// Instancier une classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter et accéder à l'AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accéder au cadre texte de l'auto‑shape créé + var txtFrm = aShp.getTextFrame(); + // Supprimer le paragraphe par défaut existant + txtFrm.getParagraphs().removeAt(0); + // Créer un paragraphe + var para = new aspose.slides.Paragraph(); + // Définir le style de puce du paragraphe et le symbole + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Définir le texte du paragraphe + para.setText("Welcome to Aspose.Slides"); + // Définir l'indentation de la puce + para.getParagraphFormat().setIndent(25); + // Définir la couleur de la puce + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // définir IsBulletHardColor à true pour utiliser une couleur de puce personnalisée + para.getParagraphFormat().getBullet().isBulletHardColor(); + // Définir la hauteur de la puce + para.getParagraphFormat().getBullet().setHeight(100); + // Ajouter le paragraphe au cadre texte + txtFrm.getParagraphs().add(para); + // enregistrer la présentation en fichier PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +## **Création de puces** + +Ce sujet fait également partie de la série sur la gestion des paragraphes de texte. Cette page illustre comment gérer les puces de paragraphe. Les puces sont particulièrement utiles lorsqu’un élément doit être décrit étape par étape. De plus, le texte apparaît bien organisé grâce à l’utilisation de puces. Les paragraphes à puces sont toujours plus faciles à lire et à comprendre. Nous verrons comment les développeurs peuvent exploiter cette fonctionnalité petite mais puissante d’Aspose.Slides for Node.js via Java. Veuillez suivre les étapes ci‑dessus pour gérer les puces de paragraphe avec Aspose.Slides for Node.js via Java : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accédez à la diapositive souhaitée dans la collection de diapositives à l’aide de l’objet [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Ajoutez une [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) dans la diapositive sélectionnée. +1. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) de la forme ajoutée. +1. Supprimez le paragraphe par défaut dans le TextFrame. +1. Créez la première instance de paragraphe à l’aide de la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph). +1. Définissez le type de puce du paragraphe. +1. Définissez le type de puce sur [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) et définissez le caractère de puce. +1. Définissez le texte du paragraphe. +1. Définissez l’indentation du paragraphe pour positionner la puce. +1. Définissez la couleur de la puce. +1. Définissez la hauteur des puces. +1. Ajoutez le paragraphe créé dans la collection de paragraphes du TextFrame. +1. Ajoutez le deuxième paragraphe et répétez le processus décrit aux étapes **7 à 13**. +1. Enregistrez la présentation. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Instancier l'image pour les puces + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Ajouter et accéder à l'Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accéder au cadre texte de l'autoshape créé + var txtFrm = aShp.getTextFrame(); + // Supprimer le paragraphe existant par défaut + txtFrm.getParagraphs().removeAt(0); + // Créer un nouveau paragraphe + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // Définir le style de puce du paragraphe et l'image + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Définir la hauteur de la puce + para.getParagraphFormat().getBullet().setHeight(100); + // Ajouter le paragraphe au cadre texte + txtFrm.getParagraphs().add(para); + // Enregistrer la présentation en fichier PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Création de puces d’image** + +Aspose.Slides for Node.js via Java vous permet de modifier les puces des listes à puces. Vous pouvez remplacer les puces par des symboles ou des images personnalisés. Si vous souhaitez ajouter un intérêt visuel à une liste ou attirer davantage l’attention sur les éléments d’une liste, vous pouvez utiliser votre propre image comme puce. + +{{% alert color="primary" %}} + +Idéalement, si vous prévoyez de remplacer le symbole de puce standard par une image, il est conseillé de choisir une image graphique simple avec un fond transparent. De telles images fonctionnent le mieux comme symboles de puce personnalisés. + +Dans tous les cas, l’image que vous choisissez sera réduite à une très petite taille, nous vous recommandons donc fortement de sélectionner une image qui rend bien (comme remplacement du symbole de puce) dans une liste. + +{{% /alert %}} + +Pour créer une puce image, suivez ces étapes : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accédez à la diapositive souhaitée dans la collection de diapositives à l’aide de l’objet [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Ajoutez une autoshape dans la diapositive sélectionnée. +1. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) de la forme ajoutée. +1. Supprimez le paragraphe par défaut dans le [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Créez la première instance de paragraphe à l’aide de la classe Paragraph. +1. Chargez une image depuis le disque dans [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage). +1. Définissez le type de puce sur Picture et définissez l’image. +1. Définissez le texte du paragraphe. +1. Définissez l’indentation du paragraphe pour positionner la puce. +1. Définissez la couleur de la puce. +1. Définissez la hauteur des puces. +1. Ajoutez le paragraphe créé dans la collection de paragraphes du [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Ajoutez le deuxième paragraphe et répétez le processus décrit aux étapes précédentes. +1. Enregistrez la présentation. + +```javascript +// Instancier une classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter et accéder à l'AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accéder au cadre texte de l'autoshape créé + var txtFrm = aShp.addTextFrame(""); + // Supprimer le paragraphe par défaut existant + txtFrm.getParagraphs().clear(); + // Créer le premier paragraphe + var para1 = new aspose.slides.Paragraph(); + // Définir le style de puce du paragraphe et le symbole + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définir le niveau de la puce + para1.getParagraphFormat().setDepth(0); + // Créer le deuxième paragraphe + var para2 = new aspose.slides.Paragraph(); + // Définir le style de puce du paragraphe et le symbole + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définir le niveau de la puce + para2.getParagraphFormat().setDepth(1); + // Créer le troisième paragraphe + var para3 = new aspose.slides.Paragraph(); + // Définir le style de puce du paragraphe et le symbole + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définir le niveau de la puce + para3.getParagraphFormat().setDepth(2); + // Créer le quatrième paragraphe + var para4 = new aspose.slides.Paragraph(); + // Définir le style de puce du paragraphe et le symbole + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définir le niveau de la puce + para4.getParagraphFormat().setDepth(3); + // Ajouter le paragraphe au cadre texte + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // enregistrer la présentation en fichier PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Création de puces à plusieurs niveaux** + +Pour créer une liste à puces contenant des éléments à différents niveaux—des listes supplémentaires sous la liste principale—suivez ces étapes : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accédez à la diapositive souhaitée dans la collection de diapositives à l’aide de l’objet [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Ajoutez une autoshape dans la diapositive sélectionnée. +1. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) de la forme ajoutée. +1. Supprimez le paragraphe par défaut dans le [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Créez la première instance de paragraphe à l’aide de la classe Paragraph avec une profondeur de 0. +1. Créez la deuxième instance de paragraphe à l’aide de la classe Paragraph avec une profondeur de 1. +1. Créez la troisième instance de paragraphe à l’aide de la classe Paragraph avec une profondeur de 2. +1. Créez la quatrième instance de paragraphe à l’aide de la classe Paragraph avec une profondeur de 3. +1. Ajoutez les paragraphes créés dans la collection de paragraphes du [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Enregistrez la présentation. + +```javascript +// Instancier une classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter et accéder à l'AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accéder au cadre texte de l'auto‑shape créé + var txtFrm = aShp.addTextFrame(""); + // Supprimer le paragraphe par défaut existant + txtFrm.getParagraphs().clear(); + // Première liste + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // Deuxième liste + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Créer une liste numérotée personnalisée** + +Aspose.Slides for Node.js via Java fournit une API simple pour gérer les paragraphes avec un format de numérotation personnalisé. Pour ajouter une liste numérotée personnalisée dans un paragraphe, suivez les étapes ci‑dessous : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Accédez à la diapositive souhaitée dans la collection de diapositives à l’aide de l’objet [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Ajoutez une autoshape dans la diapositive sélectionnée. +1. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) de la forme ajoutée. +1. Supprimez le paragraphe par défaut dans le [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Créez la première instance de paragraphe à l’aide de la classe Paragraph et définissez **NumberedBulletStartWith** à 2. +1. Créez la deuxième instance de paragraphe à l’aide de la classe Paragraph et définissez **NumberedBulletStartWith** à 3. +1. Créez la troisième instance de paragraphe à l’aide de la classe Paragraph et définissez **NumberedBulletStartWith** à 7. +1. Ajoutez les paragraphes créés dans la collection de paragraphes du [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Enregistrez la présentation. + +## **FAQ** + +**Les listes à puces et numérotées créées avec Aspose.Slides peuvent-elles être exportées vers d’autres formats tels que PDF ou images ?** + +Oui, Aspose.Slides préserve entièrement le formatage et la structure des listes à puces et numérotées lors de l’exportation des présentations vers des formats tels que PDF, images, etc., garantissant des résultats cohérents. + +**Est‑il possible d’importer des listes à puces ou numérotées à partir de présentations existantes ?** + +Oui, Aspose.Slides vous permet d’importer et de modifier les listes à puces ou numérotées à partir de présentations existantes tout en conservant leur formatage et leur apparence d’origine. + +**Aspose.Slides prend‑il en charge les listes à puces et numérotées dans des présentations créées en plusieurs langues ?** + +Oui, Aspose.Slides prend pleinement en charge les présentations multilingues, vous permettant de créer des listes à puces et numérotées dans n’importe quelle langue, y compris l’utilisation de caractères spéciaux ou non latins. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..be5f3ec62e --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,716 @@ +--- +title: Gérer les paragraphes PowerPoint en JavaScript +type: docs +weight: 40 +url: /fr/nodejs-java/manage-paragraph/ +keywords: +- ajouter du texte +- ajouter des paragraphes +- gérer le texte +- gérer les paragraphes +- indentation du paragraphe +- puce de paragraphe +- liste numérotée +- propriétés du paragraphe +- importer du HTML +- texte vers HTML +- paragraphe vers HTML +- paragraphes en images +- exporter les paragraphes +- présentation PowerPoint +- JavaScript +- Aspose.Slides pour Node.js via Java +description: "Créer des paragraphes et gérer les propriétés des paragraphes dans les présentations PowerPoint en JavaScript" +--- + +Aspose.Slides fournit toutes les classes dont vous avez besoin pour travailler avec les textes, les paragraphes et les portions PowerPoint en Java. + +* Aspose.Slides fournit la classe [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) permettant d’ajouter des objets représentant un paragraphe. Un objet `ITextFame` peut contenir un ou plusieurs paragraphes (chaque paragraphe est créé par un retour chariot). +* Aspose.Slides fournit la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) permettant d’ajouter des objets représentant des portions. Un objet `IParagraph` peut contenir une ou plusieurs portions (collection d’objets iPortions). +* Aspose.Slides fournit la classe [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) permettant d’ajouter des objets représentant des textes et leurs propriétés de mise en forme. + +Un objet `IParagraph` peut gérer des textes avec différentes propriétés de mise en forme grâce à ses objets sous-jacents `IPortion`. + +## **Ajouter plusieurs paragraphes contenant plusieurs portions** + +Ces étapes montrent comment ajouter un cadre de texte contenant 3 paragraphes, chaque paragraphe contenant 3 portions : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la référence de la diapositive concernée via son indice. +3. Ajoutez une forme rectangulaire [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive. +4. Récupérez le ITextFrame associé à l’[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/). +5. Créez deux objets [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) et ajoutez-les à la collection `IParagraphs` du [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +6. Créez trois objets [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) pour chaque nouveau `IParagraph` (deux objets Portion pour le paragraphe par défaut) et ajoutez chaque objet `IPortion` à la collection IPortion de chaque `IParagraph`. +7. Définissez un texte pour chaque portion. +8. Appliquez vos fonctionnalités de mise en forme préférées à chaque portion en utilisant les propriétés de formatage exposées par l’objet `IPortion`. +9. Enregistrez la présentation modifiée. + +Ce code Javascript est une implémentation des étapes pour ajouter des paragraphes contenant des portions : +```javascript +// Instancier une classe Presentation qui représente un fichier PPTX + // Accéder à la première diapositive + // Ajouter une AutoShape de type Rectangle + // Accéder au TextFrame de l'AutoShape + // Créer des Paragraphs et Portions avec différents formats de texte + var pres = new aspose.slides.Presentation(); + try { + // Accessing first slide + var slide = pres.getSlides().get_Item(0); + // Add an AutoShape of Rectangle type + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // Access TextFrame of the AutoShape + var tf = ashp.getTextFrame(); + // Create Paragraphs and Portions with different text formats + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // Enregistrer le PPTX sur le disque + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **Gérer les puces de paragraphe** + +Les listes à puces vous aident à organiser et présenter les informations rapidement et efficacement. Les paragraphes à puces sont toujours plus faciles à lire et à comprendre. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la référence de la diapositive concernée via son indice. +3. Ajoutez une [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive sélectionnée. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de l’autoshape. +5. Supprimez le paragraphe par défaut dans le `TextFrame`. +6. Créez la première instance de paragraphe en utilisant la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Définissez le `Type` de puce du paragraphe sur `Symbol` et spécifiez le caractère de puce. +8. Définissez le `Text` du paragraphe. +9. Définissez le `Indent` du paragraphe pour la puce. +10. Définissez une couleur pour la puce. +11. Définissez une hauteur pour la puce. +12. Ajoutez le nouveau paragraphe à la collection de paragraphes du `TextFrame`. +13. Ajoutez le deuxième paragraphe et répétez le processus décrit aux étapes 7 à 13. +14. Enregistrez la présentation. + +Ce code Javascript montre comment ajouter une puce de paragraphe : +```javascript +// Instancie une classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accède à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajoute et accède à l'AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accède au cadre de texte (TextFrame) de l'AutoShape + var txtFrm = aShp.getTextFrame(); + // Supprime le paragraphe par défaut + txtFrm.getParagraphs().removeAt(0); + // Crée un paragraphe + var para = new aspose.slides.Paragraph(); + // Définit le style de puce du paragraphe et le symbole + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Définit le texte du paragraphe + para.setText("Welcome to Aspose.Slides"); + // Définit l'indentation de la puce + para.getParagraphFormat().setIndent(25); + // Définit la couleur de la puce + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// définit IsBulletHardColor à true pour utiliser une couleur de puce personnalisée + // Définit la hauteur de la puce + para.getParagraphFormat().getBullet().setHeight(100); + // Ajoute le paragraphe au cadre de texte + txtFrm.getParagraphs().add(para); + // Crée le deuxième paragraphe + var para2 = new aspose.slides.Paragraph(); + // Définit le type et le style de puce du paragraphe + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // Ajoute le texte du paragraphe + para2.setText("This is numbered bullet"); + // Définit l'indentation de la puce + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// définit IsBulletHardColor à true pour utiliser une couleur de puce personnalisée + // Définit la hauteur de la puce + para2.getParagraphFormat().getBullet().setHeight(100); + // Ajoute le paragraphe au cadre de texte + txtFrm.getParagraphs().add(para2); + // Enregistre la présentation modifiée + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Gérer les puces d'image** + +Les listes à puces vous aident à organiser et présenter les informations rapidement et efficacement. Les paragraphes d’images sont faciles à lire et à comprendre. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la référence de la diapositive concernée via son indice. +3. Ajoutez une [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de l’autoshape. +5. Supprimez le paragraphe par défaut dans le `TextFrame`. +6. Créez la première instance de paragraphe en utilisant la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Chargez l’image dans [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/). +8. Définissez le type de puce sur [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) et définissez l’image. +9. Définissez le `Text` du paragraphe. +10. Définissez le `Indent` du paragraphe pour la puce. +11. Définissez une couleur pour la puce. +12. Définissez une hauteur pour la puce. +13. Ajoutez le nouveau paragraphe à la collection de paragraphes du `TextFrame`. +14. Ajoutez le deuxième paragraphe et répétez le processus basé sur les étapes précédentes. +15. Enregistrez la présentation modifiée. + +Ce code Javascript montre comment ajouter et gérer les puces d’image : +```javascript +// Instancie une classe Presentation qui représente un fichier PPTX +var presentation = new aspose.slides.Presentation(); +try { + // Accède à la première diapositive + var slide = presentation.getSlides().get_Item(0); + // Instancie l'image pour les puces + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Ajoute et accède à l'AutoShape + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accède au TextFrame de l'AutoShape + var textFrame = autoShape.getTextFrame(); + // Supprime le paragraphe par défaut + textFrame.getParagraphs().removeAt(0); + // Crée un nouveau paragraphe + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // Définit le style de puce du paragraphe et l'image + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Définit la hauteur de la puce + paragraph.getParagraphFormat().getBullet().setHeight(100); + // Ajoute le paragraphe au TextFrame + textFrame.getParagraphs().add(paragraph); + // Enregistre la présentation au format PPTX + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // Enregistre la présentation au format PPT + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Gérer les puces à plusieurs niveaux** + +Les listes à puces vous aident à organiser et présenter les informations rapidement et efficacement. Les puces à plusieurs niveaux sont faciles à lire et à comprendre. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la référence de la diapositive concernée via son indice. +3. Ajoutez une [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) dans la nouvelle diapositive. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de l’autoshape. +5. Supprimez le paragraphe par défaut dans le `TextFrame`. +6. Créez la première instance de paragraphe via la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) et définissez la profondeur à 0. +7. Créez la deuxième instance de paragraphe via la classe `Paragraph` et définissez la profondeur à 1. +8. Créez la troisième instance de paragraphe via la classe `Paragraph` et définissez la profondeur à 2. +9. Créez la quatrième instance de paragraphe via la classe `Paragraph` et définissez la profondeur à 3. +10. Ajoutez les nouveaux paragraphes à la collection de paragraphes du `TextFrame`. +11. Enregistrez la présentation modifiée. + +Ce code Javascript montre comment ajouter et gérer les puces à plusieurs niveaux : +```javascript +// Instancie une classe Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation(); +try { + // Accède à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajoute et accède à l'AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accède au cadre de texte de l'AutoShape créé + var text = aShp.addTextFrame(""); + // Efface le paragraphe par défaut + text.getParagraphs().clear(); + // Ajoute le premier paragraphe + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définit le niveau de puce + para1.getParagraphFormat().setDepth(0); + // Ajoute le deuxième paragraphe + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définit le niveau de puce + para2.getParagraphFormat().setDepth(1); + // Ajoute le troisième paragraphe + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définit le niveau de puce + para3.getParagraphFormat().setDepth(2); + // Ajoute le quatrième paragraphe + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Définit le niveau de puce + para4.getParagraphFormat().setDepth(3); + // Ajoute les paragraphes à la collection + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // Enregistre la présentation au format PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Gérer les paragraphes avec une liste numérotée personnalisée** + +La classe [BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) fournit la propriété [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) et d’autres qui permettent de gérer les paragraphes avec une numérotation ou un formatage personnalisés. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la diapositive contenant le paragraphe. +3. Ajoutez une [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de l’autoshape. +5. Supprimez le paragraphe par défaut dans le `TextFrame`. +6. Créez la première instance de paragraphe via la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) et définissez [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) à 2. +7. Créez la deuxième instance de paragraphe via la classe `Paragraph` et définissez `NumberedBulletStartWith` à 3. +8. Créez la troisième instance de paragraphe via la classe `Paragraph` et définissez `NumberedBulletStartWith` à 7. +9. Ajoutez les nouveaux paragraphes à la collection de paragraphes du `TextFrame`. +10. Enregistrez la présentation modifiée. + +Ce code Javascript montre comment ajouter et gérer des paragraphes avec une numérotation ou un formatage personnalisés : +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Accède au cadre de texte de l'autoforme créée + var textFrame = shape.getTextFrame(); + // Supprime le paragraphe existant par défaut + textFrame.getParagraphs().removeAt(0); + // Première liste + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Définir l'indentation du paragraphe** + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la référence de la diapositive concernée via son indice. +3. Ajoutez une forme rectangulaire [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive. +4. Ajoutez un [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) contenant trois paragraphes à la forme rectangulaire. +5. Masquez les lignes de la forme. +6. Définissez l'indentation pour chaque [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) via leur propriété BulletOffset. +7. Enregistrez la présentation modifiée au format PPT. + +Ce code Javascript montre comment définir l'indentation d’un paragraphe : +```javascript +// Instancie la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive + var sld = pres.getSlides().get_Item(0); + // Ajoute une forme Rectangle + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // Ajoute un TextFrame au rectangle + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // Définit le texte pour qu'il s'ajuste à la forme + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Masque les lignes du rectangle + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // Obtient le premier paragraphe du TextFrame et définit son retrait + var para1 = tf.getParagraphs().get_Item(0); + // Définit le style de puce du paragraphe et le symbole + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // Obtient le deuxième paragraphe du TextFrame et définit son retrait + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // Obtient le troisième paragraphe du TextFrame et définit son retrait + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // Enregistre la présentation sur le disque + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir une indentation suspendue pour le paragraphe** + +Ce code Javascript montre comment définir l'indentation suspendue pour un paragraphe : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Gérer les propriétés de fin de run de paragraphe** + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Obtenez la référence de la diapositive contenant le paragraphe via sa position. +3. Ajoutez une forme rectangulaire [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive. +4. Ajoutez un [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) contenant deux paragraphes au rectangle. +5. Définissez le `FontHeight` et le type de police pour les paragraphes. +6. Définissez les propriétés End pour les paragraphes. +7. Enregistrez la présentation modifiée au format PPTX. + +Ce code Javascript montre comment définir les propriétés End pour les paragraphes dans PowerPoint : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Importer du texte HTML dans les paragraphes** + +Aspose.Slides offre une prise en charge améliorée de l’importation de texte HTML dans les paragraphes. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Accédez à la référence de la diapositive concernée via son indice. +3. Ajoutez une [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) à la diapositive. +4. Ajoutez et accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de l’`autoshape`. +5. Supprimez le paragraphe par défaut dans le `ITextFrame`. +6. Lisez le fichier HTML source avec un TextReader. +7. Créez la première instance de paragraphe via la classe [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +8. Ajoutez le contenu du fichier HTML lu par le TextReader à la [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/) du TextFrame. +9. Enregistrez la présentation modifiée. + +Ce code Javascript implémente les étapes d’importation de textes HTML dans les paragraphes : +```javascript +// Créer une instance de présentation vide +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive par défaut de la présentation + var slide = pres.getSlides().get_Item(0); + // Ajouter l'AutoShape pour accueillir le contenu HTML + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Ajouter un cadre de texte à la forme + ashape.addTextFrame(""); + // Effacer tous les paragraphes du cadre de texte ajouté + ashape.getTextFrame().getParagraphs().clear(); + // Charger le fichier HTML à l'aide d'un lecteur de flux + var tr = java.newInstanceSync("StreamReader", "file.html"); + // Ajouter le texte du lecteur de flux HTML dans le cadre de texte + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // Enregistrer la présentation + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Exporter le texte des paragraphes vers HTML** + +Aspose.Slides offre une prise en charge améliorée de l’exportation de textes (contenus dans les paragraphes) vers HTML. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) et chargez la présentation souhaitée. +2. Accédez à la référence de la diapositive concernée via son indice. +3. Accédez à la forme contenant le texte qui sera exporté vers HTML. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) de la forme. +5. Créez une instance de `StreamWriter` et ajoutez le nouveau fichier HTML. +6. Fournissez un indice de départ à StreamWriter et exportez les paragraphes souhaités. + +Ce code Javascript montre comment exporter les textes de paragraphes PowerPoint vers HTML : +```javascript +// Charger le fichier de présentation +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // Accéder à la première diapositive par défaut de la présentation + var slide = pres.getSlides().get_Item(0); + // Index souhaité + var index = 0; + // Accéder à la forme ajoutée + var ashape = slide.getShapes().get_Item(index); + // Créer le fichier HTML de sortie + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // Extraire le premier paragraphe en HTML + // Écrire les données des paragraphes en HTML en indiquant l’index de départ du paragraphe et le nombre total de paragraphes à copier + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Enregistrer un paragraphe sous forme d’image** + +Dans cette section, nous explorerons deux exemples illustrant comment enregistrer un paragraphe de texte, représenté par l’interface [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/), sous forme d’image. Les deux exemples comprennent l’obtention de l’image d’une forme contenant le paragraphe à l’aide des méthodes `getImage` de l’interface [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/), le calcul des limites du paragraphe au sein de la forme, puis l’exportation sous forme d’image bitmap. Ces approches permettent d’extraire des parties spécifiques du texte d’une présentation PowerPoint et de les enregistrer comme images séparées, ce qui peut être utile dans divers scénarios. + +Supposons que nous ayons un fichier de présentation nommé sample.pptx avec une diapositive, où la première forme est une zone de texte contenant trois paragraphes. + +![La zone de texte avec trois paragraphes](paragraph_to_image_input.png) + +**Exemple 1** + +Dans cet exemple, nous obtenons le deuxième paragraphe sous forme d’image. Pour ce faire, nous extrayons l’image de la forme de la première diapositive de la présentation, puis calculons les limites du deuxième paragraphe dans le cadre de texte de la forme. Le paragraphe est ensuite redessiné sur une nouvelle image bitmap, qui est enregistrée au format PNG. Cette méthode est particulièrement utile lorsqu’il faut enregistrer un paragraphe spécifique comme image séparée tout en conservant les dimensions et le formatage exacts du texte. + +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Enregistrer la forme en mémoire sous forme de bitmap. + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // Créer un bitmap de forme à partir de la mémoire. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Calculer les limites du deuxième paragraphe. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // Calculer les coordonnées et la taille de l'image de sortie (taille minimale - 1x1 pixel). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Recadrer le bitmap de la forme pour obtenir uniquement le bitmap du paragraphe. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Le résultat : + +![L’image du paragraphe](paragraph_to_image_output.png) + +**Exemple 2** + +Dans cet exemple, nous étendons l’approche précédente en ajoutant des facteurs d’échelle à l’image du paragraphe. La forme est extraite de la présentation et enregistrée comme image avec un facteur d’échelle de `2`. Cela permet d’obtenir une sortie à plus haute résolution lors de l’exportation du paragraphe. Les limites du paragraphe sont alors calculées en tenant compte de l’échelle. Le redimensionnement peut être particulièrement utile lorsqu’une image plus détaillée est nécessaire, par exemple pour une utilisation dans des supports imprimés de haute qualité. + +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Enregistrer la forme en mémoire sous forme de bitmap avec mise à l'échelle. + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // Créer un bitmap de forme à partir de la mémoire. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Calculer les limites du deuxième paragraphe. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // Calculer les coordonnées et la taille de l'image de sortie (taille minimale - 1x1 pixel). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Recadrer le bitmap de la forme pour obtenir uniquement le bitmap du paragraphe. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je désactiver complètement le retour à la ligne à l’intérieur d’un TextFrame ?** + +Oui. Utilisez le paramètre d’enveloppe du TextFrame ([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/)) pour désactiver le retour à la ligne afin que les lignes ne se rompraient pas aux bords du cadre. + +**Comment obtenir les limites exactes sur la diapositive d’un paragraphe spécifique ?** + +Vous pouvez récupérer le rectangle englobant du paragraphe (et même d’une seule portion) pour connaître sa position précise et sa taille sur la diapositive. + +**Où le réglage d’alignement du paragraphe (gauche/droite/centré/justifié) est‑il contrôlé ?** + +[setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/) est une méthode de réglage au niveau du paragraphe dans [ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/); elle s’applique à l’ensemble du paragraphe, quel que soit le formatage des portions individuelles. + +**Puis‑je définir une langue de vérification orthographique pour une partie seulement d’un paragraphe (par ex., un mot) ?** + +Oui. La langue est définie au niveau de la portion ([PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)), ainsi plusieurs langues peuvent coexister dans un même paragraphe. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..59a153cb11 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,116 @@ +--- +title: Gérer l'espace réservé +type: docs +weight: 10 +url: /fr/nodejs-java/manage-placeholder/ +description: Modifier le texte dans un espace réservé dans les diapositives PowerPoint en utilisant JavaScript. Définir le texte d'invite dans un espace réservé dans les diapositives PowerPoint en utilisant JavaScript. +--- + +## **Modifier le texte dans un espace réservé** + +En utilisant [Aspose.Slides for Node.js via Java](/slides/fr/nodejs-java/), vous pouvez rechercher et modifier les espaces réservés sur les diapositives des présentations. Aspose.Slides vous permet de modifier le texte d’un espace réservé. + +**Pré-requis**: Vous avez besoin d’une présentation contenant un espace réservé. Vous pouvez créer une telle présentation avec l'application Microsoft PowerPoint standard. + +Voici comment utiliser Aspose.Slides pour remplacer le texte dans l’espace réservé de cette présentation : + +1. Instanciez la classe [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) et transmettez la présentation en argument. +2. Obtenez une référence de diapositive via son index. +3. Parcourez les formes pour trouver l’espace réservé. +4. Convertissez le type de la forme d’espace réservé en [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) et modifiez le texte à l'aide du [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) associé à l'[`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Enregistrez la présentation modifiée. + +Ce code JavaScript montre comment modifier le texte dans un espace réservé : +```javascript +// Instancie une classe Presentation +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // Accède à la première diapositive + var sld = pres.getSlides().get_Item(0); + // Itère sur les formes pour trouver l'espace réservé + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // Modifie le texte de chaque espace réservé + shp.getTextFrame().setText("This is Placeholder"); + } + } + // Enregistre la présentation sur le disque + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir le texte d’invite dans un espace réservé** + +Les mises en page standard et prêtes à l’emploi contiennent des textes d’invite d’espace réservé tels que ***Cliquez pour ajouter un titre*** ou ***Cliquez pour ajouter un sous-titre***. En utilisant Aspose.Slides, vous pouvez insérer vos propres textes d’invite dans les mises en page d'espace réservé. + +Ce code JavaScript vous montre comment définir le texte d’invite dans un espace réservé : +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // Parcourt la diapositive + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // PowerPoint affiche "Click to add title" + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // Ajoute le sous-titre + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la transparence de l’image d’espace réservé** + +Aspose.Slides vous permet de définir la transparence de l’image d’arrière-plan dans un espace réservé de texte. En ajustant la transparence de l’image dans ce cadre, vous pouvez faire ressortir le texte ou l’image (selon les couleurs du texte et de l’image). + +Ce code JavaScript vous montre comment définir la transparence d’un arrière-plan d’image (à l’intérieur d’une forme) : +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **FAQ** + +**Qu’est‑ce qu’un espace réservé de base, et en quoi diffère‑t‑il d’une forme locale sur une diapositive ?** + +Un espace réservé de base est la forme originale sur une mise en page ou un maître dont la forme de la diapositive hérite -- le type, la position et certains formats en proviennent. Une forme locale est indépendante ; s'il n'existe pas d'espace réservé de base, l'héritage ne s'applique pas. + +**Comment puis‑je mettre à jour tous les titres ou légendes d’une présentation sans parcourir chaque diapositive ?** + +Modifiez l'espace réservé correspondant sur la mise en page ou le maître. Les diapositives basées sur ces mises en page ou ce maître hériteront automatiquement du changement. + +**Comment contrôler les espaces réservés d'en‑tête/pied de page standard -- date & heure, numéro de diapositive et texte du pied de page ?** + +Utilisez les gestionnaires HeaderFooter au niveau approprié (diapositives normales, mises en page, maître, notes / supports) pour activer ou désactiver ces espaces réservés et définir leur contenu. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..d95472a6f3 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,294 @@ +--- +title: Gérer une zone de texte +type: docs +weight: 20 +url: /fr/nodejs-java/manage-textbox/ +keywords: +- zone de texte +- cadre de texte +- ajouter du texte +- mettre à jour le texte +- zone de texte avec un hyperlien +- PowerPoint +- présentation +- Node.js +- JavaScript +- Aspose.Slides pour Node.js via Java +description: "Gérer une zone de texte ou un cadre de texte dans des présentations PowerPoint en utilisant JavaScript" +--- + +Les textes sur les diapositives se trouvent généralement dans des zones de texte ou des formes. Par conséquent, pour ajouter du texte à une diapositive, vous devez ajouter une zone de texte puis y mettre du texte. Aspose.Slides pour Node.js via Java fournit la classe [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) qui vous permet d’ajouter une forme contenant du texte. + +{{% alert title="Info" color="info" %}} +Aspose.Slides fournit également la classe [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape) qui vous permet d’ajouter des formes aux diapositives. Cependant, toutes les formes ajoutées via la classe `Shape` ne peuvent pas contenir du texte. En revanche, les formes ajoutées via la classe [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) peuvent contenir du texte. +{{% /alert %}} + +{{% alert title="Remarque" color="warning" %}} +Par conséquent, lorsque vous traitez une forme à laquelle vous souhaitez ajouter du texte, vous devez vérifier et vous assurer qu’elle a été castée via la classe `AutoShape`. Ce n’est qu’à ce moment que vous pourrez travailler avec le [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), qui est une propriété de `AutoShape`. Consultez la section [Mettre à jour le texte](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text) sur cette page. +{{% /alert %}} + +## **Créer une zone de texte sur une diapositive** + +Pour créer une zone de texte sur une diapositive, suivez ces étapes : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez une référence à la première diapositive de la présentation nouvellement créée. +3. Ajoutez un objet [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) avec [ShapeType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GeometryShape#setShapeType-int-) défini sur `Rectangle` à une position spécifiée sur la diapositive et obtenez la référence de l’objet `AutoShape` nouvellement ajouté. +4. Ajoutez une propriété `TextFrame` à l’objet `AutoShape` qui contiendra du texte. Dans l’exemple ci‑dessous, nous avons ajouté ce texte : *Aspose TextBox* +5. Enfin, écrivez le fichier PPTX via l’objet `Presentation`. + +Ce code JavaScript—une implémentation des étapes ci‑dessus—vous montre comment ajouter du texte à une diapositive : +```javascript +// Instancie la présentation +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive de la présentation + var sld = pres.getSlides().get_Item(0); + // Ajoute une AutoShape avec le type Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Ajoute un TextFrame au rectangle + ashp.addTextFrame(" "); + // Accède au cadre de texte + var txtFrame = ashp.getTextFrame(); + // Crée l'objet Paragraph pour le cadre de texte + var para = txtFrame.getParagraphs().get_Item(0); + // Crée un objet Portion pour le paragraphe + var portion = para.getPortions().get_Item(0); + // Définit le texte + portion.setText("Aspose TextBox"); + // Enregistre la présentation sur le disque + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Vérifier la forme de zone de texte** + +Aspose.Slides fournit la méthode [isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox) de la classe [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) qui vous permet d’examiner les formes et d’identifier les zones de texte. + +![Zone de texte et forme](istextbox.png) + +Ce code JavaScript vous montre comment vérifier si une forme a été créée en tant que zone de texte : +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +Notez que si vous ajoutez simplement une autoshape en utilisant la méthode `addAutoShape` de la classe [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/), la méthode `isTextBox` de l’autoshape renverra `false`. En revanche, après avoir ajouté du texte à l’autoshape avec la méthode `addTextFrame` ou la méthode `setText`, la propriété `isTextBox` renverra `true`. +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() renvoie false +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() renvoie true + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() renvoie false +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() renvoie true + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() renvoie false +shape3.addTextFrame(""); +// shape3.isTextBox() renvoie false + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() renvoie false +shape4.getTextFrame().setText(""); +// shape4.isTextBox() renvoie false +``` + + +## **Ajouter une colonne dans une zone de texte** + +Aspose.Slides fournit les méthodes [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) et [setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-) de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) qui vous permettent d’ajouter des colonnes aux zones de texte. Vous pouvez spécifier le nombre de colonnes dans une zone de texte et définir l’espacement, en points, entre les colonnes. + +Ce code en JavaScript illustre l’opération décrite : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive de la présentation + var slide = pres.getSlides().get_Item(0); + // Ajoute une AutoShape avec le type Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Ajoute un TextFrame au Rectangle + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // Obtient le format de texte du TextFrame + var format = aShape.getTextFrame().getTextFrameFormat(); + // Spécifie le nombre de colonnes dans le TextFrame + format.setColumnCount(3); + // Spécifie l'espacement entre les colonnes + format.setColumnSpacing(10); + // Enregistre la présentation + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajouter une colonne dans un cadre de texte** + +Aspose.Slides pour Node.js via Java fournit la méthode [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) de la classe [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) qui vous permet d’ajouter des colonnes dans des cadres de texte. Grâce à cette propriété, vous pouvez spécifier le nombre de colonnes souhaité dans un cadre de texte. + +Ce code JavaScript vous montre comment ajouter une colonne à l’intérieur d’un cadre de texte : +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Mettre à jour le texte** + +Aspose.Slides vous permet de modifier ou de mettre à jour le texte contenu dans une zone de texte ou l’ensemble des textes d’une présentation. + +Ce code JavaScript illustre une opération où tous les textes d’une présentation sont mis à jour ou modifiés : +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // Vérifie si la forme prend en charge le cadre de texte (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // Parcourt les paragraphes du cadre de texte + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // Parcourt chaque portion du paragraphe + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// Modifie le texte + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Modifie le formatage + } + } + } + } + } + // Enregistre la présentation modifiée + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajouter une zone de texte avec hyperlien** + +Vous pouvez insérer un lien dans une zone de texte. Lorsque la zone de texte est cliquée, les utilisateurs sont redirigés vers le lien. + +Pour ajouter une zone de texte contenant un lien, suivez ces étapes : + +1. Créez une instance de la classe `Presentation`. +2. Obtenez une référence à la première diapositive de la présentation nouvellement créée. +3. Ajoutez un objet `AutoShape` avec `ShapeType` défini sur `Rectangle` à une position spécifiée sur la diapositive et obtenez une référence de l’objet AutoShape nouvellement ajouté. +4. Ajoutez un `TextFrame` à l’objet `AutoShape` contenant *Aspose TextBox* comme texte par défaut. +5. Instanciez la classe `HyperlinkManager`. +6. Attribuez l’objet `HyperlinkManager` à la propriété [HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--) associée à la partie souhaitée du `TextFrame`. +7. Enfin, écrivez le fichier PPTX via l’objet `Presentation`. + +Ce code JavaScript—une implémentation des étapes ci‑dessus—vous montre comment ajouter une zone de texte avec un hyperlien à une diapositive : +```javascript +// Instancie une classe Presentation qui représente un PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtient la première diapositive de la présentation + var slide = pres.getSlides().get_Item(0); + // Ajoute un objet AutoShape avec le type Rectangle + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // Convertit la forme en AutoShape + var pptxAutoShape = shape; + // Accède à la propriété ITextFrame associée à l'AutoShape + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // Ajoute du texte au cadre + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // Définit le lien hypertexte pour le texte de la portion + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // Enregistre la présentation PPTX + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quelle est la différence entre une zone de texte et un espace réservé de texte lors de l’utilisation des diapositives maîtres ?** + +Un [espace réservé](/slides/fr/nodejs-java/manage-placeholder/) hérite du style/position du [maître](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/) et peut être remplacé sur les [mises en page](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/), tandis qu’une zone de texte ordinaire est un objet indépendant sur une diapositive spécifique et ne change pas lorsque vous changez de mise en page. + +**Comment effectuer un remplacement de texte en masse dans la présentation sans toucher au texte à l’intérieur des graphiques, des tableaux et de SmartArt ?** + +Limitez votre itération aux auto‑formes possédant des cadres de texte et excluez les objets incorporés ([charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), [tables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/), [SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/)) en parcourant leurs collections séparément ou en ignorant ces types d’objets. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..19b39d5e74 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: Localisation de la présentation +type: docs +weight: 100 +url: /fr/nodejs-java/presentation-localization/ +--- + +## **Modifier la langue pour le texte de la présentation et de la forme** + +- Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Obtenez la référence d'une diapositive en utilisant son index. +- Ajoutez une [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) de type [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) à la diapositive. +- Ajoutez du texte au TextFrame. +- Définissez l'Id de langue ([Setting Language Id](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setLanguageId-java.lang.String-)) du texte. +- Enregistrez la présentation au format PPTX. + +L'implémentation des étapes ci‑dessus est démontrée ci‑dessous dans un exemple. +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**L'ID de langue déclenche-t-il une traduction automatique du texte ?** + +Non. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) dans Aspose.Slides stocke la langue pour la vérification orthographique et grammaticale, mais il ne traduit pas et ne modifie pas le contenu du texte. Il s'agit de métadonnées que PowerPoint comprend pour la révision. + +**L'ID de langue affecte-t-il la césure et les sauts de ligne lors du rendu ?** + +Dans Aspose.Slides, [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) est destiné à la révision. La qualité de la césure et le retour à la ligne dépendent principalement de la disponibilité des [polices appropriées](/slides/fr/nodejs-java/powerpoint-fonts/) et des paramètres de mise en page/retour à la ligne du système d'écriture. Pour assurer un rendu correct, rendez les polices requises disponibles, configurez les [règles de substitution de polices](/slides/fr/nodejs-java/font-substitution/), et/ou [intégrez les polices](/slides/fr/nodejs-java/embedded-font/) dans la présentation. + +**Puis-je définir différentes langues au sein d'un même paragraphe ?** + +Oui. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) s'applique au niveau de la portion de texte, de sorte qu'un même paragraphe peut mélanger plusieurs langues avec des paramètres de révision distincts. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..83a7716427 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,86 @@ +--- +title: Exposant et indice +type: docs +weight: 80 +url: /fr/nodejs-java/superscript-and-subscript/ +--- + +## **Gérer le texte en exposant et indice** + +Vous pouvez ajouter du texte en exposant ou en indice à l'intérieur de n'importe quelle portion de paragraphe. Pour ajouter du texte en exposant ou en indice dans un cadre texte Aspose.Slides, il faut utiliser la méthode [**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) de la classe [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat). + +Cette propriété renvoie ou définit le texte en exposant ou en indice (valeur de -100 % (indice) à 100 % (exposant)). Par exemple : + +- Créer une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Obtenir la référence d'une diapositive en utilisant son index. +- Ajouter un [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) de type [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) à la diapositive. +- Accéder au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) associé à l'[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +- Effacer les paragraphes existants. +- Créer un nouvel objet paragraphe pour contenir le texte en exposant et l'ajouter à la collection [Paragraphs](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) du [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). +- Créer un nouvel objet portion. +- Définir la propriété Escapement pour la portion entre 0 et 100 afin d'ajouter un exposant. (0 signifie aucun exposant) +- Définir du texte pour la [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) puis l'ajouter à la collection de portions du paragraphe. +- Créer un nouvel objet paragraphe pour contenir le texte en indice et l'ajouter à la collection IParagraphs du ITextFrame. +- Créer un nouvel objet portion. +- Définir la propriété Escapement pour la portion entre 0 et -100 afin d'ajouter un indice. (0 signifie aucun indice) +- Définir du texte pour la [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) puis l'ajouter à la collection de portions du paragraphe. +- Enregistrer la présentation en tant que fichier PPTX. + +L'implémentation des étapes ci‑above est présentée ci‑dessous. +```javascript +// Instancier une classe Presentation qui représente un PPTX +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la diapositive + var slide = pres.getSlides().get_Item(0); + // Créer une zone de texte + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // Créer un paragraphe pour le texte en exposant + var superPar = new aspose.slides.Paragraph(); + // Créer une portion avec du texte normal + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // Créer une portion avec du texte en exposant + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // Créer un paragraphe pour le texte en indice + var paragraph2 = new aspose.slides.Paragraph(); + // Créer une portion avec du texte normal + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // Créer une portion avec du texte en indice + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // Ajouter les paragraphes à la zone de texte + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**L'exposant et l'indice seront-ils conservés lors de l'exportation vers PDF ou d'autres formats ?** + +Oui, Aspose.Slides conserve correctement le formatage en exposant et indice lors de l'exportation des présentations vers PDF, PPT/PPTX, images et autres formats pris en charge. Le formatage spécialisé reste intact dans tous les fichiers de sortie. + +**L'exposant et l'indice peuvent-ils être combinés avec d'autres styles de formatage tels que gras ou italique ?** + +Oui, Aspose.Slides vous permet de mélanger divers styles de texte au sein d'une même portion. Vous pouvez activer le gras, l'italique, le soulignement et appliquer simultanément l'exposant ou l'indice en configurant les propriétés correspondantes dans [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). + +**Le formatage en exposant et indice fonctionne-t-il pour le texte à l'intérieur des tableaux, graphiques ou SmartArt ?** + +Oui, Aspose.Slides prend en charge le formatage dans la plupart des objets, y compris les éléments de tableau et de graphique. Lors du travail avec SmartArt, vous devez accéder aux éléments appropriés (tels que [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/)) et à leurs conteneurs de texte, puis configurer les propriétés [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) de façon similaire. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..f46f95cd75 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,679 @@ +--- +title: Formater le texte PowerPoint en JavaScript +linktitle: Mise en forme du texte +type: docs +weight: 50 +url: /fr/nodejs-java/text-formatting/ +keywords: +- mise en surbrillance du texte +- expression régulière +- aligner le paragraphe +- style du texte +- arrière-plan du texte +- transparence du texte +- espacement des caractères +- propriétés de police +- famille de police +- rotation du texte +- angle de rotation +- cadre de texte +- interligne +- propriété autofit +- ancre du cadre de texte +- tabulation du texte +- langue par défaut +- PowerPoint +- OpenDocument +- présentation +- Node.js +- JavaScript +- Aspose.Slides +description: "Apprenez à mettre en forme et à styliser le texte dans les présentations PowerPoint et OpenDocument à l'aide d'Aspose.Slides pour Node.js via Java. Personnalisez les polices, les couleurs, l'alignement et bien plus encore grâce à des exemples de code JavaScript puissants." +--- + +## **Mettre en surbrillance le texte** + +La méthode [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-) a été ajoutée à la classe [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) et à la classe [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +Elle permet de mettre en surbrillance une partie du texte avec une couleur de fond à l'aide d'un exemple de texte, similaire à l'outil de couleur de surbrillance du texte dans PowerPoint 2019. + +L'extrait de code ci‑dessous montre comment utiliser cette fonctionnalité : +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// mise en évidence de tous les mots 'important' + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// mise en évidence de toutes les occurrences séparées de 'the' + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +Aspose propose un service simple, [gratuit d'édition en ligne de PowerPoint](https://products.aspose.app/slides/editor) + +{{% /alert %}} + +## **Mettre en surbrillance le texte à l'aide d'expressions régulières** + +La méthode [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-) a été ajoutée à la classe [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) et à la classe [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +Elle permet de mettre en surbrillance une partie du texte avec une couleur de fond à l'aide d'expressions régulières, similaire à l'outil de couleur de surbrillance du texte dans PowerPoint 2019. + +L'extrait de code ci‑dessous montre comment utiliser cette fonctionnalité : +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// mise en évidence de tous les mots de 10 caractères ou plus + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la couleur d'arrière‑plan du texte** + +Aspose.Slides vous permet de spécifier votre couleur préférée pour l'arrière‑plan d'un texte. + +Ce code JavaScript vous montre comment définir la couleur d'arrière‑plan pour tout le texte : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +Ce code JavaScript vous montre comment définir la couleur d'arrière‑plan pour seulement une partie du texte : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Aligner les paragraphes de texte** + +Le formatage du texte est l'un des éléments clés lors de la création de tout type de documents ou de présentations. Nous savons qu'Aspose.Slides for Node.js via Java prend en charge l'ajout de texte aux diapositives, mais dans ce sujet, nous verrons comment contrôler l'alignement des paragraphes de texte dans une diapositive. Veuillez suivre les étapes ci‑dessous pour aligner les paragraphes de texte à l'aide d'Aspose.Slides for Node.js via Java : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive en utilisant son index. +3. Accédez aux formes Placeholder présentes dans la diapositive et convertissez‑les en tant que [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Récupérez le paragraphe (qui doit être aligné) depuis le [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) exposé par [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Alignez le paragraphe. Un paragraphe peut être aligné à Droite, Gauche, Centre ou Justifié. +6. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +L'implémentation des étapes ci‑above est donnée ci‑dessous. +```javascript +// Instancier un objet Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Accéder au premier et au deuxième espace réservé dans la diapositive et les convertir en AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Modifier le texte dans les deux espaces réservés + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // Récupérer le premier paragraphe des espaces réservés + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Aligner le paragraphe de texte au centre + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // Enregistrer la présentation au format PPTX + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la transparence du texte** + +Cet article montre comment définir la propriété de transparence pour toute forme de texte à l'aide d'Aspose.Slides for Node.js via Java. Pour définir la transparence du texte, veuillez suivre les étapes ci‑dessous : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive. +3. Définissez la couleur de l'ombre. +4. Enregistrez la présentation sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // définir la transparence à zéro pour cent + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir l'espacement des caractères pour le texte** + +Aspose.Slides vous permet de définir l'espace entre les lettres dans une zone de texte. Ainsi, vous pouvez ajuster la densité visuelle d'une ligne ou d'un bloc de texte en élargissant ou en condensant l'espacement entre les caractères. + +Ce code JavaScript montre comment élargir l'espacement pour une ligne de texte et condenser l'espacement pour une autre ligne : +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// étendre +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// condenser +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Gérer les propriétés de police du paragraphe** + +Les présentations contiennent généralement à la fois du texte et des images. Le texte peut être formaté de diverses manières, soit pour mettre en évidence des sections et des mots spécifiques, soit pour se conformer aux styles d'entreprise. Le formatage du texte aide les utilisateurs à varier l'aspect du contenu de la présentation. Cet article montre comment utiliser Aspose.Slides for Node.js via Java pour configurer les propriétés de police des paragraphes de texte sur les diapositives. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive en utilisant son index. +3. Accédez aux formes Placeholder dans la diapositive et convertissez‑les en [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Récupérez le [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) depuis le [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) exposé par [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Justifiez le paragraphe. +6. Accédez à la portion de texte du paragraphe. +7. Définissez la police à l'aide de FontData et attribuez la police à la portion de texte en conséquence. + 1. Mettez la police en gras. + 2. Mettez la police en italique. +8. Définissez la couleur de la police en utilisant la méthode [getFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#getFillFormat--) exposée par l'objet [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion). +9. Enregistrez la présentation modifiée dans un fichier [PPTX](https://docs.fileformat.com/presentation/pptx/). + +```javascript +// Instancier un objet Presentation qui représente un fichier PPTX +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // Accéder à une diapositive en utilisant sa position + var slide = pres.getSlides().get_Item(0); + // Accéder au premier et au deuxième espace réservé dans la diapositive et les convertir en AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Accéder au premier paragraphe + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Accéder à la première portion + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // Définir de nouvelles polices + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // Assigner les nouvelles polices à la portion + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // Définir la police en gras + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Définir la police en italique + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Définir la couleur de la police + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // Écrire le PPTX sur le disque + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Gérer la famille de polices du texte** + +Une portion est utilisée pour contenir du texte avec un style de formatage similaire dans un paragraphe. Cet article montre comment utiliser Aspose.Slides for Node.js via Java pour créer une zone de texte avec du texte, puis définir une police particulière ainsi que diverses autres propriétés de la catégorie famille de polices. Pour créer une zone de texte et définir les propriétés de police du texte qu'elle contient : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive en utilisant son index. +3. Ajoutez un [AutoShape] de type [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) à la diapositive. +4. Supprimez le style de remplissage associé au [AutoShape]. +5. Accédez au TextFrame du AutoShape. +6. Ajoutez du texte au TextFrame. +7. Accédez à l'objet Portion associé au [TextFrame]. +8. Définissez la police à utiliser pour la [Portion]. +9. Définissez d'autres propriétés de police telles que gras, italique, souligné, couleur et taille en utilisant les propriétés pertinentes exposées par l'objet Portion. +10. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +// Instancier une présentation +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la première diapositive + var sld = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // Supprimer tout style de remplissage associé à l'AutoShape + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accéder au TextFrame associé à l'AutoShape + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // Accéder à la Portion associée au TextFrame + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // Définir la police pour la Portion + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Définir la propriété gras de la police + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Définir la propriété italique de la police + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Définir la propriété soulignement de la police + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // Définir la hauteur de la police + port.getPortionFormat().setFontHeight(25); + // Définir la couleur de la police + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // Enregistrer le PPTX sur le disque + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la taille de police du texte** + +Aspose.Slides vous permet de choisir la taille de police souhaitée pour le texte existant dans un paragraphe ainsi que pour d’autres textes qui peuvent être ajoutés ultérieurement au paragraphe. Ce code JavaScript montre comment définir la taille de police pour les textes contenus dans un paragraphe : +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Obtient la première forme, par exemple. + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Obtient le premier paragraphe, par exemple. + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // Définit la taille de police par défaut à 20 pt pour toutes les portions de texte du paragraphe. + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // Définit la taille de police à 20 pt pour les portions de texte actuelles du paragraphe. + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Définir la rotation du texte** + +Aspose.Slides for Node.js via Java permet aux développeurs de faire pivoter le texte. Le texte peut être affiché comme [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal), [Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical), [Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270), [WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical), [EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical), [MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) ou [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft). Pour faire pivoter le texte d'un TextFrame, veuillez suivre les étapes ci‑dessous : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Accédez à la première diapositive. +3. Ajoutez n'importe quelle forme à la diapositive. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Faire pivoter le texte](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-). +6. Enregistrez le fichier sur le disque. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Ajouter un TextFrame au Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accéder au TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // Créer l'objet Paragraph pour le TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Créer l'objet Portion pour le paragraphe + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Enregistrer la présentation + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir un angle de rotation personnalisé pour TextFrame** + +Aspose.Slides for Node.js via Java prend désormais en charge la définition d'un angle de rotation personnalisé pour le TextFrame. Dans ce sujet, nous verrons avec un exemple comment définir la propriété RotationAngle dans Aspose.Slides. Les nouvelles méthodes [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) et [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--) ont été ajoutées aux classes [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) et [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) , permettant de définir un angle de rotation personnalisé pour le TextFrame. Pour définir RotationAngle, veuillez suivre les étapes ci‑dessous : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Ajoutez un graphique sur la diapositive. +3. [Définir la propriété RotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-). +4. Enregistrez la présentation sous forme de fichier PPTX. + +Dans l'exemple ci‑dessous, nous définissons la propriété RotationAngle. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Ajouter un TextFrame au Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accéder au TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // Créer l'objet Paragraph pour le TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Créer l'objet Portion pour le paragraphe + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Enregistrer la présentation + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Interligne du paragraphe** + +Aspose.Slides fournit des propriétés sous [`ParagraphFormat`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat)—`SpaceAfter`, `SpaceBefore` et `SpaceWithin`—qui permettent de gérer l'interligne d'un paragraphe. Les trois propriétés sont utilisées de la manière suivante : + +* Pour spécifier l'interligne d'un paragraphe en pourcentage, utilisez une valeur positive. +* Pour spécifier l'interligne d'un paragraphe en points, utilisez une valeur négative. + +Par exemple, vous pouvez appliquer un interligne de 16 pt à un paragraphe en définissant la propriété `SpaceBefore` à -16. + +Voici comment spécifier l'interligne pour un paragraphe spécifique : + +1. Chargez une présentation contenant un AutoShape avec du texte. +2. Obtenez la référence d’une diapositive via son index. +3. Accédez au TextFrame. +4. Accédez au Paragraph. +5. Définissez les propriétés du Paragraph. +6. Enregistrez la présentation. + +Ce code JavaScript montre comment spécifier l'interligne d'un paragraphe : +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation("Fonts.pptx"); +try { + // Obtenir la référence d'une diapositive par son index + var sld = pres.getSlides().get_Item(0); + // Accéder au TextFrame + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // Accéder au paragraphe + var para = tf1.getParagraphs().get_Item(0); + // Définir les propriétés du paragraphe + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // Enregistrer la présentation + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la propriété AutofitType pour TextFrame** + +Dans ce sujet, nous explorerons les différentes propriétés de formatage du cadre de texte. Cet article couvre la façon de définir la propriété AutofitType du cadre de texte, l’ancrage du texte et la rotation du texte dans une présentation. Aspose.Slides for Node.js via Java permet aux développeurs de définir la propriété AutofitType de n'importe quel cadre de texte. AutofitType peut être défini sur [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) ou [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape). Si elle est définie sur [Normal], la forme reste la même tandis que le texte est ajusté sans modifier la forme ; si AutofitType est défini sur [Shape], la forme est modifiée de façon à ne contenir que le texte requis. Pour définir la propriété AutofitType d'un cadre de texte, veuillez suivre les étapes ci‑dessous : + +1. Créez une instance de la classe [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)class. +2. Accédez à la première diapositive. +3. Ajoutez n'importe quelle forme à la diapositive. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Définir l'AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-) du TextFrame. +6. Enregistrez le fichier sur le disque. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // Ajouter un TextFrame au Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accéder au TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Créer l'objet Paragraph pour le TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Créer l'objet Portion pour le paragraphe + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Enregistrer la présentation + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir l'ancre du TextFrame** + +Aspose.Slides for Node.js via Java permet aux développeurs d'ancrer n'importe quel TextFrame. TextAnchorType indique où le texte est placé dans la forme. AnchorType peut être défini sur [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top), [Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center), [Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom), [Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) ou [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed). Pour définir l'ancre d'un TextFrame, veuillez suivre les étapes ci‑dessus : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Accédez à la première diapositive. +3. Ajoutez n'importe quelle forme à la diapositive. +4. Accédez au [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Définir TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-) du TextFrame. +6. Enregistrez le fichier sur le disque. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Ajouter un TextFrame au Rectangle + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Accéder au TextFrame + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // Créer l'objet Paragraph pour le TextFrame + var para = txtFrame.getParagraphs().get_Item(0); + // Créer l'objet Portion pour le paragraphe + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Enregistrer la présentation + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Tabulations et EffectiveTabs dans la présentation** + +Toutes les tabulations de texte sont données en pixels. + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**Figure : 2 Tabulations explicites et 2 Tabulations par défaut**| + +- La propriété EffectiveTabs.ExplicitTabCount (2 dans notre cas) est égale à Tabs.Count. +- La collection EffectiveTabs inclut toutes les tabulations (de la collection Tabs et les tabulations par défaut). +- La propriété EffectiveTabs.ExplicitTabCount (2 dans notre cas) est égale à Tabs.Count. +- La propriété EffectiveTabs.DefaultTabSize (294) indique la distance entre les tabulations par défaut (3 et 4 dans notre exemple). +- EffectiveTabs.GetTabByIndex(index) avec index = 0 renvoie la première tabulation explicite (Position = 731), index = 1 la deuxième (Position = 1241). Si vous demandez l'index = 2, cela renvoie la première tabulation par défaut (Position = 1470), etc. +- EffectiveTabs.GetTabAfterPosition(pos) sert à obtenir la prochaine tabulation après un texte. Par exemple, pour le texte « Hello World! », il faut connaître la longueur de « Hello » en pixels puis appeler GetTabAfterPosition avec cette valeur pour obtenir la position de la prochaine tabulation afin de dessiner « world! ». + +## **Définir le style de texte par défaut** + +Si vous devez appliquer le même formatage de texte par défaut à tous les éléments texte d'une présentation en une fois, vous pouvez utiliser la méthode `getDefaultTextStyle` de la classe [Presentation] et définir le formatage souhaité. L'exemple de code ci‑dessus montre comment définir la police en gras par défaut (14 pt) pour le texte de toutes les diapositives d'une nouvelle présentation. +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Obtenir le format de paragraphe du niveau supérieur. + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Extraire le texte avec l'effet Tout en majuscules** + +Dans PowerPoint, appliquer l'effet de police **All Caps** rend le texte affiché en majuscules sur la diapositive même s'il a été tapé initialement en minuscules. Lorsque vous récupérez une telle portion de texte avec Aspose.Slides, la bibliothèque renvoie le texte exactement tel qu'il a été saisi. Pour gérer cela, vérifiez [TextCapType] — si elle indique `All`, convertissez simplement la chaîne renvoyée en majuscules afin que votre sortie corresponde à ce que voient les utilisateurs sur la diapositive. + +Supposons que nous ayons la zone de texte suivante sur la première diapositive du fichier sample2.pptx. + +![The All Caps effect](all_caps_effect.png) + +L'exemple de code ci‑dessus montre comment extraire le texte avec l'effet **All Caps** appliqué : +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +Sortie : +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **FAQ** + +**Comment modifier le texte dans un tableau sur une diapositive ?** + +Pour modifier le texte d'un tableau sur une diapositive, vous devez utiliser l'objet [Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/). Vous pouvez parcourir toutes les cellules du tableau et modifier le texte de chaque cellule en accédant à ses propriétés `TextFrame` et `ParagraphFormat`. + +**Comment appliquer une couleur dégradée au texte dans une diapositive PowerPoint ?** + +Pour appliquer une couleur dégradée au texte, utilisez la propriété Fill Format dans [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). Définissez le Fill Format sur `Gradient`, où vous pouvez définir les couleurs de départ et de fin du dégradé, ainsi que d'autres propriétés telles que la direction et la transparence pour créer l'effet dégradé sur le texte. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..b9d36a2647 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,374 @@ +--- +title: WordArt +type: docs +weight: 110 +url: /fr/nodejs-java/wordart/ +--- + +## **À propos de WordArt ?** + +WordArt ou Word Art est une fonctionnalité qui vous permet d’appliquer des effets au texte afin de le faire ressortir. Avec WordArt, par exemple, vous pouvez tracer le contour d’un texte ou le remplir d’une couleur (ou d’un dégradé), ajouter des effets 3D, etc. Vous pouvez également incliner, courber et étirer la forme d’un texte. + +{{% alert color="primary" %}} + +WordArt vous permet de traiter un texte comme un objet graphique. En général, WordArt se compose d’effets ou de modifications spéciales appliquées aux textes pour les rendre plus attrayants ou remarquables. + +{{% /alert %}} + +**WordArt dans Microsoft PowerPoint** + +Pour utiliser WordArt dans Microsoft PowerPoint, vous devez sélectionner l’un des modèles WordArt prédéfinis. Un modèle WordArt est un ensemble d’effets qui est appliqué à un texte ou à sa forme. + +**WordArt dans Aspose.Slides** + +Dans Aspose.Slides for Node.js via Java 20.10, nous avons implémenté la prise en charge de WordArt et amélioré la fonctionnalité dans les versions ultérieures d’Aspose.Slides for Node.js via Java. + +Avec Aspose.Slides for Node.js via Java, vous pouvez facilement créer votre propre modèle WordArt (un effet ou une combinaison d’effets) en JavaScript et l’appliquer aux textes. + +## **Création d’un modèle WordArt simple et application à un texte** + +**Utilisation d’Aspose.Slides** + +Tout d’abord, nous créons un texte simple avec ce code JavaScript : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Ensuite, nous augmentons la hauteur de la police du texte pour rendre l’effet plus visible grâce à ce code : +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**Utilisation de Microsoft PowerPoint** + +Accédez au menu des effets WordArt dans Microsoft PowerPoint : + +![todo:image_alt_text](image-20200930113926-1.png) + +Dans le volet de droite, vous pouvez choisir un effet WordArt prédéfini. Dans le volet de gauche, vous pouvez préciser les paramètres d’un nouveau WordArt. + +Voici quelques paramètres ou options disponibles : + +![todo:image_alt_text](image-20200930114015-3.png) + +**Utilisation d’Aspose.Slides** + +Ici, nous appliquons le motif de couleur [SmallGrid](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) au texte et ajoutons une bordure noire d’une largeur de 1 grâce à ce code : +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +Le texte résultant : + +![todo:image_alt_text](image-20200930114108-4.png) + +## **Application d’autres effets WordArt** + +**Utilisation de Microsoft PowerPoint** + +À partir de la classe du programme, vous pouvez appliquer ces effets à un texte, un bloc de texte, une forme ou un élément similaire : + +![todo:image_alt_text](image-20200930114129-5.png) + +Par exemple, les effets Ombre, Réflexion et Lueur peuvent être appliqués à un texte ; les effets Format 3D et Rotation 3D peuvent être appliqués à un bloc de texte ; la propriété Bords doux peut être appliquée à un objet Forme (elle a toujours un effet même lorsqu’aucune propriété Format 3D n’est définie). + +### **Application des effets Ombre** + +Ici, nous souhaitons définir les propriétés relatives uniquement à un texte. Nous appliquons l’effet ombre à un texte avec ce code JavaScript : +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +L’API Aspose.Slides prend en charge trois types d’ombres : OuterShadow, InnerShadow et PresetShadow. + +Avec PresetShadow, vous pouvez appliquer une ombre à un texte (en utilisant des valeurs prédéfinies). + +**Utilisation de Microsoft PowerPoint** + +Dans PowerPoint, vous pouvez n’utiliser qu’un seul type d’ombre. Voici un exemple : + +![todo:image_alt_text](image-20200930114225-6.png) + +**Utilisation d’Aspose.Slides** + +Aspose.Slides vous permet en fait d’appliquer deux types d’ombres simultanément : InnerShadow et PresetShadow. + +**Remarques :** + +- Lorsque OuterShadow et PresetShadow sont utilisés ensemble, seul l’effet OuterShadow est appliqué. +- Si OuterShadow et InnerShadow sont utilisés simultanément, l’effet résultant dépend de la version de PowerPoint. Par exemple, dans PowerPoint 2013, l’effet est doublé. Mais dans PowerPoint 2007, l’effet OuterShadow est appliqué. + +### **Application de l’affichage aux textes** + +Nous ajoutons un affichage au texte avec cet exemple de code JavaScript : +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **Application de l’effet Lueur aux textes** + +Nous appliquons l’effet lueur au texte pour le faire briller ou ressortir avec ce code : +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +Le résultat de l’opération : + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} + +Vous pouvez modifier les paramètres d’ombre, d’affichage et de lueur. Les propriétés des effets sont définies séparément pour chaque portion du texte. + +{{% /alert %}} + +### **Utilisation des transformations dans WordArt** + +Nous utilisons la propriété Transform (inhérente à l’ensemble du bloc de texte) avec ce code : +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +Le résultat : + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} + +Microsoft PowerPoint et Aspose.Slides for Node.js via Java offrent un certain nombre de types de transformation prédéfinis. + +{{% /alert %}} + +**Utilisation de PowerPoint** + +Pour accéder aux types de transformation prédéfinis, suivez : **Format** → **TextEffect** → **Transform** + +**Utilisation d’Aspose.Slides** + +Pour sélectionner un type de transformation, utilisez l’énumération TextShapeType. + +### **Application d’effets 3D aux textes et aux formes** + +Nous définissons un effet 3D à une forme de texte avec cet exemple de code : +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +Le texte et sa forme résultants : + +![todo:image_alt_text](image-20200930114816-9.png) + +Nous appliquons un effet 3D au texte avec ce code JavaScript : +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +Le résultat de l’opération : + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} + +L’application des effets 3D aux textes ou à leurs formes et les interactions entre effets sont régies par certaines règles. + +Considérez une scène pour un texte et la forme contenant ce texte. L’effet 3D comprend la représentation de l’objet 3D ainsi que la scène sur laquelle l’objet est placé. + +- Lorsque la scène est définie à la fois pour la figure et pour le texte, la scène de la figure a la priorité ; la scène du texte est ignorée. +- Lorsque la figure n’a pas sa propre scène mais possède une représentation 3D, la scène du texte est utilisée. +- Sinon—lorsque la forme n’a initialement aucun effet 3D—la forme reste plate et l’effet 3D n’est appliqué qu’au texte. + +Ces descriptions sont liées aux méthodes ThreeDFormat.getLightRig() et ThreeDFormat.getCamera(). + +{{% /alert %}} + +## **Appliquer des effets Ombre extérieure aux textes** + +Aspose.Slides for Node.js via Java fournit les classes [**OuterShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) et [**InnerShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow) qui vous permettent d’appliquer des effets d’ombre à un texte porté par [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame). Suivez ces étapes : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Obtenez la référence d’une diapositive en utilisant son indice. +3. Ajoutez une AutoShape de type Rectangle à la diapositive. +4. Accédez au TextFrame associé à l’AutoShape. +5. Définissez la propriété FillType de l’AutoShape sur NoFill. +6. Instanciez la classe OuterShadow +7. Définissez le BlurRadius de l’ombre. +8. Définissez la Direction de l’ombre +9. Définissez la Distance de l’ombre. +10. Définissez le RectanglelAlign sur TopLeft. +11. Définissez le PresetColor de l’ombre sur Black. +12. Enregistrez la présentation au format [PPTX](https://docs.fileformat.com/presentation/pptx/) . + +Ce code d’exemple en Java—une implémentation des étapes ci‑dessus—vous montre comment appliquer l’effet d’ombre extérieure à un texte : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la référence de la diapositive + var sld = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Ajouter un TextFrame au Rectangle + ashp.addTextFrame("Aspose TextBox"); + // Désactiver le remplissage de la forme au cas où nous voulons obtenir l'ombre du texte + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Ajouter une ombre extérieure et définir tous les paramètres nécessaires + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // Enregistrer la présentation sur le disque + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Appliquer l’effet Ombre intérieure aux formes** + +Suivez ces étapes : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Obtenez la référence de la diapositive. +3. Ajoutez une AutoShape de type Rectangle. +4. Activez InnerShadowEffect. +5. Définissez tous les paramètres nécessaires. +6. Définissez le ColorType sur Scheme. +7. Définissez la couleur du schéma. +8. Enregistrez la présentation au format [PPTX](https://docs.fileformat.com/presentation/pptx/) . + +Ce code d’exemple (basé sur les étapes ci‑dessus) vous montre comment ajouter un connecteur entre deux formes en JavaScript : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la référence de la diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter une AutoShape de type Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Ajouter un TextFrame au Rectangle + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // Activer InnerShadowEffect + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // Définir tous les paramètres nécessaires + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // Définir ColorType sur Scheme + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // Définir Scheme Color + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // Enregistrer la présentation + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis‑je utiliser les effets WordArt avec différentes polices ou scripts (par ex. arabe, chinois) ?** + +Oui, Aspose.Slides prend en charge Unicode et fonctionne avec toutes les principales polices et scripts. Les effets WordArt tels que l’ombre, le remplissage et le contour peuvent être appliqués quelle que soit la langue, bien que la disponibilité des polices et le rendu puissent dépendre des polices du système. + +**Puis‑je appliquer les effets WordArt aux éléments du masque des diapositives ?** + +Oui, vous pouvez appliquer les effets WordArt aux formes des masques maîtres, y compris les espaces réservés de titre, les pieds de page ou le texte d’arrière‑plan. Les modifications apportées au masque maître se répercuteront sur toutes les diapositives associées. + +**Les effets WordArt affectent‑ils la taille du fichier de présentation ?** + +Légèrement. Les effets WordArt tels que les ombres, les lueurs et les remplissages dégradés peuvent augmenter légèrement la taille du fichier en raison des métadonnées de formatage supplémentaires, mais la différence est généralement négligeable. + +**Puis‑je prévisualiser le résultat des effets WordArt sans enregistrer la présentation ?** + +Oui, vous pouvez rendre les diapositives contenant du WordArt en images (par ex. PNG, JPEG) à l’aide de la méthode `getImage` des classes [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) ou [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). Cela vous permet de prévisualiser le résultat en mémoire ou à l’écran avant d’enregistrer ou d’exporter la présentation complète. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/fr/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..e7cdeb6c60 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,528 @@ +--- +title: Gérer le Zoom +type: docs +weight: 60 +url: /fr/nodejs-java/manage-zoom/ +keywords: "Zoom, cadre Zoom, ajouter un zoom, mettre en forme le cadre Zoom, zoom de résumé, présentation PowerPoint, Java, Aspose.Slides pour Node.js via Java" +description: "Ajouter des zooms ou des cadres de zoom aux présentations PowerPoint en JavaScript" +--- + +## **Vue d'ensemble** + +Les Zooms dans PowerPoint vous permettent de sauter vers et depuis des diapositives, sections et parties spécifiques d’une présentation. Lorsque vous présentez, cette capacité à naviguer rapidement entre le contenu peut s’avérer très utile. + +![overview_image](overview.png) + +* Pour résumer une présentation entière sur une seule diapositive, utilisez un [Summary Zoom](#Summary-Zoom). +* Pour afficher uniquement des diapositives sélectionnées, utilisez un [Slide Zoom](#Slide-Zoom). +* Pour afficher une seule section uniquement, utilisez un [Section Zoom](#Section-Zoom). + +## **Zoom de diapositive** + +Un zoom de diapositive peut rendre votre présentation plus dynamique, vous permettant de naviguer librement entre les diapositives dans l’ordre que vous choisissez sans interrompre le déroulement de votre présentation. Les zooms de diapositive sont idéaux pour les présentations courtes sans trop de sections, mais vous pouvez tout de même les utiliser dans différents scénarios de présentation. + +Les zooms de diapositive vous aident à examiner plusieurs informations tout en donnant l’impression d’être sur une seule toile. + +![overview_image](slidezoomsel.png) + +Pour les objets de zoom de diapositive, Aspose.Slides fournit l'énumération [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType), la classe [ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) et quelques méthodes de la classe [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Création de cadres de zoom** + +Vous pouvez ajouter un cadre de zoom sur une diapositive de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez de nouvelles diapositives auxquelles vous souhaitez lier les cadres de zoom. +3. Ajoutez un texte d’identification et un arrière-plan aux diapositives créées. +4. Ajoutez des cadres de zoom (contenant les références aux diapositives créées) à la première diapositive. +5. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute de nouvelles diapositives à la présentation + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Crée un arrière-plan pour la deuxième diapositive + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Crée une zone de texte pour la deuxième diapositive + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Crée un arrière-plan pour la troisième diapositive + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Crée une zone de texte pour la troisième diapositive + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Ajoute des objets ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Création de cadres de zoom avec images personnalisées** + +Avec Aspose.Slides for Node.js via Java, vous pouvez créer un cadre de zoom avec une image de prévisualisation différente de cette façon : +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez une nouvelle diapositive à laquelle vous souhaitez lier le cadre de zoom. +3. Ajoutez un texte d’identification et un arrière-plan à la diapositive. +4. Créez un objet [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) en ajoutant une image à la collection Images associée à l'objet [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui servira à remplir le cadre. +5. Ajoutez des cadres de zoom (contenant la référence à la diapositive créée) à la première diapositive. +6. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Crée un arrière-plan pour la deuxième diapositive + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Crée une zone de texte pour la troisième diapositive + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Crée une nouvelle image pour l'objet zoom + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Ajoute l'objet ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Mise en forme des cadres de zoom** + +Dans les sections précédentes, nous vous avons montré comment créer des cadres de zoom simples. Pour créer des cadres de zoom plus complexes, vous devez modifier la mise en forme d’un cadre simple. Plusieurs options de mise en forme peuvent être appliquées à un cadre de zoom. + +Vous pouvez contrôler la mise en forme d’un cadre de zoom sur une diapositive de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez de nouvelles diapositives à lier auxquelles vous souhaitez lier le cadre de zoom. +3. Ajoutez un texte d’identification et un arrière-plan aux diapositives créées. +4. Ajoutez des cadres de zoom (contenant les références aux diapositives créées) à la première diapositive. +5. Créez un objet [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) en ajoutant une image à la collection Images associée à l'objet [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui servira à remplir le cadre. +6. Définissez une image personnalisée pour le premier objet de cadre de zoom. +7. Modifiez le format de ligne du deuxième objet de cadre de zoom. +8. Supprimez l’arrière-plan d’une image du deuxième objet de cadre de zoom. +9. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute de nouvelles diapositives à la présentation + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Crée un arrière-plan pour la deuxième diapositive + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Crée une zone de texte pour la deuxième diapositive + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Crée un arrière-plan pour la troisième diapositive + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Crée une zone de texte pour la troisième diapositive + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Ajoute des objets ZoomFrame + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Crée une nouvelle image pour l'objet zoom + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Définit une image personnalisée pour l'objet zoomFrame1 + zoomFrame1.setImage(picture); + // Définit un format de cadre zoom pour l'objet zoomFrame2 + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Paramètre pour ne pas afficher l'arrière-plan pour l'objet zoomFrame2 + zoomFrame2.setShowBackground(false); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zoom de section** + +Un zoom de section est un lien vers une section de votre présentation. Vous pouvez utiliser les zooms de section pour revenir aux sections que vous souhaitez vraiment mettre en avant. Vous pouvez également les utiliser pour souligner comment certaines parties de votre présentation se connectent. + +![overview_image](seczoomsel.png) + +Pour les objets de zoom de section, Aspose.Slides fournit la classe [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) et quelques méthodes de la classe [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Création de cadres de zoom de section** + +Vous pouvez ajouter un cadre de zoom de section à une diapositive de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez une nouvelle diapositive. +3. Ajoutez un arrière-plan d’identification à la diapositive créée. +4. Créez une nouvelle section à laquelle vous souhaitez lier le cadre de zoom. +5. Ajoutez un cadre de zoom de section (contenant les références à la section créée) à la première diapositive. +6. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 1", slide); + // Ajoute un objet SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Création de cadres de zoom de section avec images personnalisées** + +En utilisant Aspose.Slides for Node.js via Java, vous pouvez créer un cadre de zoom de section avec une image de prévisualisation différente de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez une nouvelle diapositive. +3. Ajoutez un arrière-plan d’identification à la diapositive créée. +4. Créez une nouvelle section à laquelle vous souhaitez lier le cadre de zoom. +5. Créez un objet [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) en ajoutant une image à la collection Images associée à l'objet [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui servira à remplir le cadre. +6. Ajoutez un cadre de zoom de section (contenant une référence à la section créée) à la première diapositive. +7. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 1", slide); + // Crée une nouvelle image pour l'objet zoom + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Ajoute un objet SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Mise en forme des cadres de zoom de section** + +Pour créer des cadres de zoom de section plus complexes, vous devez modifier la mise en forme d’un cadre simple. Plusieurs options de mise en forme peuvent être appliquées à un cadre de zoom de section. + +Vous pouvez contrôler la mise en forme d’un cadre de zoom de section sur une diapositive de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez une nouvelle diapositive. +3. Ajoutez un arrière-plan d’identification à la diapositive créée. +4. Créez une nouvelle section à laquelle vous souhaitez lier le cadre de zoom. +5. Ajoutez un cadre de zoom de section (contenant les références à la section créée) à la première diapositive. +6. Modifiez la taille et la position de l’objet de zoom de section créé. +7. Créez un objet [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) en ajoutant une image à la collection Images associée à l'objet [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui servira à remplir le cadre. +8. Définissez une image personnalisée pour l’objet de cadre de zoom de section créé. +9. Définissez la *return to the original slide from the linked section* ability. +10. Supprimez l’arrière-plan d’une image de l’objet de cadre de zoom de section. +11. Modifiez le format de ligne du deuxième objet de cadre de zoom. +12. Modifiez la durée de la transition. +13. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 1", slide); + // Ajoute un objet SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Mise en forme du SectionZoomFrame + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Zoom de résumé** + +Un zoom de résumé ressemble à une page d’atterrissage où toutes les parties de votre présentation sont affichées simultanément. Lorsque vous présentez, vous pouvez utiliser le zoom pour passer d’un endroit de votre présentation à un autre dans l’ordre de votre choix. Vous pouvez faire preuve de créativité, sauter en avant ou revisiter des parties de votre diaporama sans interrompre le déroulement de votre présentation. + +![overview_image](sumzoomsel.png) + +Pour les objets de zoom de résumé, Aspose.Slides fournit les classes [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame), [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) et [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) ainsi que quelques méthodes de la classe [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Création du zoom de résumé** + +Vous pouvez ajouter un cadre de zoom de résumé à une diapositive de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez de nouvelles diapositives avec un arrière-plan d’identification et de nouvelles sections pour les diapositives créées. +3. Ajoutez le cadre de zoom de résumé à la première diapositive. +4. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 1", slide); + // Ajoute une nouvelle diapositive à la présentation + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 2", slide); + // Ajoute une nouvelle diapositive à la présentation + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 3", slide); + // Ajoute une nouvelle diapositive à la présentation + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 4", slide); + // Ajoute un objet SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Ajout et suppression de sections de zoom de résumé** + +Toutes les sections d’un cadre de zoom de résumé sont représentées par des objets [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection), qui sont stockés dans l’objet [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection). Vous pouvez ajouter ou supprimer un objet de section de zoom de résumé via la classe [SummaryZoomSectionCollection] de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez de nouvelles diapositives avec un arrière-plan d’identification et de nouvelles sections pour les diapositives créées. +3. Ajoutez un cadre de zoom de résumé dans la première diapositive. +4. Ajoutez une nouvelle diapositive et une nouvelle section à la présentation. +5. Ajoutez la section créée au cadre de zoom de résumé. +6. Supprimez la première section du cadre de zoom de résumé. +7. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 1", slide); + // Ajoute une nouvelle diapositive à la présentation + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 2", slide); + // Ajoute un objet SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Ajoute une nouvelle diapositive à la présentation + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + var section3 = pres.getSections().addSection("Section 3", slide); + // Ajoute une section au Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // Supprime la section du Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Mise en forme des sections de zoom de résumé** + +Pour créer des objets de section de zoom de résumé plus complexes, vous devez modifier la mise en forme d’un cadre simple. Plusieurs options de mise en forme peuvent être appliquées à un objet de section de zoom de résumé. + +Vous pouvez contrôler la mise en forme d’un objet de section de zoom de résumé dans un cadre de zoom de résumé de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Créez de nouvelles diapositives avec un arrière-plan d’identification et de nouvelles sections pour les diapositives créées. +3. Ajoutez un cadre de zoom de résumé à la première diapositive. +4. Obtenez un objet de section de zoom de résumé pour le premier objet depuis la `ISummaryZoomSectionCollection`. +5. Créez un objet [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) en ajoutant une image à la collection images associée à l'objet [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) qui servira à remplir le cadre. +6. Définissez une image personnalisée pour l’objet de cadre de section de zoom créé. +7. Définissez la *return to the original slide from the linked section* ability. +8. Changez le format de ligne du deuxième objet de cadre de zoom. +9. Changez la durée de la transition. +10. Enregistrez la présentation modifiée sous forme de fichier PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute une nouvelle diapositive à la présentation + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 1", slide); + // Ajoute une nouvelle diapositive à la présentation + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Ajoute une nouvelle section à la présentation + pres.getSections().addSection("Section 2", slide); + // Ajoute un objet SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Récupère le premier objet SummaryZoomSection + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // Mise en forme de l'objet SummaryZoomSection + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // Enregistre la présentation + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je contrôler le retour à la diapositive « parent » après avoir affiché la cible ?** + +Oui. Le [Zoom frame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/) ou la [section](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/) possède une méthode `setReturnToParent` qui, lorsqu’elle est activée, renvoie les spectateurs à la diapositive d’origine après qu’ils aient consulté le contenu cible. + +**Puis-je ajuster la « vitesse » ou la durée de la transition du Zoom ?** + +Oui. Zoom expose une méthode `setTransitionDuration` qui vous permet de contrôler la durée de l'animation de saut. + +**Existe-t-il des limites au nombre d’objets Zoom qu’une présentation peut contenir ?** + +Il n’existe aucune limite API stricte documentée. Les limites pratiques dépendent de la complexité globale de la présentation et des performances du visualiseur. Vous pouvez ajouter de nombreux cadres de Zoom, mais il faut tenir compte de la taille du fichier et du temps de rendu. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/fr/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..4f40601a1e --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,102 @@ +--- +title: Gestion des tags et des données personnalisées +type: docs +weight: 300 +url: /fr/nodejs-java/managing-tags-and-custom-data +--- + +## **Stockage des données dans les fichiers de présentation** + +Les fichiers PPTX — éléments avec l’extension .pptx — sont stockés au format PresentationML, qui fait partie de la spécification Office Open XML. Le format Office Open XML définit la structure des données contenues dans les présentations. + +Avec une *diapositive* étant l’un des éléments des présentations, une *partie de diapositive* contient le contenu d’une seule diapositive. Une partie de diapositive peut avoir des relations explicites avec de nombreuses parties—comme les balises définies par l’utilisateur—définies par ISO/IEC 29500. + +Les données personnalisées (spécifiques à une présentation) ou l'utilisateur peuvent exister sous forme de balises ([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection)) et de CustomXmlParts ([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection)). + +{{% alert color="primary" %}} + +Les balises sont essentiellement des paires clé–valeur de chaîne. + +{{% /alert %}} + +## **Obtention des valeurs des balises** + +Dans les diapositives, une balise correspond aux méthodes [DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) et [DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-). Ce code d’exemple montre comment obtenir la valeur d’une balise avec Aspose.Slides pour Node.js via Java pour [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajout de balises aux présentations** + +Aspose.Slides vous permet d’ajouter des balises aux présentations. Une balise se compose généralement de deux éléments : + +- le nom d’une propriété personnalisée - `MyTag` +- la valeur de la propriété personnalisée - `My Tag Value` + +Si vous devez classer certaines présentations en fonction d’une règle ou d’une propriété spécifique, vous pouvez tirer parti de l’ajout de balises à ces présentations. Par exemple, si vous voulez regrouper toutes les présentations provenant des pays d’Amérique du Nord, vous pouvez créer une balise America du Nord puis attribuer les pays concernés (États‑Unis, Mexique et Canada) comme valeurs. + +Ce code d’exemple montre comment ajouter une balise à une [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) en utilisant Aspose.Slides pour Node.js via Java : +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Les balises peuvent également être définies pour [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Ou tout [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je supprimer toutes les balises d’une présentation, d’une diapositive ou d’une forme en une seule opération ?** + +Oui. La [collection de balises](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) prend en charge une opération [clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/) qui supprime toutes les paires clé–valeur en une seule fois. + +**Comment supprimer une seule balise par son nom sans parcourir toute la collection ?** + +Utilisez l’opération [remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/) sur [TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) pour supprimer la balise par sa clé. + +**Comment récupérer la liste complète des noms de balises pour l’analyse ou le filtrage ?** + +Utilisez [getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/) sur la [collection de balises](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) ; elle renvoie un tableau contenant tous les noms de balises. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..5f7762414e --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,179 @@ +--- +title: Graphiques animés +type: docs +weight: 80 +url: /fr/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} + +Aspose.Slides pour Node.js via Java prend en charge l'animation des éléments du graphique. **Series**, **Categories**, **Series Elements**, **Categories Elements** peuvent être animés avec la méthode [**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-) et deux énumérations [**EffectChartMajorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMajorGroupingType) et [**EffectChartMinorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMinorGroupingType). + +{{% /alert %}} + +## **Animation des séries de graphique** +Si vous souhaitez animer une série de graphique, écrivez le code selon les étapes ci-dessous : + +1. Charger une présentation. +1. Obtenir la référence de l'objet graphique. +1. Animer la série. +1. Écrire le fichier de présentation sur le disque. + +Dans l'exemple ci-dessous, nous avons animé les séries du graphique. +```javascript +// Instancier la classe Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Obtenir la référence de l'objet graphique + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animer les séries + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Enregistrer la présentation modifiée sur le disque + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animation des catégories du graphique** +Si vous souhaitez animer une catégorie de graphique, écrivez le code selon les étapes ci-dessous : + +1. Charger une présentation. +1. Obtenir la référence de l'objet graphique. +1. Animer la catégorie. +1. Écrire le fichier de présentation sur le disque. + +Dans l'exemple ci-dessous, nous avons animé la catégorie du graphique. +```javascript +// Instancier la classe Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animation d'un élément de série** +Si vous souhaitez animer des éléments de série, écrivez le code selon les étapes ci-dessous : + +1. Charger une présentation. +1. Obtenir la référence de l'objet graphique. +1. Animer les éléments de série. +1. Écrire le fichier de présentation sur le disque. + +Dans l'exemple ci-dessus, nous avons animé les éléments de séries. +```javascript +// Instancier la classe Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Obtenir la référence de l'objet graphique + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animer les éléments de séries + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Enregistrer le fichier de présentation sur le disque + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Animation d'un élément de catégorie** +Si vous souhaitez animer des éléments de catégorie, écrivez le code selon les étapes ci-dessous : + +1. Charger une présentation. +1. Obtenir la référence de l'objet graphique. +1. Animer les éléments de catégorie. +1. Écrire le fichier de présentation sur le disque. + +Dans l'exemple ci-dessus, nous avons animé les éléments de catégories. +```javascript +// Instancier la classe Presentation qui représente un fichier de présentation +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Obtenir la référence de l'objet graphique + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Animer les éléments des catégories + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Enregistrer le fichier de présentation sur le disque + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Les différents types d'effet (par ex., entrée, mise en évidence, sortie) sont-ils pris en charge pour les graphiques comme pour les formes ordinaires ?** + +Oui. Un graphique est considéré comme une forme, il prend donc en charge les types d'effets d'animation standard, y compris l'entrée, la mise en évidence et la sortie, avec un contrôle complet via la chronologie de la diapositive et les séquences d'animation. + +**Puis-je combiner l'animation de graphique avec les transitions de diapositive ?** + +Oui. [Transitions](/slides/fr/nodejs-java/slide-transition/) s'appliquent à la diapositive, tandis que les effets d'animation s'appliquent aux objets sur la diapositive. Vous pouvez les utiliser tous les deux dans la même présentation et les contrôler indépendamment. + +**Les animations de graphique sont-elles conservées lors de l'enregistrement au format PPTX ?** + +Oui. Lorsque vous [enregistrez au format PPTX](/slides/fr/nodejs-java/save-presentation/), tous les effets d'animation et leur ordre sont conservés car ils font partie du modèle d'animation natif de la présentation. + +**Puis-je lire les animations de graphique existantes d'une présentation et les modifier ?** + +Oui. L'API donne accès à la chronologie de la diapositive, aux séquences et aux effets, vous permettant d'inspecter les animations de graphique existantes et de les ajuster sans tout recréer depuis le départ. + +**Puis-je produire une vidéo incluant les animations de graphique avec Aspose.Slides ?** + +Oui. Vous pouvez [exporter une présentation en vidéo](/slides/fr/nodejs-java/convert-powerpoint-to-video/) tout en conservant les animations, en configurant les durées et d'autres paramètres d'exportation afin que le clip résultant reflète la lecture animée. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..bc047718c2 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: Calculs de graphique +type: docs +weight: 50 +url: /fr/nodejs-java/chart-calculations/ +--- + +## **Calculer les valeurs réelles des éléments du graphique** + +Aspose.Slides for Node.js via Java fournit une API simple pour obtenir ces propriétés. Les propriétés de la classe [Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) fournissent des informations sur la position réelle de l'élément d'axe du graphique ([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--), [Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--), [Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--), [Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--), [Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--), [Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--)). Il est nécessaire d'appeler la méthode [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) au préalable pour remplir les propriétés avec les valeurs réelles. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Calculer la position réelle des éléments parents du graphique** + +Aspose.Slides for Node.js via Java fournit une API simple pour obtenir ces propriétés. Les propriétés de la classe [ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) fournissent des informations sur la position réelle de l'élément parent du graphique ([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--), [ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--), [ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--), [ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--) ). Il est nécessaire d'appeler la méthode [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) au préalable pour remplir les propriétés avec les valeurs réelles. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Masquer les informations du graphique** + +Ce sujet vous aide à comprendre comment masquer des informations du graphique. En utilisant Aspose.Slides for Node.js via Java, vous pouvez masquer le **Titre, l'Axe vertical, l'Axe horizontal** et les **Lignes de grille** du graphique. L'exemple de code ci‑dessus montre comment utiliser ces propriétés. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // Masquage du titre du graphique + chart.setTitle(false); + // /Masquage de l'axe des valeurs + chart.getAxes().getVerticalAxis().setVisible(false); + // Visibilité de l'axe des catégories + chart.getAxes().getHorizontalAxis().setVisible(false); + // Masquage de la légende + chart.setLegend(false); + // Masquage des lignes de grille principales + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // Définition de la couleur de la ligne de la série + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Les classeurs Excel externes fonctionnent-ils comme source de données, et comment cela affecte-t-il le recalcul ?** + +Oui. Un graphique peut référencer un classeur externe : lorsque vous vous connectez ou actualisez la source externe, les formules et les valeurs sont prises à partir de ce classeur, et le graphique reflète les mises à jour lors des opérations d'ouverture/édition. L'API vous permet de [spécifier le classeur externe](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) chemin et de gérer les données liées. + +**Puis-je calculer et afficher des lignes de tendance sans implémenter moi‑même la régression ?** + +Oui. Les [Lignes de tendance](/slides/fr/nodejs-java/trend-line/) (linéaires, exponentielles, etc.) sont ajoutées et mises à jour par Aspose.Slides ; leurs paramètres sont recalculés automatiquement à partir des données de la série, vous n’avez donc pas besoin d’implémenter vos propres calculs. + +**Si une présentation comporte plusieurs graphiques avec des liens externes, puis‑je contrôler quel classeur chaque graphique utilise pour les valeurs calculées ?** + +Oui. Chaque graphique peut pointer vers son propre [classeur externe](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/), ou vous pouvez créer/remplacer un classeur externe par graphique indépendamment des autres. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..6a34dcdbd3 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: Annotation +type: docs +url: /fr/nodejs-java/callout/ +--- + +## **Utilisation des callouts** + +De nouvelles méthodes [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) et [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-) ont été ajoutées à la classe [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) et à la classe [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat). Ces méthodes déterminent si le libellé de données du graphique spécifié sera affiché sous forme d'annotation de données ou de libellé de données. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir l'annotation pour un diagramme en anneau** + +Aspose.Slides pour Node.js via Java offre la prise en charge de la définition de la forme d'annotation du libellé de données de série pour un diagramme en anneau. L'exemple suivant est fourni. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Les annotations sont‑elles conservées lors de la conversion d’une présentation en PDF, HTML5, SVG ou images ?** + +Oui. Les annotations font partie du rendu du graphique, donc lors de l'exportation vers [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/), [HTML5](/slides/fr/nodejs-java/export-to-html5/), [SVG](/slides/fr/nodejs-java/render-a-slide-as-an-svg-image/) ou [images raster](/slides/fr/nodejs-java/convert-powerpoint-to-png/), elles sont conservées avec le formatage de la diapositive. + +**Les polices personnalisées fonctionnent‑elles dans les annotations, et leur apparence peut‑elle être préservée lors de l'exportation ?** + +Oui. Aspose.Slides prend en charge [l’intégration des polices](/slides/fr/nodejs-java/embedded-font/) dans la présentation et contrôle l’intégration des polices lors des exportations comme le [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/), garantissant que les annotations conservent le même aspect sur différents systèmes. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..5b2f1b0812 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: Axe du graphique +type: docs +url: /fr/nodejs-java/chart-axis/ +keywords: "Axe de graphique PowerPoint, Graphiques de présentation, Java, Manipuler l'axe du graphique, Données du graphique" +description: "Comment modifier l'axe du graphique PowerPoint en JavaScript" +--- + +## **Obtenir les valeurs maximales sur l'axe vertical des graphiques** + +Aspose.Slides for Node.js via Java vous permet d'obtenir les valeurs minimale et maximale sur un axe vertical. Suivez ces étapes : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Accédez à la première diapositive. +1. Ajoutez un graphique avec des données par défaut. +1. Obtenez la valeur maximale réelle sur l'axe. +1. Obtenez la valeur minimale réelle sur l'axe. +1. Obtenez l'unité principale réelle de l'axe. +1. Obtenez l'unité secondaire réelle de l'axe. +1. Obtenez l'échelle de l'unité principale réelle de l'axe. +1. Obtenez l'échelle de l'unité secondaire réelle de l'axe. + +Ce code d'exemple—une implémentation des étapes ci‑above—vous montre comment obtenir les valeurs requises en JavaScript : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // Enregistre la présentation + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Échanger les données entre les axes** + +Aspose.Slides vous permet d'échanger rapidement les données entre les axes—les données représentées sur l'axe vertical (axe y) se déplacent vers l'axe horizontal (axe x) et vice‑versa. + +Ce code JavaScript vous montre comment réaliser l'échange de données entre les axes d'un graphique : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // Inverse les lignes et les colonnes + chart.getChartData().switchRowColumn(); + // Enregistre la présentation + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Désactiver l'axe vertical pour les graphiques en courbes** + +Ce code JavaScript vous montre comment masquer l'axe vertical d'un graphique en courbes : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Désactiver l'axe horizontal pour les graphiques en courbes** + +Ce code vous montre comment masquer l'axe horizontal d'un graphique en courbes : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Modifier l'axe des catégories** + +En utilisant la propriété **CategoryAxisType**, vous pouvez spécifier le type d'axe des catégories souhaité (**date** ou **text**). Ce code en JavaScript montre l'opération : +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Définir le format de date pour la valeur de l'axe des catégories** + +Aspose.Slides for Node.js via Java vous permet de définir le format de date pour une valeur d'axe des catégories. L'opération est démontrée dans ce code JavaScript : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **Définir l'angle de rotation du titre de l'axe du graphique** + +Aspose.Slides for Node.js via Java vous permet de définir l'angle de rotation du titre d'un axe de graphique. Ce code JavaScript montre l'opération : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la position de l'axe dans un axe de catégorie ou de valeur** + +Aspose.Slides for Node.js via Java vous permet de définir la position de l'axe dans un axe de catégorie ou de valeur. Ce code JavaScript montre comment effectuer la tâche : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Activer l'étiquette d'unité d'affichage sur l'axe des valeurs du graphique** + +Aspose.Slides for Node.js via Java vous permet de configurer un graphique pour afficher une étiquette d'unité sur son axe des valeurs. Ce code JavaScript montre l'opération : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Comment définir la valeur à laquelle un axe croise l'autre (croisement d'axes) ?** + +Les axes offrent un [paramètre de croisement](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/) : vous pouvez choisir de croiser à zéro, au maximum de la catégorie/valeur, ou à une valeur numérique spécifique. Cela est utile pour déplacer l'axe X vers le haut ou le bas ou pour mettre en évidence une ligne de base. + +**Comment positionner les libellés des graduations par rapport à l'axe (à côté, à l'extérieur, à l'intérieur) ?** + +Définissez la [position du libellé](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/) sur "cross", "outside" ou "inside". Cela affecte la lisibilité et aide à économiser de l'espace, surtout sur les petits graphiques. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..f8885a4774 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: Étiquette de données du graphique +type: docs +url: /fr/nodejs-java/chart-data-label/ +keywords: "Étiquette de données du graphique,distance d'étiquette, Java, Aspose.Slides for Node.js via Java" +description: "Définir l'étiquette de données du graphique PowerPoint et la distance en JavaScript" +--- + +Les étiquettes de données d'un graphique affichent des détails sur les séries de données du graphique ou sur des points de données individuels. Elles permettent aux lecteurs d'identifier rapidement les séries de données et rendent les graphiques plus faciles à comprendre. + +## **Définir la précision des données dans les étiquettes de données du graphique** + +Ce code JavaScript vous montre comment définir la précision des données dans une étiquette de données du graphique: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Afficher le pourcentage comme étiquettes** + +Aspose.Slides pour Node.js via Java vous permet de définir des étiquettes de pourcentage sur les graphiques affichés. Ce code JavaScript montre l'opération: +```javascript +// Crée une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Récupère la première diapositive + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // Enregistre la présentation contenant le graphique + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir le signe de pourcentage avec les étiquettes de données du graphique** + +Ce code JavaScript vous montre comment définir le signe de pourcentage pour une étiquette de données du graphique: +```javascript +// Crée une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtient la référence d'une diapositive via son index + var slide = pres.getSlides().get_Item(0); + // Crée le graphique PercentsStackedColumn sur une diapositive + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // Définit NumberFormatLinkedToSource à false + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // Obtient la feuille de données du graphique + var workbook = chart.getChartData().getChartDataWorkbook(); + // Ajoute une nouvelle série + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // Définit la couleur de remplissage de la série + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Définit les propriétés de LabelFormat + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // Ajoute une nouvelle série + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // Définit le type de remplissage et la couleur + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // Enregistre la présentation sur le disque + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir les distances des étiquettes par rapport à l'axe** + +Ce code JavaScript vous montre comment définir la distance de l'étiquette par rapport à un axe de catégorie lorsque vous travaillez avec un graphique tracé à partir d'axes: +```javascript +// Crée une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtient la référence d'une diapositive + var sld = pres.getSlides().get_Item(0); + // Crée un graphique sur la diapositive + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // Définit la distance de l'étiquette par rapport à un axe + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // Enregistre la présentation sur le disque + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajuster la position de l'étiquette** + +Lorsque vous créez un graphique qui ne repose sur aucun axe, comme un diagramme circulaire, les étiquettes de données du graphique peuvent se retrouver trop proches de son bord. Dans ce cas, vous devez ajuster la position de l'étiquette de données afin que les lignes de repère soient affichées clairement. + +Ce code JavaScript vous montre comment ajuster la position de l'étiquette sur un diagramme circulaire: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **FAQ** + +**Comment puis‑je empêcher les étiquettes de données de se chevaucher sur des graphiques denses ?** + +Combinez le placement automatique des étiquettes, les lignes de repère et la réduction de la taille de la police ; si nécessaire, masquez certains champs (par exemple, la catégorie) ou n'affichez les étiquettes que pour les points extrêmes/clé. + +**Comment désactiver les étiquettes uniquement pour les valeurs zéro, négatives ou vides ?** + +Filtrez les points de données avant d'activer les étiquettes et désactivez l'affichage pour les valeurs égales à 0, les valeurs négatives ou les valeurs manquantes selon une règle définie. + +**Comment garantir un style d'étiquette cohérent lors de l'exportation vers PDF/images ?** + +Définissez explicitement les polices (famille, taille) et vérifiez que la police est disponible du côté du rendu afin d'éviter le recours à une police de secours. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..d063068474 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: Marqueur de données de graphique +type: docs +url: /fr/nodejs-java/chart-data-marker/ +--- + +## **Définir les options des marqueurs de graphique** + +Les marqueurs peuvent être définis sur les points de données du graphique dans des séries spécifiques. Pour définir les options des marqueurs de graphique, veuillez suivre les étapes ci-dessous : + +- Instancier la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Créer le graphique par défaut. +- Définir l'image. +- Prendre la première série du graphique. +- Ajouter un nouveau point de données. +- Enregistrer la présentation sur le disque. + +Dans l'exemple ci-dessous, nous avons défini les options des marqueurs de graphique au niveau des points de données. +```javascript +// Création d'une présentation vide +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Création du graphique par défaut + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // Obtention de l'index de la feuille de calcul de données du graphique par défaut + var defaultWorksheetIndex = 0; + // Obtention de la feuille de calcul des données du graphique + var fact = chart.getChartData().getChartDataWorkbook(); + // Supprimer la série de démonstration + chart.getChartData().getSeries().clear(); + // Ajouter une nouvelle série + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // Charger l'image 1 + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // Charger l'image 2 + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // Prendre la première série du graphique + var series = chart.getChartData().getSeries().get_Item(0); + // Ajouter un nouveau point (1:3) ici. + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // Modification du marqueur de la série du graphique + series.getMarker().setSize(15); + // Enregistrer la présentation avec le graphique + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quelles formes de marqueur sont disponibles nativement ?** + +Des formes standard sont disponibles (cercle, carré, losange, triangle, etc.) ; la liste est définie par l'énumération [MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/). Si vous avez besoin d'une forme non standard, utilisez un marqueur avec un remplissage d'image pour reproduire des visuels personnalisés. + +**Les marqueurs sont‑ils conservés lors de l'exportation d'un graphique vers une image ou un SVG ?** + +Oui. Lors du rendu des graphiques vers des [formats raster](/slides/fr/nodejs-java/convert-powerpoint-to-png/) ou lors de l'enregistrement des [formes au format SVG](/slides/fr/nodejs-java/render-a-slide-as-an-svg-image/), les marqueurs conservent leur apparence et leurs paramètres, y compris la taille, le remplissage et le contour. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..c281ad5914 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: Tableau de données du graphique +type: docs +url: /fr/nodejs-java/chart-data-table/ +--- + +## **Définir les propriétés de police pour le tableau de données du graphique** + +Aspose.Slides pour Node.js via Java prend en charge la modification de la couleur des catégories dans une couleur de série. + +1. Instancier l'objet de classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Ajouter un graphique sur la diapositive. +1. définir le tableau du graphique. +1. Définir la hauteur de la police. +1. Enregistrer la présentation modifiée. + +Un exemple d'échantillon est donné ci‑dessous. +```javascript +// Création d'une présentation vide +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je afficher de petites clés de légende à côté des valeurs dans le tableau de données du graphique?** + +Oui. Le tableau de données prend en charge les [clés de légende](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/), et vous pouvez les activer ou les désactiver. + +**Le tableau de données sera-t-il conservé lors de l'exportation de la présentation vers PDF, HTML ou images?** + +Oui. Aspose.Slides rend le graphique comme partie de la diapositive, de sorte que le [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/fr/nodejs-java/convert-powerpoint-to-html/)/[image](/slides/fr/nodejs-java/convert-powerpoint-to-png/) exporté inclut le graphique avec son tableau de données. + +**Les tableaux de données sont-ils pris en charge pour les graphiques provenant d'un fichier modèle?** + +Oui. Pour tout graphique chargé depuis une présentation ou un modèle existant, vous pouvez vérifier et modifier si le tableau de données est affiché en utilisant la propriété du graphique via la méthode [is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/). + +**Comment puis-je rapidement identifier quels graphiques d'un fichier ont le tableau de données activé?** + +Inspectez la propriété de chaque graphique qui indique si le tableau de données est affiché et parcourez les diapositives pour identifier les graphiques où il est activé. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..79e28b8ac1 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,110 @@ +--- +title: Légende du graphique +type: docs +url: /fr/nodejs-java/chart-legend/ +--- + +## **Positionnement de la légende** + +Pour définir les propriétés de la légende, suivez les étapes ci-dessous : + +- Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Obtenez la référence de la diapositive. +- Ajoutez un graphique sur la diapositive. +- Définissez les propriétés de la légende. +- Enregistrez la présentation au format PPTX. + +Dans l'exemple ci-dessous, nous avons défini la position et la taille de la légende du graphique. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Obtenir la référence de la diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter un graphique à colonnes groupées sur la diapositive + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // Définir les propriétés de la légende + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // Enregistrer la présentation sur le disque + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la taille de police de la légende** + +Aspose.Slides pour Node.js via Java permet aux développeurs de définir la taille de police de la légende. Veuillez suivre les étapes ci-dessous : + +- Instanciez la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Créez le graphique par défaut. +- Définissez la taille de la police. +- Définissez la valeur minimale de l'axe. +- Définissez la valeur maximale de l'axe. +- Enregistrez la présentation sur le disque. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la taille de police de la légende individuelle** + +Aspose.Slides pour Node.js via Java permet aux développeurs de définir la taille de police des entrées individuelles de la légende. Veuillez suivre les étapes ci-dessous : + +- Instanciez la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Créez le graphique par défaut. +- Accédez à l'entrée de légende. +- Définissez la taille de la police. +- Définissez la valeur minimale de l'axe. +- Définissez la valeur maximale de l'axe. +- Enregistrez la présentation sur le disque. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis-je activer la légende afin que le graphique réserve automatiquement de l'espace pour elle au lieu de la superposer ?** +Oui. Utilisez le mode non superposé ([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/)) ; dans ce cas, la zone du tracé se rétrécira pour accueillir la légende. + +**Puis-je créer des étiquettes de légende multi-lignes ?** +Oui. Les longues étiquettes se renvoient automatiquement lorsqu'il n'y a pas assez d'espace ; les sauts de ligne forcés sont pris en charge via les caractères de nouvelle ligne dans le nom de la série. + +**Comment faire en sorte que la légende suive le schéma de couleurs du thème de la présentation ?** +N'appliquez pas de couleurs, remplissages ou polices explicites à la légende ou à son texte. Elle héritera alors du thème et se mettra à jour correctement lorsque le design changera. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..b972536b70 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: Zone de tracé du graphique +type: docs +url: /fr/nodejs-java/chart-plot-area/ +--- + +## **Obtenir la largeur et la hauteur de la zone de tracé du graphique** + +Aspose.Slides pour Node.js via Java fournit une API simple pour . + +1. Créer une instance de la classe[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Accéder à la première diapositive. +1. Ajouter un graphique avec les données par défaut. +1. Appeler la méthode[Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) avant d’obtenir les valeurs réelles. +1. Obtient la position X réelle (gauche) de l’élément du graphique par rapport au coin supérieur gauche du graphique. +1. Obtient le haut réel de l’élément du graphique par rapport au coin supérieur gauche du graphique. +1. Obtient la largeur réelle de l’élément du graphique. +1. Obtient la hauteur réelle de l’élément du graphique. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir le mode de disposition de la zone de tracé du graphique** + +Aspose.Slides pour Node.js via Java fournit une API simple pour définir le mode de disposition de la zone de tracé du graphique. Les méthodes[**setLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#setLayoutTargetType-int-) et[**getLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#getLayoutTargetType--) ont été ajoutées à la classe[**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea) et à la classe[**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea). Si la disposition de la zone de tracé est définie manuellement, cette propriété indique s’il faut disposer la zone de tracé par son intérieur (sans inclure les axes et les libellés d’axes) ou par son extérieur (en incluant les axes et les libellés d’axes). Il existe deux valeurs possibles qui sont définies dans l’énumération[**LayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType) enum. + +- [**LayoutTargetType.Inner**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Inner) - indique que la taille de la zone de tracé détermine la taille de la zone de tracé, sans inclure les graduations et les libellés d’axes. +- [**LayoutTargetType.Outer**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Outer) - indique que la taille de la zone de tracé détermine la taille de la zone de tracé, les graduations et les libellés d’axes. + +Un exemple de code est fourni ci-dessous. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Dans quelles unités sont retournés les X réels, Y réels, largeur réelle et hauteur réelle ?** + +En points; 1 pouce = 72 points. Ce sont les unités de coordonnées d'Aspose.Slides. + +**En quoi la zone de tracé diffère-t-elle de la zone du graphique en termes de contenu ?** + +La zone de tracé est la région de tracé des données (séries, quadrillages, lignes de tendance, etc.); la zone du graphique comprend les éléments environnants (titre, légende, etc.). Dans les graphiques 3D, la zone de tracé inclut également les parois/plancher et les axes. + +**Comment les X, Y, largeur et hauteur de la zone de tracé sont-ils interprétés lorsque la disposition est manuelle ?** + +Ce sont des fractions (0-1) de la taille globale du graphique; dans ce mode, le positionnement automatique est désactivé et les fractions que vous définissez sont utilisées. + +**Pourquoi la position de la zone de tracé a-t-elle changé après l’ajout ou le déplacement de la légende ?** + +La légende se situe dans la zone du graphique à l’extérieur de la zone de tracé mais influence la disposition et l’espace disponible, de sorte que la zone de tracé peut se déplacer lorsque le positionnement automatique est actif. (Ceci est le comportement standard des graphiques PowerPoint.) \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..97754328d4 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,336 @@ +--- +title: Séries de graphique +type: docs +url: /fr/nodejs-java/chart-series/ +keywords: "Séries de graphique, couleur de série, présentation PowerPoint, Java, Aspose.Slides pour Node.js via Java" +description: "Séries de graphique dans les présentations PowerPoint en JavaScript" +--- + +Une série est une ligne ou une colonne de nombres tracée dans un graphique. + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **Définir le chevauchement des séries de graphique** + +Avec la méthode [ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap), vous pouvez spécifier le degré de chevauchement des barres et des colonnes sur un graphique 2D (plage : -100 à 100). Cette propriété s’applique à toutes les séries du groupe de séries parent : il s’agit d’une projection de la propriété de groupe appropriée. Par conséquent, cette propriété est en lecture seule. + +Utilisez la propriété en lecture/écriture `ParentSeriesGroup.getOverlap` pour définir la valeur souhaitée pour `Overlap`. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Ajoutez un graphique à colonnes groupées sur une diapositive. +1. Accédez à la première série du graphique. +1. Accédez au `ParentSeriesGroup` de la série et définissez la valeur de chevauchement souhaitée pour la série. +1. Enregistrez la présentation modifiée dans un fichier PPTX. + +Ce code JavaScript vous montre comment définir le chevauchement d’une série de graphique : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Ajoute le graphique + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // Définit le chevauchement de la série + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // Enregistre le fichier de présentation sur le disque + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Modifier la couleur de la série** + +Aspose.Slides for Node.js via Java vous permet de modifier la couleur d’une série de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Ajoutez un graphique sur la diapositive. +1. Accédez à la série dont vous souhaitez changer la couleur. +1. Définissez le type de remplissage et la couleur de remplissage souhaités. +1. Enregistrez la présentation modifiée. + +Ce code JavaScript vous montre comment modifier la couleur d’une série : +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Modifier la couleur de la catégorie de série** + +Aspose.Slides for Node.js via Java vous permet de modifier la couleur d’une catégorie de série de cette manière : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Ajoutez un graphique sur la diapositive. +1. Accédez à la catégorie de série dont vous souhaitez changer la couleur. +1. Définissez le type de remplissage et la couleur de remplissage souhaités. +1. Enregistrez la présentation modifiée. + +Ce code JavaScript vous montre comment modifier la couleur d’une catégorie de série : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Modifier le nom de la série** + +Par défaut, les noms de légende d’un graphique sont le contenu des cellules situées au-dessus de chaque colonne ou ligne de données. + +Dans notre exemple (image d’illustration), + +* les colonnes sont *Series 1, Series 2,* et *Series 3* ; +* les lignes sont *Category 1, Category 2, Category 3,* et *Category 4*. + +Aspose.Slides for Node.js via Java vous permet de mettre à jour ou de modifier le nom d’une série dans les données du graphique et la légende. + +Ce code JavaScript vous montre comment modifier le nom d’une série dans les données du graphique `ChartDataWorkbook` : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Ce code JavaScript vous montre comment modifier le nom d’une série dans la légende via `Series` : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la couleur de remplissage automatique des séries de graphique** + +Aspose.Slides for Node.js via Java vous permet de définir la couleur de remplissage automatique des séries de graphique à l’intérieur d’une zone de tracé de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtenez une référence à une diapositive par son indice. +1. Ajoutez un graphique avec des données par défaut en fonction du type souhaité (dans l’exemple ci‑dessous, nous avons utilisé `ChartType.ClusteredColumn`). +1. Accédez aux séries du graphique et définissez la couleur de remplissage sur Automatic. +1. Enregistrez la présentation dans un fichier PPTX. + +Ce code JavaScript vous montre comment définir la couleur de remplissage automatique d’une série de graphique : +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Crée un graphique à colonnes groupées + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // Définit le format de remplissage des séries sur automatique + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // Enregistre le fichier de présentation sur le disque + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir les couleurs de remplissage inversées des séries de graphique** + +Aspose.Slides vous permet de définir les couleurs de remplissage inversées des séries de graphique à l’intérieur d’une zone de tracé de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Obtenez une référence à une diapositive par son indice. +1. Ajoutez un graphique avec des données par défaut en fonction du type souhaité (dans l’exemple ci‑dessous, nous avons utilisé `ChartType.ClusteredColumn`). +1. Accédez aux séries du graphique et définissez la couleur de remplissage sur invert. +1. Enregistrez la présentation dans un fichier PPTX. + +Ce code JavaScript montre l’opération : +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // Ajoute de nouvelles séries et catégories + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // Prend la première série du graphique et remplit ses données de série. + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Inverser la série lorsque la valeur est négative** + +Aspose.Slides vous permet de définir les inversions via la méthode `ChartDataPoint.setInvertIfNegative`. Lorsque l’inversion est définie à l’aide de ces propriétés, le point de données inverse ses couleurs lorsqu’il reçoit une valeur négative. + +Ce code JavaScript montre l’opération : +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Effacer les données de points de données spécifiques** + +Aspose.Slides for Node.js via Java vous permet d’effacer les données des `DataPoints` d’une série de graphique spécifique de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive par son indice. +3. Obtenez la référence d’un graphique par son indice. +4. Parcourez tous les `DataPoints` du graphique et définissez `XValue` et `YValue` sur null. +5. Effacez tous les `DataPoints` pour la série de graphique spécifique. +6. Enregistrez la présentation modifiée dans un fichier PPTX. + +Ce code JavaScript montre l’opération : +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir la largeur d’écart de la série** + +Aspose.Slides for Node.js via Java vous permet de définir la largeur d’écart d’une série via la propriété **`GapWidth`** de cette façon : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Accédez à la première diapositive. +1. Ajoutez un graphique avec des données par défaut. +1. Accédez à n’importe quelle série du graphique. +1. Définissez la propriété `GapWidth`. +1. Enregistrez la présentation modifiée dans un fichier PPTX. + +Ce code JavaScript vous montre comment définir la largeur d’écart d’une série : +```javascript +// Crée une présentation vide +var pres = new aspose.slides.Presentation(); +try { + // Accède à la première diapositive de la présentation + var slide = pres.getSlides().get_Item(0); + // Ajoute un graphique avec des données par défaut + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // Définit l'index de la feuille de données du graphique + var defaultWorksheetIndex = 0; + // Obtient la feuille de calcul des données du graphique + var fact = chart.getChartData().getChartDataWorkbook(); + // Ajoute des séries + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Ajoute des catégories + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Prend la deuxième série du graphique + var series = chart.getChartData().getSeries().get_Item(1); + // Remplit les données de la série + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Définit la valeur GapWidth + series.getParentSeriesGroup().setGapWidth(50); + // Enregistre la présentation sur le disque + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Existe‑t‑il une limite au nombre de séries qu’un graphique unique peut contenir ?** + +Aspose.Slides n’impose aucune limite fixe au nombre de séries que vous ajoutez. La contrainte pratique dépend de la lisibilité du graphique et de la mémoire disponible pour votre application. + +**Que faire si les colonnes d’un groupe sont trop proches ou trop éloignées ?** + +Ajustez le paramètre **Gap Width** pour cette série (ou son groupe de séries parent). Augmenter la valeur élargit l’espace entre les colonnes, tandis que la diminuer les rapproche. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..17776fea76 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: Barre d'erreur +type: docs +url: /fr/nodejs-java/error-bar/ +--- + +## **Ajouter une barre d'erreur** + +Aspose.Slides for Node.js via Java fournit une API simple pour gérer les valeurs des barres d'erreur. Le code d'exemple s'applique lors de l'utilisation d'un type de valeur personnalisé. Pour spécifier une valeur, utilisez la propriété **ErrorBarCustomValues** d'un point de données spécifique dans la collection [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) de la série : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Ajoutez un graphique à bulles sur la diapositive souhaitée. +1. Accédez à la première série du graphique et définissez le format de la barre d'erreur X. +1. Accédez à la première série du graphique et définissez le format de la barre d'erreur Y. +1. Définissez les valeurs des barres et leur format. +1. Enregistrez la présentation modifiée dans un fichier PPTX. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Création d'un graphique à bulles + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Ajout de barres d'erreur et définition de leur format + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // Enregistrement de la présentation + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajouter une valeur de barre d'erreur personnalisée** + +Aspose.Slides for Node.js via Java fournit une API simple pour gérer les valeurs de barres d'erreur personnalisées. Le code d'exemple s'applique lorsque la propriété [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) est égale à **Custom**. Pour spécifier une valeur, utilisez la propriété **ErrorBarCustomValues** d'un point de données spécifique dans la collection [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) de la série : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Ajoutez un graphique à bulles sur la diapositive souhaitée. +1. Accédez à la première série du graphique et définissez le format de la barre d'erreur X. +1. Accédez à la première série du graphique et définissez le format de la barre d'erreur Y. +1. Accédez aux points de données individuels de la série de graphique et définissez les valeurs de la barre d'erreur pour chaque point de données de la série. +1. Définissez les valeurs des barres et leur format. +1. Enregistrez la présentation modifiée dans un fichier PPTX. +```javascript +// Créer une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Créer un graphique à bulles + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Ajout de barres d'erreur personnalisées et définition de leur format + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // Accéder au point de données de la série du graphique et définir les valeurs des barres d'erreur pour + // point individuel + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // Définir les barres d'erreur pour les points de la série du graphique + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // Enregistrement de la présentation + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Que se passe-t-il avec les barres d'erreur lors de l'exportation d'une présentation en PDF ou en images ?** + +Elles sont rendues comme partie du graphique et conservées pendant la conversion avec le reste du formatage du graphique, en supposant une version ou un moteur compatible. + +**Les barres d'erreur peuvent-elles être combinées avec des marqueurs et des étiquettes de données ?** + +Oui. Les barres d'erreur sont un élément distinct et sont compatibles avec les marqueurs et les étiquettes de données ; si les éléments se chevauchent, vous devrez peut‑être ajuster le formatage. + +**Où puis-je trouver la liste des propriétés et des énumérations pour travailler avec les barres d'erreur dans l'API ?** + +Dans la référence de l'API : la classe [ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) et les énumérations associées [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) et [ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/). \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..404e3f978c --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: Ligne de tendance +type: docs +url: /fr/nodejs-java/trend-line/ +--- + +## **Ajouter une ligne de tendance** + +Aspose.Slides for Node.js via Java fournit une API simple pour gérer différentes lignes de tendance de graphiques : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Obtenez la référence d’une diapositive à son index. +3. Ajoutez un graphique avec des données par défaut ainsi que le type souhaité (cet exemple utilise ChartType.ClusteredColumn). +4. Ajout d’une ligne de tendance exponentielle pour la série 1 du graphique. +5. Ajout d’une ligne de tendance linéaire pour la série 1 du graphique. +6. Ajout d’une ligne de tendance logarithmique pour la série 2 du graphique. +7. Ajout d’une ligne de tendance moyenne mobile pour la série 2 du graphique. +8. Ajout d’une ligne de tendance polynomiale pour la série 3 du graphique. +9. Ajout d’une ligne de tendance puissance pour la série 3 du graphique. +10. Enregistrez la présentation modifiée dans un fichier PPTX. + +Le code suivant est utilisé pour créer un graphique avec des lignes de tendance. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Création d'un graphique à colonnes groupées + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // Ajout d'une ligne de tendance exponentielle pour la série 1 du graphique + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // Ajout d'une ligne de tendance linéaire pour la série 1 du graphique + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Ajout d'une ligne de tendance logarithmique pour la série 2 du graphique + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // Ajout d'une ligne de tendance moyenne mobile pour la série 2 du graphique + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // Ajout d'une ligne de tendance polynomiale pour la série 3 du graphique + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // Ajout d'une ligne de tendance puissance pour la série 3 du graphique + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // Enregistrement de la présentation + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ajouter une ligne personnalisée** + +Aspose.Slides for Node.js via Java fournit une API simple pour ajouter des lignes personnalisées dans un graphique. Pour ajouter une simple ligne droite à une diapositive sélectionnée de la présentation, veuillez suivre les étapes ci‑dessous : + +- Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) +- Obtenez la référence d’une diapositive en utilisant son index +- Créez un nouveau graphique en utilisant la méthode AddChart exposée par l’objet Shapes +- Ajoutez une AutoShape de type Line en utilisant la méthode AddAutoShape exposée par l’objet Shapes +- Définissez la couleur des lignes de la forme. +- Enregistrez la présentation modifiée dans un fichier PPTX + +Le code suivant est utilisé pour créer un graphique avec des lignes personnalisées. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Que signifient « forward » et « backward » pour une ligne de tendance ?** + +Il s’agit des longueurs de la ligne de tendance projetées en avant/arrière : pour les graphiques de dispersion (XY) — en unités d’axe ; pour les graphiques non‑dispersion — en nombre de catégories. Seules les valeurs non négatives sont autorisées. + +**La ligne de tendance sera‑t‑elle conservée lors de l’exportation de la présentation en PDF ou SVG, ou lors du rendu d’une diapositive en image ?** + +Oui. Aspose.Slides convertit les présentations en [PDF](/slides/fr/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/fr/nodejs-java/render-a-slide-as-an-svg-image/) et rend les graphiques en images ; les lignes de tendance, en tant que partie du graphique, sont conservées pendant ces opérations. Une méthode est également disponible pour [exporter une image du graphique](/slides/fr/nodejs-java/create-shape-thumbnails/) lui‑même. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..1719898bd1 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,328 @@ +--- +title: Mise en forme des graphiques +type: docs +weight: 60 +url: /fr/nodejs-java/chart-formatting/ +--- + +## **Format des entités de graphique** + +Aspose.Slides for Node.js via Java permet aux développeurs d’ajouter des graphiques personnalisés à leurs diapositives depuis le départ. Cet article explique comment formater différentes entités de graphique, y compris les axes de catégorie et de valeur. + +Aspose.Slides for Node.js via Java fournit une API simple pour gérer différentes entités de graphique et les formater à l’aide de valeurs personnalisées : + +1. Créez une instance de la classe [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Obtenez une référence à une diapositive par son indice. +1. Ajoutez un graphique avec des données par défaut ainsi que le type souhaité (dans cet exemple nous utiliserons ChartType.LineWithMarkers). +1. Accédez à l’Axe de valeur du graphique et définissez les propriétés suivantes : + 1. Définir le **Line format** pour les lignes de la grille principale de l’Axe de valeur + 1. Définir le **Line format** pour les lignes de la grille secondaire de l’Axe de valeur + 1. Définir le **Number Format** pour l’Axe de valeur + 1. Définir les **Min, Max, Major and Minor units** pour l’Axe de valeur + 1. Définir les **Text Properties** pour les données de l’Axe de valeur + 1. Définir le **Title** pour l’Axe de valeur + 1. Définir le **Line Format** pour l’Axe de valeur +1. Accédez à l’Axe de catégorie du graphique et définissez les propriétés suivantes : + 1. Définir le **Line format** pour les lignes de la grille principale de l’Axe de catégorie + 1. Définir le **Line format** pour les lignes de la grille secondaire de l’Axe de catégorie + 1. Définir les **Text Properties** pour les données de l’Axe de catégorie + 1. Définir le **Title** pour l’Axe de catégorie + 1. Définir le **Label Positioning** pour l’Axe de catégorie + 1. Définir l’**Rotation Angle** pour les libellés de l’Axe de catégorie +1. Accédez à la légende du graphique et définissez les **Text Properties** pour celle‑ci +1. Affichez les légendes du graphique sans chevaucher le graphique +1. Accédez à l’**Secondary Value Axis** du graphique et définissez les propriétés suivantes : + 1. Activez l’**Value Axis** secondaire + 1. Définir le **Line Format** pour l’**Value Axis** secondaire + 1. Définir le **Number Format** pour l’**Value Axis** secondaire + 1. Définir les **Min, Max, Major and Minor units** pour l’**Value Axis** secondaire +1. Tracez maintenant la première série de graphique sur l’**Value Axis** secondaire +1. Définissez la couleur de remplissage du mur arrière du graphique +1. Définissez la couleur de remplissage de la zone de tracé du graphique +1. Enregistrez la présentation modifiée dans un fichier PPTX +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Accès à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajout du graphique d'exemple + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // Définition du titre du graphique + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Définition du format des lignes de grille majeures pour l'axe des valeurs + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Définition du format des lignes de grille mineures pour l'axe des valeurs + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Définition du format numérique de l'axe des valeurs + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // Définition des valeurs maximale et minimale du graphique + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // Définition des propriétés de texte de l'axe des valeurs + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Définition du titre de l'axe des valeurs + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Définition du format des lignes de grille majeures pour l'axe des catégories + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // Définition du format des lignes de grille mineures pour l'axe des catégories + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Définition des propriétés de texte de l'axe des catégories + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // Définition du titre de la catégorie + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Définition de la position de l'étiquette de l'axe des catégories + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // Définition de l'angle de rotation de l'étiquette de l'axe des catégories + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // Définition des propriétés de texte des légendes + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // Définir l'affichage des légendes du graphique sans chevaucher le graphique + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // Définition de l'axe des valeurs secondaire + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // Définition du format numérique de l'axe des valeurs secondaire + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // Définition des valeurs maximale et minimale du graphique + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // Définition de la couleur du mur arrière du graphique + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Définition de la couleur de la zone de tracé + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // Enregistrer la présentation + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir les propriétés de police pour le graphique** + +Aspose.Slides for Node.js via Java prend en charge la définition des propriétés liées aux polices pour le graphique. Veuillez suivre les étapes ci‑dessous pour définir les propriétés de police du graphique. + +- Instanciez l’objet de classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) . +- Ajoutez un graphique sur la diapositive. +- Définissez la hauteur de la police. +- Enregistrez la présentation modifiée. + +L’exemple d’échantillon ci‑dessous est fourni. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Définir le format numérique** + +Aspose.Slides for Node.js via Java fournit une API simple pour gérer le format des données de graphique : + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +1. Obtenez une référence à une diapositive par son indice. +1. Ajoutez un graphique avec des données par défaut ainsi que le type souhaité (cet exemple utilise **ChartType.ClusteredColumn**). +1. Définissez le format numérique prédéfini parmi les valeurs prédéfinies possibles. +1. Parcourez chaque cellule de données du graphique dans chaque série de graphique et définissez le format numérique des données du graphique. +1. Enregistrez la présentation. +1. Définissez le format numérique personnalisé. +1. Parcourez chaque cellule de données du graphique dans chaque série et définissez un format numérique différent pour les données du graphique. +1. Enregistrez la présentation. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + // Accédez à la première diapositive de la présentation + var slide = pres.getSlides().get_Item(0); + // Ajout d'un graphique à colonnes groupées par défaut + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // Accès à la collection des séries du graphique + var series = chart.getChartData().getSeries(); + // Parcourir chaque série du graphique + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // Parcourir chaque cellule de données dans la série + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // Définir le format numérique + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // Enregistrement de la présentation + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Les valeurs de format numérique prédéfini possibles ainsi que leur indice prédéfini, pouvant être utilisées, sont présentées ci‑dessous : + +|**0**|General| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **Définir les coins arrondis de la zone du graphique** + +Aspose.Slides for Node.js via Java prend en charge la définition de la zone du graphique. Les méthodes [**hasRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#hasRoundedCorners--) et [**setRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#setRoundedCorners-boolean-) ont été ajoutées à la classe [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart) et à la classe [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart). + +1. Instanciez l’objet de classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) . +2. Ajoutez un graphique sur la diapositive. +3. Définissez le type de remplissage et la couleur de remplissage du graphique +4. Définissez la propriété de coins arrondis sur True. +5. Enregistrez la présentation modifiée. + +L’exemple d’échantillon ci‑dessus est fourni. +```javascript +// Créez une instance de la classe Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Puis‑je définir des remplissages semi‑transparents pour les colonnes/zones tout en gardant la bordure opaque ?** + +Oui. La transparence du remplissage et le contour sont configurés séparément. Cela est utile pour améliorer la lisibilité de la grille et des données dans des visualisations denses. + +**Comment gérer les libellés de données lorsqu’ils se chevauchent ?** + +Réduisez la taille de la police, désactivez les composants de libellé non essentiels (par exemple, les catégories), définissez le décalage/position du libellé, n’affichez les libellés que pour les points sélectionnés si nécessaire, ou basculez le format en « valeur + légende ». + +**Puis‑je appliquer des remplissages en dégradé ou en motif aux séries ?** + +Oui. Les remplissages plein et en dégradé/motif sont généralement disponibles. En pratique, utilisez les dégradés avec parcimonie et évitez les combinaisons qui réduisent le contraste avec la grille et le texte. \ No newline at end of file diff --git a/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..34188ae1c1 --- /dev/null +++ b/fr/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: Graphique 3D +type: docs +url: /fr/nodejs-java/3d-chart/ +--- + +## **Définir les propriétés RotationX, RotationY et DepthPercents d'un graphique 3D** + +Aspose.Slides for Node.js via Java fournit une API simple pour définir ces propriétés. Cet article vous aidera à définir différentes propriétés comme **Rotation X,Y, DepthPercents** etc. Le code d'exemple applique la configuration des propriétés mentionnées ci‑above. + +1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Accédez à la première diapositive. +1. Ajoutez un graphique avec les données par défaut. +1. Définissez les propriétés Rotation3D. +1. Enregistrez la présentation modifiée dans un fichier PPTX. +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Accéder à la première diapositive + var slide = pres.getSlides().get_Item(0); + // Ajouter un graphique avec les données par défaut + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // Définir l'index de la feuille de données du graphique + var defaultWorksheetIndex = 0; + // Obtenir la feuille de calcul des données du graphique + var fact = chart.getChartData().getChartDataWorkbook(); + // Ajouter des séries + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Ajouter des catégories + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Définir les propriétés Rotation3D + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // Prendre la deuxième série du graphique + var series = chart.getChartData().getSeries().get_Item(1); + // Maintenant remplissage des données de la série + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Définir la valeur Overlap + series.getParentSeriesGroup().setOverlap(100); + // Enregistrer la présentation sur le disque + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Quels types de graphiques prennent en charge le mode 3D dans Aspose.Slides ?** + +Aspose.Slides prend en charge les variantes 3D des graphiques en colonnes, y compris Column 3D, Clustered Column 3D, Stacked Column 3D et 100 % Stacked Column 3D, ainsi que les types 3D associés exposés via l’énumération [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/). Pour une liste exacte et à jour, consultez les membres de [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) dans la référence API de la version installée. + +**Puis-je obtenir une image raster d'un graphique 3D pour un rapport ou le Web ?** + +Oui. Vous pouvez exporter un graphique vers une image via l’[API du graphique](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage) ou [rendre toute la diapositive](/slides/fr/nodejs-java/convert-powerpoint-to-png/) dans des formats tels que PNG ou JPEG. Cela est utile lorsque vous avez besoin d’un aperçu pixel‑perfect ou souhaitez intégrer le graphique dans des documents, tableaux de bord ou pages Web sans nécessiter PowerPoint. + +**Quelle est la performance de la création et du rendu de grands graphiques 3D ?** + +Les performances dépendent du volume de données et de la complexité visuelle. Pour de meilleurs résultats, limitez les effets 3D, évitez les textures lourdes sur les murs et les zones de tracé, réduisez le nombre de points de données par série lorsque cela est possible, et rendez la sortie à une résolution et des dimensions appropriées pour correspondre aux besoins d’affichage ou d’impression ciblés. \ No newline at end of file diff --git a/fr/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/fr/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 479b0aafe9..e93f0f5331 100644 --- a/fr/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/fr/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -5,25 +5,25 @@ type: docs weight: 100 url: /fr/python-net/presentation-localization/ keywords: -- modifier la langue +- changer la langue - vérification orthographique - identifiant de langue - PowerPoint - présentation - Python - Aspose.Slides -description: "Automatisez la localisation des diapositives PowerPoint et OpenDocument en Python avec Aspose.Slides, en utilisant des exemples de code pratiques et des astuces pour un déploiement mondial plus rapide." +description: "Automatisez la localisation des diapositives PowerPoint et OpenDocument en Python avec Aspose.Slides, à l'aide d'exemples de code pratiques et de conseils pour un déploiement mondial plus rapide." --- ## **Modifier la langue pour la présentation et le texte de la forme** - Créer une instance de la classe [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/). - Obtenir la référence d’une diapositive en utilisant son Index. -- Ajouter une AutoShape de type Rectangle à la diapositive. +- Ajouter un AutoShape de type Rectangle à la diapositive. - Ajouter du texte au TextFrame. -- Définir l’ID de langue du texte. +- Définir l’ID de langue sur le texte. - Enregistrer la présentation au format PPTX. -L'implémentation des étapes ci‑dessus est illustrée ci‑dessous dans un exemple. +L’implémentation des étapes ci‑dessus est présentée ci‑dessous dans un exemple. ```py import aspose.slides as slides @@ -38,14 +38,14 @@ with slides.Presentation("pres.pptx") as pres: ## **FAQ** -**Est‑ce que language_id déclenche une traduction automatique du texte ?** +**L'ID de langue déclenche-t-il une traduction automatique du texte ?** -Non. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) dans Aspose.Slides stocke la langue pour la vérification orthographique et grammaticale, mais ne traduit pas le texte ni ne le modifie. Il s'agit de métadonnées que PowerPoint comprend pour la révision. +Non. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) dans Aspose.Slides stocke la langue pour la vérification orthographique et la correction grammaticale, mais il ne traduit pas et ne modifie pas le contenu du texte. Il s'agit de métadonnées que PowerPoint comprend pour la relecture. -**language_id affecte‑t‑il la césure et les sauts de ligne lors du rendu ?** +**L'ID de langue affecte-t-il la césure et les sauts de ligne lors du rendu ?** -Dans Aspose.Slides, [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) est destiné à la révision. La qualité de la césure et le retour à la ligne dépendent principalement de la disponibilité des [polices appropriées](/slides/fr/python-net/powerpoint-fonts/) et des paramètres de mise en page/retour à la ligne pour le système d'écriture. Pour garantir un rendu correct, assurez‑vous que les polices requises sont disponibles, configurez les [règles de substitution de polices](/slides/fr/python-net/font-substitution/), et/ou [intégrez les polices](/slides/fr/python-net/embedded-font/) dans la présentation. +Dans Aspose.Slides, [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) sert à la relecture. La qualité de la césure et le passage à la ligne dépendent principalement de la disponibilité des [polices appropriées](/slides/fr/python-net/powerpoint-fonts/) ainsi que des paramètres de mise en page/coupure de ligne du système d'écriture. Pour garantir un rendu correct, assurez-vous que les polices requises sont disponibles, configurez les [règles de substitution de police](/slides/fr/python-net/font-substitution/) et/ou [intégrez les polices](/slides/fr/python-net/embedded-font/) dans la présentation. -**Puis‑je définir différentes langues dans un même paragraphe ?** +**Puis‑je définir différentes langues au sein d'un même paragraphe ?** -Oui. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) est appliqué au niveau de la portion de texte, de sorte qu'un même paragraphe peut contenir plusieurs langues avec des paramètres de révision distincts. \ No newline at end of file +Oui. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) s'applique au niveau de la portion de texte, ainsi un seul paragraphe peut mélanger plusieurs langues avec des paramètres de relecture distincts. diff --git a/ja/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ja/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index c8f82fe1a6..003a50e79e 100644 --- a/ja/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/ja/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -3,19 +3,19 @@ title: プレゼンテーションのローカリゼーション type: docs weight: 100 url: /ja/net/presentation-localization/ -keywords: "言語を変更, スペルチェック, スペルチェック, スペルチェッカー, PowerPoint プレゼンテーション, C#, Csharp, Aspose.Slides for .NET" -description: "PowerPoint プレゼンテーションで言語を変更または確認します。C# または .NET でテキストのスペルチェックを行います" +keywords: "言語の変更, スペルチェック, スペル チェック, スペルチェッカー, PowerPoint プレゼンテーション, C#, Csharp, Aspose.Slides for .NET" +description: "PowerPoint プレゼンテーションの言語を変更またはチェックします。C# または .NET でテキストのスペルチェックを行います。" --- -## **プレゼンテーションとシェイプのテキストの言語を変更する** -- [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) クラスのインスタンスを作成します。 -- インデックスを使用してスライドの参照を取得します。 -- スライドに矩形タイプのAutoShapeを追加します。 -- TextFrameにテキストを追加します。 -- テキストにLanguage Idを設定します。 -- プレゼンテーションをPPTXファイルとして書き出します。 +## **プレゼンテーションと図形テキストの言語を変更する** +- Presentation クラスのインスタンスを作成します。[Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) +- インデックスを使用してスライドの参照を取得します。 +- スライドに矩形タイプの AutoShape を追加します。 +- TextFrame にテキストを追加します。 +- テキストに Language Id を設定します。 +- プレゼンテーションを PPTX ファイルとして書き出します。 -上記の手順の実装例を以下に示します。 +上記の手順の実装は以下の例で示します。 ```c# using (Presentation pres = new Presentation("test0.pptx")) { @@ -30,14 +30,14 @@ using (Presentation pres = new Presentation("test0.pptx")) ## **FAQ** -**language_idは自動テキスト翻訳をトリガーしますか?** +**Language ID は自動テキスト翻訳をトリガーしますか?** -いいえ。Aspose.Slides の [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) はスペルチェックと文法校正のための言語情報を保持しますが、テキスト内容を翻訳したり変更したりはしません。これは PowerPoint が校正用に理解するメタデータです。 +いいえ。[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) はスペルチェックや文法校正のための言語を格納しますが、テキスト内容を翻訳したり変更したりはしません。PowerPoint が校正のために理解するメタデータです。 -**language_idはレンダリング時のハイフネーションや改行に影響しますか?** +**Language ID はレンダリング時のハイフネーションや改行に影響しますか?** -Aspose.Slides では、[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) は校正用です。ハイフネーションの品質や改行は主に、[proper fonts](/slides/ja/net/powerpoint-fonts/) の利用可能性や、書記体系に対するレイアウト/改行設定に依存します。正しいレンダリングを確保するには、必要なフォントを利用可能にし、[font substitution rules](/slides/ja/net/font-substitution/) を設定するか、またはプレゼンテーションに[embed fonts](/slides/ja/net/embedded-font/) を埋め込んでください。 +Aspose.Slides では [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) は校正用です。ハイフネーションの品質や行折り返しは主に適切なフォントの有無や、書き込みシステム向けのレイアウト/改行設定に依存します。正しいレンダリングを確保するには、必要なフォントを利用可能にし、[font substitution rules](/slides/ja/net/font-substitution/) を設定し、または[embed fonts](/slides/ja/net/embedded-font/) をプレゼンテーションに埋め込んでください。 **単一の段落内で異なる言語を設定できますか?** -はい。[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) はテキストの部分レベルで適用されるため、単一の段落内で複数の言語を混在させ、それぞれ異なる校正設定を使用できます。 \ No newline at end of file +はい。[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) はテキストの部分レベルで適用されるため、単一の段落内で複数の言語を混在させ、各言語に異なる校正設定を適用できます。 diff --git a/ja/nodejs-java/developer-guide/3d-presentation/_index.md b/ja/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..e9f1af3618 --- /dev/null +++ b/ja/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,225 @@ +--- +title: 3D プレゼンテーション +type: docs +weight: 232 +url: /ja/nodejs-java/3d-presentation/ +--- + +## **概要** + +Aspose.Slides for Java 20.9 以降、プレゼンテーションで 3D を作成できるようになりました。PowerPoint 3D はプレゼンテーションに命を吹き込む手段です。実際のオブジェクトを 3D プレゼンテーションで表示したり、将来のビジネスプロジェクトの 3D モデル、建物やインテリアの 3D モデル、ゲームキャラクターの 3D モデル、あるいはデータの 3D 表現を示したりできます。 + +PowerPoint 3D モデルは 2D シェイプから作成でき、次のようなエフェクトを適用します:3D 回転、3D 深さと押し出し、3D グラデーション、3D テキストなど。シェイプに適用できる 3D 機能の一覧は **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** クラスで確認できます。クラスのインスタンスは以下で取得します。 + +- **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** メソッドで PowerPoint 3D モデルを作成します。 +- **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** メソッドで 3D テキスト(WordArt)を作成します。 + +**[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** に実装されているすべてのエフェクトはシェイプとテキストの両方で使用できます。次に **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** クラスの主なメソッドをざっと見てみましょう。以下の例では、テキストを含む矩形の 2D シェイプを作成し、シェイプに対してカメラビューを取得して回転させ、3D モデルのように見せます。フラットライトとその方向を 3D モデルの上部に設定して、モデルにボリュームを持たせます。素材、押し出し高さ、色を変更することで、3D モデルがより生き生きとします。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +以下は生成された 3D モデルです: + +![todo:image_alt_text](img_01_01.png) + +## **3D 回転** + +PowerPoint での 3D モデルの回転はメニューから行えます: + +![todo:image_alt_text](img_02_01.png) + +Aspose.Slides API で 3D モデルを回転させるには、**[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)** メソッドを使用し、カメラの回転を 3D シェイプに対して相対的に設定します: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... 他の3Dシーンパラメータを設定 +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **3D 深さと押し出し** + +**[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** および **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** メソッドを使用してシェイプに押し出しを作成します: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); +// ... 他の3Dシーンパラメータを設定 +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +PowerPoint では、シェイプの深さは次のように設定します: + +![todo:image_alt_text](img_02_02.png) + +## **3D グラデーション** + +3D グラデーションは PowerPoint 3D シェイプにボリューム感を与えます: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +実際の見た目は次のとおりです: + +![todo:image_alt_text](img_02_03.png) + +画像グラデーションも作成できます: +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. 3D 設定: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* プロパティ +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +結果は以下の通りです: + +![todo:image_alt_text](img_02_04.png) + +## **3D テキスト (WordArt)** + +3D テキスト(WordArt)を作成する手順は次のとおりです: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // "Arch Up" WordArt の変形効果を設定 + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +結果は以下のとおりです: + +![todo:image_alt_text](img_02_05.png) + +## **よくある質問** + +**プレゼンテーションを画像/PDF/HTML にエクスポートするときに 3D エフェクトは保持されますか?** + +はい。Slides の 3D エンジンは、サポートされている形式([画像](/slides/ja/nodejs-java/convert-powerpoint-to-png/)、[PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/)、[HTML](/slides/ja/nodejs-java/convert-powerpoint-to-html/) など)へのエクスポート時に 3D エフェクトをレンダリングします。 + +**テーマや継承などを考慮した「実効」(最終) の 3D パラメータ値を取得できますか?** + +はい。Slides は [実効値を読み取る](/slides/ja/nodejs-java/shape-effective-properties/) API を提供しており、3D の照明やベベルなどを含む最終的に適用された設定を確認できます。 + +**プレゼンテーションを動画に変換するときに 3D エフェクトは機能しますか?** + +はい。動画用フレームを生成する際([動画への変換](/slides/ja/nodejs-java/convert-powerpoint-to-video/))、3D エフェクトはエクスポートされた画像と同様にレンダリングされます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..6ad42e16e5 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: OpenOffice ODP を変換 +type: docs +weight: 10 +url: /ja/nodejs-java/convert-openoffice-odp/ +keywords: "JavaScript で ODP を PDF に変換, ODP を HTML に変換, ODP を TIFF に変換" +description: "JavaScript で ODP を PDF に変換, ODP を PPT に変換, ODP を PPTX に変換, ODP を HTML に変換" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/)はOpenOffice ODPプレゼンテーションを多数の形式に変換できます。ODPを他の形式に変換するAPIはPowerPoint形式用のAPIと同じです。以下の例を使用してODPを変換できます。ODPプレゼンテーションファイルのソースファイルを変更するだけです: + +- [ODPをHTMLに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [ODPをPDFに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [ODPをTIFFに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [ODPをSWF Flashに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [ODPをXPSに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [ノート付きODPをPDFに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [ノート付きODPをTIFFに変換](/slides/ja/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **FAQ** + +**ODPファイルの変換後に書式が変わる場合はどうすればいいですか?** + +ODPとPowerPointは異なるプレゼンテーションモデルを使用しており、テーブルやカスタムフォント、塗りつぶしスタイルなどの要素がまったく同じようにレンダリングされないことがあります。出力結果を確認し、必要に応じてコード内でレイアウトや書式を調整することを推奨します。 + +**ODP変換を使用するために OpenOffice や LibreOffice をインストールする必要がありますか?** + +いいえ、Aspose.Slides はスタンドアロンのライブラリであり、システムに OpenOffice や LibreOffice をインストールする必要はありません。 + +**ODP変換中に出力形式をカスタマイズできますか(例:PDF のオプションを設定)?** + +はい、Aspose.Slides は出力をカスタマイズする豊富なオプションを提供します。たとえば PDF に保存する場合、[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/) クラスを使用して圧縮、画像品質、テキストレンダリングなどを制御できます。 + +**Aspose.Slides はサーバーサイドまたはクラウドベースの ODP 処理に適していますか?** + +もちろんです。Aspose.Slides はデスクトップ環境だけでなく、Azure、AWS、Docker コンテナなどのクラウドベースプラットフォームを含むサーバー環境でも UI 依存なしに動作するよう設計されています。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..e771aaad7f --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: ODP を PPTX に変換 +type: docs +weight: 10 +url: /ja/nodejs-java/convert-odp-to-pptx/ +--- + +## **ODP を PPTX/PPT プレゼンテーションに変換** +Aspose.Slides for Node.js via Java は、プレゼンテーション ファイルを表す [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスを提供します。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスは、オブジェクト生成時に [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) コンストラクタを使用して ODP にもアクセスできるようになりました。以下の例は、ODP プレゼンテーションを PPTX プレゼンテーションに変換する方法を示しています。 +```javascript +// ODP ファイルを開く +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// ODP プレゼンテーションを PPTX 形式で保存 +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **ライブ例** +Aspose.Slides API を使用して構築された [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) Web アプリにアクセスできます。このアプリは、Aspose.Slides API で ODP から PPTX への変換を実装する方法を示しています。 + +## **よくある質問** + +**ODP を PPTX に変換するために Microsoft PowerPoint または LibreOffice をインストールする必要がありますか?** + +いいえ。Aspose.Slides は単体で動作し、ODP/PPTX の読み書きにサードパーティ製アプリケーションは不要です。 + +**変換時にマスタースライド、レイアウト、テーマは保持されますか?** + +はい。ライブラリは完全なプレゼンテーション オブジェクト モデルを使用しており、マスタースライドやレイアウトなどの構造を保持するため、変換後もデザインが正しく保たれます。 + +**パスワードで保護された ODP ファイルを変換できますか?** + +はい。Aspose.Slides は保護の検出、パスワードを提供して [protected presentations](/slides/ja/nodejs-java/password-protected-presentation/)(ODP を含む)の開封と操作をサポートし、暗号化やドキュメント プロパティへのアクセス設定も可能です。 + +**Aspose.Slides はクラウドや REST ベースの変換サービスに適していますか?** + +はい。ローカル ライブラリを自分のバックエンドで使用するか、[Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/)(REST API)を使用するか、どちらのオプションでも ODP → PPTX 変換をサポートします。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..7392b51043 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,60 @@ +--- +title: JavaScript でハンドアウトモードでプレゼンテーションを変換する +type: docs +weight: 150 +url: /ja/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- PowerPoint を変換 +- ハンドアウトモード +- ハンドアウト +- PowerPoint +- PPT +- PPTX +- プレゼンテーション +- Node.js +- JavaScript +- Aspose.Slides +description: "JavaScript でハンドアウトモードでプレゼンテーションを変換する" +--- + +## **ハンドアウトモードエクスポート** + +Aspose.Slides は、プレゼンテーションをさまざまな形式に変換する機能を提供し、ハンドアウトモードで印刷用のハンドアウトを作成することもできます。このモードでは、1ページに複数のスライドをどのように配置するかを設定でき、会議やセミナー、その他のイベントで便利です。`setSlidesLayoutOptions` メソッドを設定することで、このモードを有効にできます。対象のクラスは [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)、[RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/)、[HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/)、[TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) です。 + +ハンドアウトモードを構成するには、[HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/) オブジェクトを使用します。このオブジェクトは、1ページに配置するスライド数やその他の表示パラメータを決定します。 + +以下は、ハンドアウトモードでプレゼンテーションを PDF に変換するコード例です。 +```js +// プレゼンテーションを読み込みます。 +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// エクスポートオプションを設定します。 +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 横向きに1ページに4枚のスライド +slidesLayoutOptions.setPrintSlideNumbers(true); // スライド番号を印刷 +slidesLayoutOptions.setPrintFrameSlide(true); // スライドの周囲にフレームを印刷 +slidesLayoutOptions.setPrintComments(false); // コメントはなし + +// 選択したレイアウトでプレゼンテーションを PDF にエクスポートします。 +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} +`setSlidesLayoutOptions` メソッドは、PDF、HTML、TIFF などの特定の出力形式、または画像としてレンダリングする場合にのみ利用可能であることに注意してください。 +{{% /alert %}} + +## **FAQ** + +**Handoutモードで1ページあたり表示できるスライドサムネイルの最大数は何ですか?** + +Aspose.Slides は、[プリセット](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) をサポートしており、水平または垂直の順序で 1 ページあたり最大 9 つのサムネイルを配置できます。利用できる設定は 1、2、3、4(水平/垂直)、6(水平/垂直)、9(水平/垂直)です。 + +**5枚または8枚など、カスタムグリッドを定義できますか?** + +いいえ。サムネイルの数と順序は [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) 列挙体で厳密に制御されており、任意のレイアウトはサポートされていません。 + +**ハンドアウトの出力に非表示スライドを含めることはできますか?** + +はい。対象の形式(例: [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)、[HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/)、[TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/))のエクスポート設定で `setShowHiddenSlides` メソッドを使用します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..9f03650f77 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,66 @@ +--- +title: PowerPoint をアニメーション GIF に変換 +type: docs +weight: 65 +url: /ja/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "PowerPoint をアニメーション GIF に変換, PPT を GIF に変換, PPTX を GIF に変換" +description: "PowerPoint をアニメーション GIF に変換: PPT を GIF に変換, PPTX を GIF に変換, Aspose.Slides API を使用." +--- + +## **デフォルト設定でプレゼンテーションをアニメーションGIFに変換する** + +このJavaScriptサンプルコードは、標準設定でプレゼンテーションをアニメーションGIFに変換する方法を示します: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +アニメーションGIFはデフォルトパラメータで作成されます。 + +{{% alert title="TIP" color="primary" %}} + +GIFのパラメータをカスタマイズしたい場合は、[GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions)クラスを使用できます。以下のサンプルコードをご覧ください。 + +{{% /alert %}} + +## **カスタム設定でプレゼンテーションをアニメーションGIFに変換する** + +このサンプルコードは、JavaScriptでカスタム設定を使用してプレゼンテーションをアニメーションGIFに変換する方法を示します: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// 生成された GIF のサイズ + gifOptions.setDefaultDelay(2000);// 各スライドが次のスライドに変わるまでの表示時間 + gifOptions.setTransitionFps(35);// 遷移アニメーションの品質向上のために FPS を上げる + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} + +Asposeが開発した無料の[Text to GIF](https://products.aspose.app/slides/text-to-gif)コンバータをご利用いただけます。 + +{{% /alert %}} + +## **FAQ** + +**プレゼンテーションで使用されているフォントがシステムにインストールされていない場合はどうすればよいですか?** + +不足しているフォントをインストールするか、[フォールバックフォントを構成](/slides/ja/nodejs-java/powerpoint-fonts/)してください。Aspose.Slidesは代替しますが、外観が異なる場合があります。ブランドの一貫性のため、必ず必要な書体が明示的に利用可能であることを確認してください。 + +**GIFフレームに透かしを重ねることはできますか?** + +はい。エクスポート前にマスタースライドまたは個別スライドに[半透明のオブジェクト/ロゴ](/slides/ja/nodejs-java/watermark/)を追加すると、透かしがすべてのフレームに表示されます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..e0a263e84a --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,406 @@ +--- +title: JavaScript で PowerPoint を HTML に変換 +linktitle: PowerPoint を HTML に変換 +type: docs +weight: 30 +url: /ja/nodejs-java/convert-powerpoint-to-html/ +keywords: "Java PowerPoint を HTML に変換, PowerPoint プレゼンテーションを変換, PPTX, PPT, PPT を HTML に変換, PPTX を HTML に変換, PowerPoint を HTML に変換, PowerPoint を HTML として保存, PPT を HTML として保存, PPTX を HTML として保存, Java, Aspose.Slides, HTML エクスポート" +description: "JavaScript で PowerPoint を HTML に変換します。JavaScript で PPTX または PPT を HTML として保存します。JavaScript でスライドを HTML として保存します。" +--- + +## **概要** + +この記事では、JavaScript を使用して PowerPoint プレゼンテーションを HTML 形式に変換する方法を説明します。次のトピックをカバーします。 + +- JavaScript で PowerPoint を HTML に変換 +- JavaScript で PPT を HTML に変換 +- JavaScript で PPTX を HTML に変換 +- JavaScript で ODP を HTML に変換 +- JavaScript で PowerPoint スライドを HTML に変換 + +## **JavaScript PowerPoint to HTML** + +PowerPoint を HTML に変換する JavaScript のサンプルコードについては、以下のセクション、つまり [PowerPoint を HTML に変換](#convert-powerpoint-to-html) を参照してください。コードは PPT、PPTX、ODP などのさまざまな形式を Presentation オブジェクトでロードし、HTML 形式で保存できます。 + +## **PowerPoint を HTML に変換する概要** +**Aspose.Slides for Node.js via Java**(https://products.aspose.com/slides/nodejs-java/)を使用すると、アプリケーションや開発者は PowerPoint プレゼンテーションを HTML に変換できます:**PPTX to HTML** または **PPT to HTML**。 + +**Aspose.Slides** は、PowerPoint を HTML に変換するプロセスを定義する多くのオプション(主に [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) クラス)を提供します: + +* PowerPoint プレゼンテーション全体を HTML に変換します。 +* PowerPoint プレゼンテーションの特定のスライドを HTML に変換します。 +* プレゼンテーションのメディア(画像、動画など)を HTML に変換します。 +* PowerPoint プレゼンテーションをレスポンシブ HTML に変換します。 +* スピーカーノートを含むまたは除外した状態で PowerPoint プレゼンテーションを HTML に変換します。 +* コメントを含むまたは除外した状態で PowerPoint プレゼンテーションを HTML に変換します。 +* 元のフォントまたは埋め込みフォントで PowerPoint プレゼンテーションを HTML に変換します。 +* 新しい CSS スタイルを使用して PowerPoint プレゼンテーションを HTML に変換します。 + +{{% alert color="primary" %}} + +独自の API を使用して、Aspose は無料の [presentation to HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html) コンバータを開発しました: [PPT to HTML](https://products.aspose.app/slides/conversion/ppt-to-html)、[PPTX to HTML](https://products.aspose.app/slides/conversion/pptx-to-html)、[ODP to HTML](https://products.aspose.app/slides/conversion/odp-to-html) など。 + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +[Aspose の他の無料コンバータ](https://products.aspose.app/slides/conversion) を確認したくなるかもしれません。 + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +ここで説明した変換プロセスに加えて、Aspose.Slides は HTML 形式に関する以下の変換操作もサポートしています: + +* [HTML を画像に変換](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML を JPG に変換](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML を XML に変換](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML を TIFF に変換](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + +## **PowerPoint を HTML に変換** +Aspose.Slides を使用すると、PowerPoint プレゼンテーション全体を HTML に変換できます。方法は次のとおりです: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) メソッドを使用してオブジェクトを HTML ファイルとして保存します。 + +このコードは、JavaScript で PowerPoint を HTML に変換する方法を示しています: +```javascript +// プレゼンテーションファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // プレゼンテーションを HTML に保存します + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint をレスポンシブ HTML に変換** +Aspose.Slides は [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController) クラスを提供し、レスポンシブ HTML ファイルを生成できます。このコードは、JavaScript で PowerPoint プレゼンテーションをレスポンシブ HTML に変換する方法を示しています: +```javascript +// プレゼンテーションファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // プレゼンテーションを HTML に保存します + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint をノート付き HTML に変換** +このコードは、JavaScript で PowerPoint をノート付き HTML に変換する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // ノートページを保存 + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint を元のフォント付き HTML に変換** +Aspose.Slides は [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) クラスを提供し、プレゼンテーションを HTML に変換する際にすべてのフォントを埋め込むことができます。 + +特定のフォントを埋め込まないようにするには、[EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) のパラメータ化されたコンストラクターにフォント名の配列を渡すことができます。Calibri や Arial のような一般的なフォントは、プレゼンテーションで使用されても、ほとんどのシステムに既に存在するため埋め込む必要はありません。これらのフォントを埋め込むと、生成される HTML ドキュメントが不要に大きくなります。 + +[EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) クラスは継承をサポートし、上書きすることを意図した [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-) メソッドを提供します。 +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // デフォルトのプレゼンテーションフォントを除外 + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint を高品質画像付き HTML に変換** +デフォルトでは、PowerPoint を HTML に変換すると、Aspose.Slides は 72 DPI の小さな画像と切り取られた領域が削除された小さな HTML を出力します。より高品質な画像を含む HTML ファイルを取得するには、`HtmlOptions` クラスの `setPicturesCompression` メソッドに `96`(`PicturesCompression.Dpi96`)またはそれ以上の [値](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PicturesCompression) を指定する必要があります。 + +この JavaScript コードは、150 DPI(`PicturesCompression.Dpi150`)の高品質画像を取得しながら PowerPoint プレゼンテーションを HTML に変換する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +この JavaScript コードは、フルクオリティの画像を含む HTML を出力する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **スライドを HTML に変換** +PowerPoint の特定のスライドを HTML に変換するには、全体のプレゼンテーションを HTML に変換する際に使用したのと同じ [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスをインスタンス化し、[save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) メソッドで HTML として保存します。[HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) クラスを使用して追加の変換オプションを指定できます: +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // ファイルを保存 + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **HTML へのエクスポート時に CSS と画像を保存** +新しい CSS スタイル ファイルを使用すると、PowerPoint から HTML への変換プロセスで生成された HTML ファイルのスタイルを簡単に変更できます。 + +この例の JavaScriptコードは、オーバーライド可能なメソッドを使用して CSS ファイルへのリンクを含むカスタム HTML ドキュメントを作成する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +CustomHeaderAndFontsController を Java で実装し、コンパイルして、モジュールの場所 \aspose.slides.via.java\lib\ に追加する必要があります。 + +この Java コードは、`CustomHeaderAndFontsController` の実装方法を示しています: +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // カスタムヘッダーテンプレート + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **プレゼンテーションを HTML に変換する際にすべてのフォントをリンク** +フォントを埋め込まず(結果の HTML のサイズ増大を防ぐため)すべてのフォントをリンクしたい場合は、独自の `LinkAllFontsHtmlController` バージョンを実装できます。 + +この JavaScript コードは、すべてのフォントをリンクし、システムに既に存在する "Calibri" と "Arial" を除外した状態で PowerPoint を HTML に変換する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // デフォルトのプレゼンテーションフォントを除外 + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +LinkAllFontsHtmlController を Java で実装し、コンパイルして、モジュールの場所 \aspose.slides.via.java\lib\ に追加する必要があります。 + +この Java コードは、`LinkAllFontsHtmlController` の実装方法を示しています: +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // パスの正規化が必要になる場合があります + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **PowerPoint をレスポンシブ HTML に変換** +この JavaScript コードは、PowerPoint プレゼンテーションをレスポンシブ HTML に変換する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **メディアファイルを HTML にエクスポート** +Aspose.Slides for Node.js via Java を使用すると、メディアファイルを次のようにエクスポートできます: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. スライドへの参照を取得します。 +1. スライドにビデオを追加します。 +1. プレゼンテーションを書き出し、HTML ファイルとして保存します。 + +この JavaScript コードは、プレゼンテーションにビデオを追加し、HTML として保存する方法を示しています: +```javascript +// プレゼンテーションを読み込む +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // HTML オプションを設定 + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // ファイルを保存 + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**複数のプレゼンテーションを HTML に変換する際の Aspose.Slides のパフォーマンスはどうですか?** +パフォーマンスはプレゼンテーションのサイズや複雑さに依存します。Aspose.Slides はバッチ処理に対して非常に効率的でスケーラブルです。多数のプレゼンテーションを変換する際は、可能な限りマルチスレッドや並列処理を使用することを推奨します。 + +**Aspose.Slides はハイパーリンクの HTML へのエクスポートをサポートしていますか?** +はい、Aspose.Slides は埋め込まれたハイパーリンクを HTML にエクスポートすることを完全にサポートしています。プレゼンテーションを HTML 形式に変換すると、ハイパーリンクは自動的に保持され、クリック可能なままです。 + +**プレゼンテーションを HTML に変換する際、スライド数に制限はありますか?** +スライド数に制限はありません。任意のサイズのプレゼンテーションを変換できます。ただし、非常に多くのスライドを含むプレゼンテーションの場合、パフォーマンスはサーバーやシステムのリソースに依存する可能性があります。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..8765f065f4 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,137 @@ +--- +title: PowerPoint を JPG に変換 +type: docs +weight: 60 +url: /ja/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "PowerPoint を JPG に変換, PPTX を JPEG に変換, PPT を JPEG に変換" +description: "PowerPoint を JPG に変換: JavaScript で PPT を JPG、PPTX を JPG" +--- + +## **PowerPointからJPGへの変換について** +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) を使用すると、PowerPoint の PPT または PPTX プレゼンテーションを JPG 画像に変換できます。PPT/PPTX を JPEG、PNG、SVG に変換することも可能です。この機能により、独自のプレゼンテーションビューアを実装したり、各スライドのサムネイルを作成したりするのが簡単になります。プレゼンテーションスライドのコピーガードや、読み取り専用モードでのデモンストレーションに役立ちます。Aspose.Slides は、プレゼンテーション全体または特定のスライドを画像形式に変換できます。 + +{{% alert color="primary" %}} +Aspose.Slides が PowerPoint を JPG 画像に変換する様子を確認したい場合は、次の無料オンラインコンバータをお試しください: PowerPoint [PPTX to JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) と [PPT to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg)。 +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **PowerPoint PPT/PPTX を JPG に変換する手順** +PPT/PPTX を JPG に変換する手順は以下の通りです: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 型のインスタンスを作成します。 +2. [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) コレクションから [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) 型のスライドオブジェクトを取得します。 +3. 各スライドのサムネイルを作成し、JPG に変換します。[**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) メソッドを使用してスライドのサムネイルを取得し、[Images](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images) オブジェクトが返されます。[getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) メソッドは、必要な [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) 型のスライドから呼び出す必要があり、生成されるサムネイルのスケールはメソッドに渡されます。 +4. スライドのサムネイルを取得したら、サムネイルオブジェクトの [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) メソッドを呼び出します。ファイル名と画像形式を渡してください。 + +{{% alert color="primary" %}} +**Note**: PPT/PPTX から JPG への変換は、Aspose.Slides API の他のタイプへの変換とは手順が異なります。その他のタイプでは通常 [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) メソッドを使用しますが、ここでは [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) メソッドを使用する必要があります。 +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // フルスケールの画像を作成します + var slideImage = sld.getImage(1.0, 1.0); + // 画像を JPEG 形式でディスクに保存します + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタマイズされたサイズで PowerPoint PPT/PPTX を JPG に変換する方法** +生成されるサムネイルと JPG 画像のサイズを変更するには、[**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) メソッドに *ScaleX* と *ScaleY* の値を渡します。 +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // 寸法を定義します + var desiredX = 1200; + var desiredY = 800; + // X と Y のスケーリングされた値を取得します + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // フルスケールの画像を作成します + var slideImage = sld.getImage(ScaleX, ScaleY); + // 画像を JPEG 形式でディスクに保存します + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **プレゼンテーションを画像に保存するときにコメントを描画する** +Aspose.Slides for Node.js via Java は、スライドを画像に変換する際にプレゼンテーションのコメントを描画できる機能を提供します。この JavaScript コードはその操作例です: +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Aspose は [FREE Collage web app](https://products.aspose.app/slides/collage) を提供しています。このオンラインサービスを使用すると、[JPG to JPG](https://products.aspose.app/slides/collage/jpg) や PNG to PNG 画像の結合、[photo grids](https://products.aspose.app/slides/collage/photo-grid) の作成などが可能です。 + +本記事で説明した原則を使って、画像を別の形式に変換することもできます。詳細は次のページをご参照ください: 画像を [JPG に変換](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/);[JPG から画像へ変換](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/);[JPG から PNG へ変換](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/);[PNG から JPG へ変換](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/);[PNG から SVG へ変換](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/);[SVG から PNG へ変換](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/)。 +{{% /alert %}} + +## **See also** +PPT/PPTX を画像に変換する他のオプションは次をご覧ください: + +- [PPT/PPTX to SVG conversion](/slides/ja/nodejs-java/render-a-slide-as-an-svg-image/). + +## **FAQ** + +**Does this method support batch conversion?** + +はい、Aspose.Slides は複数のスライドを単一の操作で JPG にバッチ変換できます。 + +**Does the conversion support SmartArt, charts, and other complex objects?** + +はい、Aspose.Slides は SmartArt、チャート、テーブル、シェイプなどすべてのコンテンツを描画します。ただし、カスタム フォントや欠落フォントを使用した場合、PowerPoint と比較して描画精度がわずかに異なることがあります。 + +**Are there any limitations on the number of slides that can be processed?** + +Aspose.Slides 自体は処理できるスライド数に厳格な制限を設けていません。ただし、非常に大きなプレゼンテーションや高解像度画像を扱う際に、メモリ不足エラーが発生する可能性があります。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..8393d8278b --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,110 @@ +--- +title: JavaScript で PowerPoint を Markdown に変換 +type: docs +weight: 140 +url: /ja/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "PowerPoint を Markdown に変換, ppt を md に変換, PowerPoint, PPT, PPTX, プレゼンテーション, Markdown, Java, Aspose.Slides for Node.js via Java" +description: "JavaScript で PowerPoint を Markdown に変換" +--- + +{{% alert color="info" %}} +PowerPoint から Markdown への変換サポートは [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/) で実装されました。 +{{% /alert %}} + +{{% alert color="warning" %}} +PowerPoint から Markdown へのエクスポートはデフォルトで **画像なし** です。画像を含む PowerPoint ドキュメントをエクスポートしたい場合は、`markdownSaveOptions.setExportType(MarkdownExportType.Visual)` を呼び出し、さらに Markdown ドキュメントで参照される画像の保存先となる `BasePath` を設定する必要があります。 +{{% /alert %}} + +## **PowerPoint を Markdown に変換** + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成し、プレゼンテーションオブジェクトを表します。 +2. [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) メソッドを使用して、オブジェクトを Markdown ファイルとして保存します。 + +この JavaScript コードは、PowerPoint を Markdown に変換する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **PowerPoint を Markdown フレーバーに変換** + +Aspose.Slides を使用すると、PowerPoint を Markdown(基本構文を含む)、CommonMark、GitHub Flavored Markdown、Trello、XWiki、GitLab、その他 17 種類の Markdown フレーバーに変換できます。 + +この JavaScript コードは、PowerPoint を CommonMark に変換する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +サポートされている 23 の Markdown フレーバーは、[Flavor 列挙体](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) の下にある [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) クラスから [一覧表示されています](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/)。 + +## **画像を含むプレゼンテーションを Markdown に変換** + +[MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) クラスは、結果の Markdown ファイルに対して特定のオプションや設定を使用できるプロパティと列挙体を提供します。たとえば、[MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/) 列挙体は、画像のレンダリングや処理方法を決定する値(`Sequential`、`TextOnly`、`Visual`)に設定できます。 + +### **画像を順次変換** + +結果の Markdown で画像を個別に順番に表示したい場合は、Sequential オプションを選択する必要があります。この JavaScript コードは、画像を含むプレゼンテーションを Markdown に変換する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **画像を視覚的に変換** + +結果の Markdown で画像をまとめて表示したい場合は、Visual オプションを選択する必要があります。この場合、画像はアプリケーションの現在のディレクトリに保存され(Markdown ドキュメント内で相対パスが作成されます)、または任意のパスとフォルダー名を指定することもできます。 + +この JavaScript コードは、操作を実演しています。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**ハイパーリンクは Markdown へのエクスポート後も残りますか?** + +はい。テキストの [hyperlinks](/slides/ja/nodejs-java/manage-hyperlinks/) は標準的な Markdown リンクとして保持されます。スライドの [transitions](/slides/ja/nodejs-java/slide-transition/) や [animations](/slides/ja/nodejs-java/powerpoint-animation/) は変換されません。 + +** \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..3e7f147f3f --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,331 @@ +--- +title: "JavaScriptでPPTとPPTXをPDFに変換する [高度な機能を含む]" +linktitle: "PPTとPPTXをPDFに変換" +type: docs +weight: 40 +url: /ja/nodejs-java/convert-powerpoint-to-pdf/ +keywords: +- "PowerPoint を変換" +- "プレゼンテーションを変換" +- "PowerPoint を PDF に変換" +- "プレゼンテーションを PDF に変換" +- "PPT を PDF に変換" +- "PPT を PDF に変換" +- "PPTX を PDF に変換" +- "PPTX を PDF に変換" +- "ODP を PDF に変換" +- "ODP を PDF に変換" +- "PowerPoint を PDF として保存" +- "PDF/A1a" +- "PDF/A1b" +- "PDF/UA" +- "JavaScript" +- "Node.js" +- "Aspose.Slides for Node.js via Java" +description: "Aspose.Slides を使用して、JavaScript で PPT、PPTX、ODP プレゼンテーションを PDF に変換する方法を学びます。パスワード保護やコンプライアンス基準、カスタムオプションなどの高度な機能を実装し、高品質でアクセシブルな PDF ドキュメントを作成します。" +--- + +## **概要** + +PowerPoint および OpenDocument プレゼンテーション(PPT、PPTX、ODP など)を JavaScript で PDF 形式に変換すると、さまざまなデバイス間での互換性や、プレゼンテーションのレイアウトと書式設定を保持できるといった利点があります。本ガイドでは、プレゼンテーションを PDF に変換する方法、画像品質を制御するオプションの使用、非表示スライドの含め方、PDF のパスワード保護、フォント置換の検出、変換対象スライドの選択、そして出力ドキュメントに適用できるコンプライアンス基準について説明します。 + +## **PowerPoint から PDF への変換** + +Aspose.Slides を使用すると、次の形式のプレゼンテーションを PDF に変換できます。 + +* **PPT** +* **PPTX** +* **ODP** + +プレゼンテーションを PDF に変換するには、ファイル名を [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスの引数として渡し、`save` メソッドで PDF として保存します。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスは、通常プレゼンテーションを PDF に変換するために使用される `save` メソッドを公開しています。 + +{{% alert title="NOTE" color="warning" %}} + +Aspose.Slides for Node.js via Java は、出力ドキュメントに API 情報とバージョン番号を挿入します。たとえば、プレゼンテーションを PDF に変換すると、Application フィールドに "*Aspose.Slides*" が、PDF Producer フィールドに "*Aspose.Slides v XX.XX*" 形式の値が設定されます。**注意:** この情報を出力ドキュメントから変更または除去することはできません。 + +{{% /alert %}} + +Aspose.Slides では次の変換が可能です。 + +* プレゼンテーション全体を PDF に変換 +* プレゼンテーションの特定スライドを PDF に変換 + +Aspose.Slides はプレゼンテーションを PDF にエクスポートし、生成された PDF が元のプレゼンテーションに極めて近い状態になるようにします。変換時に正確にレンダリングされる要素と属性は次のとおりです。 + +* 画像 +* テキストボックスとシェイプ +* テキスト書式設定 +* 段落書式設定 +* ハイパーリンク +* ヘッダーとフッター +* 箇条書き +* 表 + +## **PowerPoint を PDF に変換する** + +標準の PowerPoint から PDF への変換プロセスはデフォルトオプションを使用します。この場合、Aspose.Slides は最高品質レベルで最適な設定を用いてプレゼンテーションを PDF に変換しようとします。 + +以下のコードは、プレゼンテーション(PPT、PPTX、ODP など)を PDF に変換する方法を示しています。 +```js +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // プレゼンテーションを PDF として保存します。 + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} + +Aspose は、プレゼンテーションから PDF への変換プロセスをデモンストレーションする無料のオンライン [**PowerPoint to PDF コンバータ**](https://products.aspose.app/slides/conversion/ppt-to-pdf) を提供しています。このコンバータでテストを実行し、ここで説明した手順の実装例を確認できます。 + +{{% /alert %}} + +## **オプション付きで PowerPoint を PDF に変換する** + +Aspose.Slides は、[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/) クラスのプロパティとしてカスタムオプションを提供し、生成される PDF のカスタマイズ、パスワード保護、変換プロセスの制御が可能です。 + +### **カスタムオプションで PowerPoint を PDF に変換する** + +カスタム変換オプションを使用すると、ラスター画像の品質設定、メタファイルの処理方法、テキストの圧縮レベル、画像の DPI 設定などを指定できます。 + +以下のコード例は、複数のカスタムオプションを使用して PowerPoint プレゼンテーションを PDF に変換する方法を示しています。 +```js +// PdfOptions クラスのインスタンスを作成します。 +let pdfOptions = new aspose.slides.PdfOptions(); + +// JPG 画像の品質を設定します。 +pdfOptions.setJpegQuality(java.newByte(90)); + +// 画像の DPI を設定します。 +pdfOptions.setSufficientResolution(300); + +// メタファイルの処理方法を設定します。 +pdfOptions.setSaveMetafilesAsPng(true); + +// テキストコンテンツの圧縮レベルを設定します。 +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// PDF の準拠モードを定義します。 +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // プレゼンテーションを PDF ドキュメントとして保存します。 + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **非表示スライドを含めて PowerPoint を PDF に変換する** + +プレゼンテーションに非表示スライドが含まれている場合、[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) クラスの [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) メソッドを使用して、非表示スライドを生成される PDF のページとして含めることができます。 + +以下の JavaScript コードは、非表示スライドを含めて PowerPoint プレゼンテーションを PDF に変換する方法を示しています。 +```js +// PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // PdfOptionsクラスのインスタンスを作成します。 + let pdfOptions = new aspose.slides.PdfOptions(); + + // 非表示スライドを追加します。 + pdfOptions.setShowHiddenSlides(true); + + // プレゼンテーションを PDF として保存します。 + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **パスワード保護された PDF に PowerPoint を変換する** + +以下の JavaScript コードは、[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) クラスの保護パラメータを使用して、PowerPoint プレゼンテーションをパスワード保護された PDF に変換する方法を示しています。 +```js +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // PdfOptions クラスのインスタンスを作成します。 + let pdfOptions = new aspose.slides.PdfOptions(); + + // PDF のパスワードとアクセス権限を設定します。 + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // プレゼンテーションを PDF として保存します。 + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **フォント置換の検出** + +Aspose.Slides は、[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) クラスの下にある [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) メソッドを提供し、プレゼンテーションから PDF への変換プロセス中にフォント置換を検出できます。 + +以下の JavaScript コードは、フォント置換を検出する方法を示しています。 +```js +// PDF オプションに警告コールバックを設定します。 +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// プレゼンテーションを PDF として保存します。 +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} + +レンダリング中のフォント置換に対するコールバック取得に関する詳細は、[Getting Warning Callbacks for Fonts Substitution](/slides/ja/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/) を参照してください。 + +フォント置換に関する詳細は、[Font Substitution](/slides/ja/nodejs-java/font-substitution/) 記事をご覧ください。 + +{{% /alert %}} + +## **選択したスライドだけを PowerPoint から PDF に変換する** + +以下の JavaScript コードは、PowerPoint プレゼンテーションの特定スライドのみを PDF に変換する方法を示しています。 +```js +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // スライド番号の配列を設定します。 + let slides = java.newArray("int", [1, 3]); + + // プレゼンテーションを PDF として保存します。 + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **カスタムスライドサイズで PowerPoint を PDF に変換する** + +以下の JavaScript コードは、指定したスライドサイズで PowerPoint プレゼンテーションを PDF に変換する方法を示しています。 +```js +const slideWidth = 612; +const slideHeight = 792; + +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// 調整されたスライドサイズで新しいプレゼンテーションを作成します。 +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // カスタムスライドサイズを設定します。 + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // 元のプレゼンテーションから最初のスライドをクローンします。 + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // リサイズされたプレゼンテーションをノート付きの PDF として保存します。 + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **ノートスライドビューで PowerPoint を PDF に変換する** + +以下の JavaScript コードは、ノートを含む PDF に PowerPoint プレゼンテーションを変換する方法を示しています。 +```js +// PowerPoint または OpenDocument ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // PDF オプションをノートレイアウトで構成します。 + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // ノート付きの PDF としてプレゼンテーションを保存します。 + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **PDF のアクセシビリティとコンプライアンス基準** + +Aspose.Slides は、[Web Content Accessibility Guidelines (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html) に準拠した変換手順を使用できます。次のコンプライアンス基準のいずれかで PowerPoint ドキュメントを PDF にエクスポートできます: **PDF/A1a**、**PDF/A1b**、**PDF/UA**。 + +以下の JavaScript コードは、異なるコンプライアンス基準に基づいて複数の PDF を生成する PowerPoint から PDF への変換プロセスをデモンストレーションします。 +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Note" color="warning" %}} + +Aspose.Slides は PDF 変換機能もサポートしており、PDF ファイルを一般的な形式に変換できます。[PDF to HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/)、[PDF to JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/)、[PDF to PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/) の変換が可能です。また、[PDF to SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/)、[PDF to TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/) など、特殊フォーマットへの変換もサポートされています。 + +{{% /alert %}} + +## **FAQ** + +**複数の PowerPoint ファイルを一括で PDF に変換できますか?** + +はい、Aspose.Slides は複数の PPT または PPTX ファイルをバッチ変換して PDF にすることをサポートしています。ファイルを列挙し、プログラムで変換プロセスを適用できます。 + +**変換した PDF にパスワードを設定できますか?** + +もちろんです。[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) クラスを使用して、変換時にパスワードとアクセス権限を設定できます。 + +**PDF に非表示スライドを含めるにはどうすればよいですか?** + +[PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) クラスの `setShowHiddenSlides` メソッドを使用して、生成される PDF に非表示スライドを含められます。 + +**Aspose.Slides は PDF で高画像品質を維持できますか?** + +はい、`setJpegQuality` や `setSufficientResolution` などのメソッドを [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) クラスで使用することで、PDF 内の画像品質を高く保つことができます。 + +**Aspose.Slides は PDF/A コンプライアンス基準をサポートしていますか?** + +はい、Aspose.Slides は PDF/A1a、PDF/A1b、PDF/UA などのさまざまな基準に準拠した PDF のエクスポートをサポートしており、アクセシビリティやアーカイブ要件を満たすことができます。 + +## **追加リソース** + +- [Aspose.Slides for Node.js via Java ドキュメント](/slides/ja/nodejs-java/) +- [Aspose.Slides for Node.js via Java API リファレンス](https://reference.aspose.com/slides/nodejs-java/) +- [Aspose 無料オンラインコンバータ](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..ce012e785b --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,116 @@ +--- +title: PowerPoint を PNG に変換 +type: docs +weight: 30 +url: /ja/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint を PNG に変換, PPT を PNG に変換, PPTX を PNG に変換, java, Node.js 用 Aspose.Slides (Java 経由) +description: PowerPoint プレゼンテーションを PNG に変換 +--- + +## **PowerPointからPNGへの変換について** + +PNG(Portable Network Graphics)フォーマットはJPEG(Joint Photographic Experts Group)ほど人気はありませんが、依然として非常に人気があります。 + +**Use case:** 複雑な画像でサイズが問題でない場合、PNGはJPEGより優れた画像フォーマットです。 + +{{% alert title="Tip" color="primary" %}} Aspose の無料 **PowerPoint to PNG Converters** をチェックしたいかもしれません: [PPTX to PNG](https://products.aspose.app/slides/conversion/pptx-to-png) と [PPT to PNG](https://products.aspose.app/slides/conversion/ppt-to-png)。これらはこのページで説明されたプロセスの実装です。 {{% /alert %}} + +## **PowerPointをPNGに変換** + +以下の手順を実行してください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) メソッドで返されるコレクションから、[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) クラスのスライドオブジェクトを取得します。 +3. 各スライドのサムネイルを取得するために、[Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) メソッドを使用します。 +4. スライドのサムネイルを PNG 形式で保存するために、[**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String%20formatName,%20int%20imageFormat)) メソッドを使用します。 + +この JavaScript コードは PowerPoint プレゼンテーションを PNG に変換する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタム寸法で PowerPoint を PNG に変換** + +特定のスケールの PNG ファイルを取得したい場合、結果のサムネイルの寸法を決定する `desiredX` と `desiredY` の値を設定できます。 + +この JavaScript コードは上記の操作を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタムサイズで PowerPoint を PNG に変換** + +特定のサイズの PNG ファイルを取得したい場合、`ImageSize` に対して希望する `width` と `height` の引数を渡すことができます。 + +このコードは画像のサイズを指定して PowerPoint を PNG に変換する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**スライド全体ではなく、特定の形状(例: グラフや画像)のみをエクスポートするにはどうすればよいですか?** +Aspose.Slides は [個々の形状のサムネイル生成](/slides/ja/nodejs-java/create-shape-thumbnails/) をサポートしています。形状を PNG 画像としてレンダリングできます。 + +**サーバーでの並列変換はサポートされていますか?** +はい、ただし単一のプレゼンテーション インスタンスをスレッド間で共有しないでください。[共有しない](/slides/ja/nodejs-java/multithreading/)ことが重要です。スレッドまたはプロセスごとに別々のインスタンスを使用してください。 + +**PNG へのエクスポート時の試用版の制限は何ですか?** +評価モードでは出力画像に透かしが追加され、ライセンスが適用されるまで [その他の制限](/slides/ja/nodejs-java/licensing/) が課せられます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..579f1444c9 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,44 @@ +--- +title: PowerPoint を SWF フラッシュに変換 +type: docs +weight: 80 +url: /ja/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT、PPTX を SWF に変換" +description: "JavaScript で PowerPoint PPT、PPTX を SWF に変換" +--- + +## **PPT(X) を SWF に変換** +The [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) メソッドは [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスで公開されており、プレゼンテーション全体を **SWF** ドキュメントに変換するために使用できます。以下の例では、[**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) クラスが提供するオプションを使用してプレゼンテーションを **SWF** ドキュメントに変換する方法を示します。生成された SWF にコメントを含めるには、[**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) クラスと [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions) クラスを使用することもできます。 +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // プレゼンテーションを保存 + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**SWF に非表示スライドを含めることはできますか?** + +はい。[setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) メソッドを[SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/)で使用します。デフォルトでは、非表示スライドはエクスポートされません。 + +**圧縮と最終的な SWF サイズをどのように制御できますか?** + +ファイルサイズと画像品質のバランスを取るために、[setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) メソッドと [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/) を使用します。 + +**'setViewerIncluded' の目的は何ですか、またいつ使用すべきですか?** + +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) は埋め込みプレーヤー UI(ナビゲーションコントロール、パネル、検索)を追加します。独自のプレーヤーを使用する予定がある場合や、UI のないシンプルな SWF フレームが必要な場合に使用してください。 + +**エクスポート先のマシンでソースフォントが見つからない場合はどうなりますか?** + +Aspose.Slides は、[SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) の [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) で指定したフォントに置き換えて、意図しないフォールバックを回避します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..a9c8f36c25 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,91 @@ +--- +title: JavaScriptでノート付きPowerPointをTIFFに変換 +linktitle: ノート付きPowerPointをTIFFに変換 +type: docs +weight: 100 +url: /ja/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- PowerPoint を TIFF に変換 +- プレゼンテーションを TIFF に変換 +- スライドを TIFF に変換 +- PPT を TIFF に変換 +- PPTX を TIFF に変換 +- ODP を TIFF に変換 +- PowerPoint を TIFF に変換 +- プレゼンテーションを TIFF に変換 +- スライドを TIFF に変換 +- PPT を TIFF に変換 +- PPTX を TIFF に変換 +- ODP を TIFF に変換 +- ノート付き PowerPoint +- ノート付きプレゼンテーション +- ノート付きスライド +- ノート付き PPT +- ノート付き PPTX +- ノート付き ODP +- ノート付き TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "Aspose.Slides for Node.js via Java を使用して、PowerPoint および OpenDocument プレゼンテーションをノート付きで TIFF に変換します。スライドのスピーカーノートを効率的にエクスポートする方法を学びましょう。" +--- + +## **概要** + +Aspose.Slides for Node.js via Java は、メモ付きの PowerPoint および OpenDocument プレゼンテーション(PPT、PPTX、ODP)を TIFF 形式に変換するシンプルなソリューションを提供します。この形式は、高品質な画像保存、印刷、文書アーカイブに広く使用されています。Aspose.Slides を使用すると、スピーカーノート付きのプレゼンテーション全体をエクスポートできるだけでなく、Notes Slide ビューでスライドのサムネイルを生成することもできます。変換プロセスはシンプルで効率的で、`save` メソッドを利用して [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラス全体を一連の TIFF 画像に変換し、メモとレイアウトを保持します。 + +## **メモ付きでプレゼンテーションを TIFF に変換** + +Aspose.Slides for Node.js via Java を使用して、メモ付きで PowerPoint または OpenDocument プレゼンテーションを TIFF に保存する手順は以下の通りです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスをインスタンス化します:PowerPoint または OpenDocument ファイルをロードします。 +1. 出力レイアウトオプションを構成します:[NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/) クラスを使用して、メモやコメントの表示方法を指定します。 +1. プレゼンテーションを TIFF に保存します:構成したオプションを [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save) メソッドに渡します。 + +たとえば、"speaker_notes.pptx" ファイルに次のスライドがあるとします: + +![スピーカーノート付きのプレゼンテーションスライド](slide_with_notes.png) + +以下のコードスニペットは、[setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) メソッドを使用して、Notes Slide ビューでプレゼンテーションを TIFF 画像に変換する方法を示しています。 +```js +// プレゼンテーションファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // スライドの下にノートを表示します。 + + // Notes レイアウトを使用して TIFF オプションを設定します。 + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // スピーカーノート付きでプレゼンテーションを TIFF に保存します。 + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +結果: + +![スピーカーノート付きの TIFF 画像](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} +Aspose の [無料 PowerPoint からポスターへの変換ツール](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online) をチェックしてください。 +{{% /alert %}} + +## **よくある質問** + +**結果の TIFF のノート領域の位置を制御できますか?** + +はい。[notes layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) を使用して、`None`、`BottomTruncated`、`BottomFull` などのオプションから選択できます。これらはそれぞれ、ノートを非表示にし、単一ページに収め、または追加ページに続けて表示します。 + +**メモ付きの TIFF ファイルのサイズを、品質の目に見える低下なしに減らすにはどうすればよいですか?** + +[efficient compression](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/)(例:`LZW` または `RLE`)を選択し、適切な DPI を設定し、許容できる場合は低い [pixel format](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/)(例えば 8 bpp またはモノクロ用の 1 bpp)を使用します。[image dimensions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) をわずかに縮小することでも、可読性に目立った影響を与えずにサイズ削減が可能です。 + +**システムに元のフォントが存在しない場合、ノートのフォントは結果に影響しますか?** + +はい。フォントが欠落していると [substitution](/slides/ja/nodejs-java/font-selection-sequence/) が発生し、テキストのメトリクスや外観が変わる可能性があります。これを防ぐには、[required fonts](/slides/ja/nodejs-java/custom-font/) を提供するか、デフォルトの [fallback font](/slides/ja/nodejs-java/fallback-font/) を設定して、意図したフォントが使用されるようにしてください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..d024dc4634 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,164 @@ +--- +title: JavaScript で PowerPoint プレゼンテーションを TIFF に変換する +titlelink: PowerPoint から TIFF へ +type: docs +weight: 90 +url: /ja/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- PowerPoint を変換 +- OpenDocument を変換 +- プレゼンテーションを変換 +- スライドを変換 +- PowerPoint から TIFF へ +- OpenDocument から TIFF へ +- プレゼンテーションから TIFF へ +- スライドから TIFF へ +- PPT から TIFF へ +- PPTX から TIFF へ +- ODP から TIFF へ +- Node.js +- JavaScript +- Aspose.Slides +description: "Aspose.Slides for Node.js(Java 経由)を使用して、PowerPoint(PPT、PPTX)および OpenDocument(ODP)プレゼンテーションを高品質な TIFF 画像に簡単に変換する方法を学びます。コード例を含むステップバイステップのガイドです。" +--- + +## **概要** + +TIFF (**Tagged Image File Format**) は、優れた画質とグラフィックの詳細保持で広く使用されているロスレスラスター画像フォーマットです。デザイナー、フォトグラファー、デスクトップパブリッシャーは、画像のレイヤー、色精度、元の設定を維持するために TIFF を選択することが多いです。 + +Aspose.Slides を使用すると、PowerPoint スライド (PPT、PPTX) および OpenDocument スライド (ODP) を直接高品質な TIFF 画像に簡単に変換でき、プレゼンテーションの視覚的な忠実度を最大限に保つことができます。 + +## **プレゼンテーションを TIFF に変換** + +[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスが提供する[save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-) メソッドを使用すると、PowerPoint プレゼンテーション全体をすばやく TIFF に変換できます。生成される TIFF 画像はデフォルトのスライドサイズに対応します。 + +この JavaScript コードは、PowerPoint プレゼンテーションを TIFF に変換する方法を示しています: +```js +// プレゼンテーション ファイル (PPT、PPTX、ODP など) を表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // プレゼンテーションを TIFF として保存します。 + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **プレゼンテーションを白黒 TIFF に変換** + +[TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) クラスの[setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) メソッドを使用すると、カラー スライドや画像を白黒 TIFF に変換する際のアルゴリズムを指定できます。この設定は、[setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) メソッドが `CCITT4` または `CCITT3` に設定されている場合にのみ適用されます。 + +たとえば、以下の「sample.pptx」ファイルに次のスライドがあるとします: + +![プレゼンテーション スライド](slide_black_and_white.png) + +この JavaScript コードは、カラー スライドを白黒 TIFF に変換する方法を示しています: +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +結果: + +![白黒 TIFF](TIFF_black_and_white.png) + +## **カスタムサイズの TIFF にプレゼンテーションを変換** + +特定の寸法の TIFF 画像が必要な場合は、[TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) に用意されたメソッドで希望の値を設定できます。たとえば、[setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize) メソッドを使用すると、生成される画像のサイズを指定できます。 + +この JavaScript コードは、PowerPoint プレゼンテーションをカスタム サイズの TIFF 画像に変換する方法を示しています: +```js +// プレゼンテーション ファイル (PPT、PPTX、ODP など) を表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // 圧縮タイプを設定します。 + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + 圧縮タイプ: + Default - デフォルトの圧縮方式 (LZW) を指定します。 + None - 圧縮しません。 + CCITT3 + CCITT4 + LZW + RLE + */ + + // 深度は圧縮タイプに依存し、手動で設定できません。 + + // 画像 DPI を設定します。 + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // 画像サイズを設定します。 + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // 指定したサイズでプレゼンテーションを TIFF として保存します。 + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **カスタム画像ピクセルフォーマットの TIFF にプレゼンテーションを変換** + +[TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) クラスの[setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) メソッドを使用すると、生成される TIFF 画像のピクセルフォーマットを任意に指定できます。 + +この JavaScript コードは、PowerPoint プレゼンテーションをカスタム ピクセルフォーマットの TIFF 画像に変換する方法を示しています: +```js +// プレゼンテーション ファイル (PPT、PPTX、ODP など) を表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat には次の値が含まれます(ドキュメントに記載されているとおり): + Format1bppIndexed - 1 ビット/ピクセル、インデックス形式。 + Format4bppIndexed - 4 ビット/ピクセル、インデックス形式。 + Format8bppIndexed - 8 ビット/ピクセル、インデックス形式。 + Format24bppRgb - 24 ビット/ピクセル、RGB。 + Format32bppArgb - 32 ビット/ピクセル、ARGB。 + */ + + /// 指定した画像サイズでプレゼンテーションを TIFF として保存します。 + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Tip" color="primary" %}} +Aspose の無料 PowerPoint からポスターへのコンバータをご覧ください。 +{{% /alert %}} + +## **FAQ** + +**PowerPoint プレゼンテーション全体ではなく、個々のスライドを TIFF に変換できますか?** + +はい。Aspose.Slides を使用すると、PowerPoint および OpenDocument プレゼンテーションから個々のスライドを別々に TIFF 画像に変換できます。 + +**プレゼンテーションを TIFF に変換する際、スライド数に制限はありますか?** + +いいえ、Aspose.Slides はスライド数に制限を設けていません。任意のサイズのプレゼンテーションを TIFF 形式に変換できます。 + +**スライドを TIFF に変換すると、PowerPoint のアニメーションやトランジション効果は保持されますか?** + +保持されません。TIFF は静止画像フォーマットであるため、アニメーションやトランジション効果は保存されず、スライドの静止スナップショットのみがエクスポートされます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..a9e820863a --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,327 @@ +--- +title: PowerPoint をビデオに変換 +type: docs +weight: 130 +url: /ja/nodejs-java/convert-powerpoint-to-video/ +keywords: "PowerPoint を変換, PPT, PPTX, プレゼンテーション, ビデオ, MP4, PPT をビデオに変換, PPT を MP4 に変換, Java, Aspose.Slides" +description: "JavaScript で PowerPoint をビデオに変換" +--- + +PowerPoint プレゼンテーションをビデオに変換することで、次のメリットがあります + +* **アクセシビリティの向上:** すべてのデバイス (プラットフォームに関係なく) はデフォルトでビデオプレーヤーを搭載しているため、プレゼンテーション用アプリケーションよりもビデオの再生や開くが容易です。 +* **リーチの拡大:** ビデオを通じて多くの視聴者にリーチでき、プレゼンテーションで退屈に感じられる情報も提供できます。多くの調査や統計によれば、人々は他のコンテンツ形態よりもビデオを視聴・消費する傾向があり、一般的にそのようなコンテンツを好みます。 + +{{% alert color="primary" %}} +以下の [**PowerPoint ビデオオンラインコンバーター**](https://products.aspose.app/slides/conversion/ppt-to-word) をご確認ください。この記事で説明したプロセスの実際かつ効果的な実装です。 +{{% /alert %}} + +## **Aspose.Slides における PowerPoint からビデオへの変換** + +[Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/) では、プレゼンテーションからビデオへの変換機能を実装しました。 + +* **Aspose.Slides** を使用して、プレゼンテーションのスライドから特定の FPS (フレーム毎秒) に対応するフレームのセットを生成します +* **ffmpeg** のようなサードパーティユーティリティ ([for java](https://github.com/bramp/ffmpeg-cli-wrapper)) を使用して、フレームからビデオを作成します + +### **PowerPoint をビデオに変換** + +1. ffmpeg を [ここ](https://ffmpeg.org/download.html) からダウンロードします。 +2. PowerPoint からビデオへの JavaScript コードを実行します。 + +この JavaScript コードは、図と 2 つのアニメーション効果を含むプレゼンテーションをビデオに変換する方法を示しています: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // 笑顔のシェイプを追加し、アニメーションを適用します + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // ffmpeg バイナリフォルダを設定します。このページをご参照ください: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **ビデオエフェクト** + +スライド上のオブジェクトにアニメーションを適用したり、スライド間のトランジションを使用したりできます。 + +{{% alert color="primary" %}} +以下の記事をご覧ください: [PowerPoint アニメーション](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/)、[シェイプ アニメーション](https://docs.aspose.com/slides/nodejs-java/shape-animation/)、および [シェイプ エフェクト](https://docs.aspose.com/slides/nodejs-java/shape-effect/)。 +{{% /alert %}} + +アニメーションとトランジションはスライドショーをより魅力的にし、ビデオでも同様の効果があります。前のプレゼンテーションのコードに別のスライドとトランジションを追加してみましょう: +```javascript +// 笑顔のシェイプを追加し、アニメーションを適用します +// ... +// 新しいスライドを追加し、アニメーション付きトランジションを設定します +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +Aspose.Slides はテキストのアニメーションもサポートしています。オブジェクト上の段落をアニメーションさせ、1 秒の遅延で順番に表示させます: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // テキストとアニメーションを追加します + var autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 120, 300, 300); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Aspose Slides for Node.js via Java")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("convert PowerPoint Presentation with text to video")); + var para3 = new aspose.slides.Paragraph(); + para3.getPortions().add(new aspose.slides.Portion("paragraph by paragraph")); + var paragraphCollection = autoShape.getTextFrame().getParagraphs(); + paragraphCollection.add(para1); + paragraphCollection.add(para2); + paragraphCollection.add(para3); + paragraphCollection.add(new aspose.slides.Paragraph()); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effect1 = mainSequence.addEffect(para1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect2 = mainSequence.addEffect(para2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect3 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect4 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + effect1.getTiming().setTriggerDelayTime(1.0); + effect2.getTiming().setTriggerDelayTime(1.0); + effect3.getTiming().setTriggerDelayTime(1.0); + effect4.getTiming().setTriggerDelayTime(1.0); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // ffmpeg バイナリフォルダを設定します。このページをご覧ください: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **ビデオ変換クラス** + +PowerPoint からビデオへの変換タスクを実行できるように、Aspose.Slides は [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) と [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) クラスを提供します。 + +[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) は、コンストラクタでビデオのフレームサイズを設定できます。プレゼンテーションのインスタンスを渡すと `Presentation.getSlideSize` が使用され、生成されたアニメーションは [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) が使用します。 + +アニメーションが生成されると、各アニメーションごとに `NewAnimation` イベントが発生し、[PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/) パラメータが渡されます。後者は個別アニメーション用のプレーヤークラスです。 + +[PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/) を使用するには、`getDuration` (アニメーションの全長) メソッドと `setTimePosition` メソッドを利用します。各アニメーション位置は *0 から duration* の範囲で設定され、`getFrame` メソッドはその時点のアニメーション状態に対応する BufferedImage を返します: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // 笑顔のシェイプを追加し、アニメーションさせます + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// 初期アニメーション状態 + try { + // 初期アニメーション状態のビットマップ + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// アニメーションの最後のフレーム + try { + // アニメーションの最後のフレーム + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +すべてのアニメーションを同時に再生するには、[PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) クラスを使用します。このクラスは [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) インスタンスと FPS をコンストラクタで受け取り、すべてのアニメーションに対して `FrameTick` イベントを呼び出して再生させます: +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +その後、生成されたフレームをまとめてビデオにコンパイルできます。詳細は [Convert PowerPoint to Video](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video) セクションをご参照ください。 + +## **サポートされているアニメーションとエフェクト** + +**開始**: + +| アニメーションタイプ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Appear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly In** | ![supported](v.png) | ![supported](v.png) | +| **Float In** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Wheel** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Grow & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**強調**: + +| アニメーションタイプ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Color Pulse** | ![not supported](x.png) | ![supported](v.png) | +| **Teeter** | ![supported](v.png) | ![supported](v.png) | +| **Spin** | ![supported](v.png) | ![supported](v.png) | +| **Grow/Shrink** | ![not supported](x.png) | ![supported](v.png) | +| **Desaturate** | ![not supported](x.png) | ![supported](v.png) | +| **Darken** | ![not supported](x.png) | ![supported](v.png) | +| **Lighten** | ![not supported](x.png) | ![supported](v.png) | +| **Transparency** | ![not supported](x.png) | ![supported](v.png) | +| **Object Color** | ![not supported](x.png) | ![supported](v.png) | +| **Complementary Color** | ![not supported](x.png) | ![supported](v.png) | +| **Line Color** | ![not supported](x.png) | ![supported](v.png) | +| **Fill Color** | ![not supported](x.png) | ![supported](v.png) | + +**終了**: + +| アニメーションタイプ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Disappear** | ![not supported](x.png) | ![supported](v.png) | +| **Fade** | ![supported](v.png) | ![supported](v.png) | +| **Fly Out** | ![supported](v.png) | ![supported](v.png) | +| **Float Out** | ![supported](v.png) | ![supported](v.png) | +| **Split** | ![supported](v.png) | ![supported](v.png) | +| **Wipe** | ![supported](v.png) | ![supported](v.png) | +| **Shape** | ![supported](v.png) | ![supported](v.png) | +| **Random Bars** | ![supported](v.png) | ![supported](v.png) | +| **Shrink & Turn** | ![not supported](x.png) | ![supported](v.png) | +| **Zoom** | ![supported](v.png) | ![supported](v.png) | +| **Swivel** | ![supported](v.png) | ![supported](v.png) | +| **Bounce** | ![supported](v.png) | ![supported](v.png) | + +**モーション パス**: + +| アニメーションタイプ | Aspose.Slides | PowerPoint | +|---|---|---| +| **Lines** | ![supported](v.png) | ![supported](v.png) | +| **Arcs** | ![supported](v.png) | ![supported](v.png) | +| **Turns** | ![supported](v.png) | ![supported](v.png) | +| **Shapes** | ![supported](v.png) | ![supported](v.png) | +| **Loops** | ![supported](v.png) | ![supported](v.png) | +| **Custom Path** | ![supported](v.png) | ![supported](v.png) | + +## **FAQ** + +**パスワードで保護されたプレゼンテーションの変換は可能ですか?** +はい、Aspose.Slides はパスワードで保護されたプレゼンテーションの操作をサポートしています。これらのファイルを処理する際は、正しいパスワードを提供してライブラリがプレゼンテーションの内容にアクセスできるようにしてください。 + +**Aspose.Slides はクラウド ソリューションでの使用をサポートしていますか?** +はい、Aspose.Slides はクラウド アプリケーションやサービスに統合できます。このライブラリはサーバー環境での動作を前提に設計されており、バッチ処理において高いパフォーマンスとスケーラビリティを提供します。 + +**変換時にプレゼンテーションのサイズ制限はありますか?** +Aspose.Slides は事実上あらゆるサイズのプレゼンテーションを処理できます。ただし、非常に大きなファイルを扱う場合は追加のシステムリソースが必要になることがあり、パフォーマンス向上のためにプレゼンテーションを最適化することが推奨されることがあります。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..28d87590c8 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,92 @@ +--- +title: PowerPoint を XPS に変換 +type: docs +weight: 70 +url: /ja/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX を XPS に" +description: "JavaScript で PowerPoint PPT(X) を XPS に変換" +--- + +## **XPS について** + +Microsoft は [XPS](https://docs.fileformat.com/page-description-language/xps/) を [PDF](https://docs.fileformat.com/pdf/) の代替として開発しました。PDF に非常に似たファイルを出力することでコンテンツを印刷できます。XPS 形式は XML に基づいています。XPS ファイルのレイアウトや構造は、すべての OS やプリンターで同一です。 + +## **Microsoft XPS フォーマットの使用時期** + +{{% alert color="primary" %}} +Microsoft PowerPoint の PPT または PPTX プレゼンテーションを XPS 形式に変換する方法は、[この無料オンライン変換アプリ](https://products.aspose.app/slides/conversion) で確認できます。 +{{% /alert %}} + +ストレージ コストを削減したい場合、PowerPoint プレゼンテーションを XPS 形式に変換できます。これにより、ドキュメントの保存・共有・印刷が容易になります。 + +Microsoft は Windows (Windows 10 でも) で XPS の強力なサポートを継続的に実装していますので、ファイルをこの形式で保存することを検討してください。Windows 8.1、Windows 8、Windows 7、Windows Vista を使用している場合、特定の操作において XPS が最適な選択肢になることがあります。 + +- **Windows 8** は XPS ファイルに OXPS (Open XPS) 形式を使用します。OXPS は元の XPS 形式の標準化バージョンです。Windows 8 は PDF ファイルよりも XPS ファイルのサポートが優れています。 + - **XPS**: 組み込み XPS ビューア/リーダーと XPS への印刷機能が利用可能。 + - **PDF**: PDF リーダーは利用可能ですが、PDF への印刷機能はありません。 + +- **Windows 7 と Windows Vista** は元の XPS 形式を使用します。これらの OS も PDF より XPS のサポートが優れています。 + - **XPS**: 組み込み XPS ビューアと XPS への印刷機能が利用可能。 + - **PDF**: PDF リーダーはなし。PDF への印刷機能はなし。 + +|

**入力 PPT(X):**

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**出力 XPS:**

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| +| :- | :- | + +Microsoft は最終的に Windows 10 の「Print to PDF」機能を通じて PDF の印刷操作サポートを実装しました。以前はユーザーは XPS 形式を介してドキュメントを印刷することが想定されていました。 + +## **Aspose.Slides による XPS 変換** + +[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) では、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスが提供する [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) メソッドを使用して、プレゼンテーション全体を XPS ドキュメントに変換できます。 + +プレゼンテーションを XPS に変換する場合、次のいずれかの設定で保存する必要があります。 + +- デフォルト設定 ( **XPSOptions** なし ) +- カスタム設定 ( **XPSOptions** あり ) + +### **デフォルト設定でプレゼンテーションを XPS に変換する** + +次の JavaScript サンプルコードは、標準設定を使用してプレゼンテーションを XPS ドキュメントに変換する方法を示しています。 +```javascript +// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // プレゼンテーションを XPS ドキュメントに保存します + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **カスタム設定でプレゼンテーションを XPS に変換する** + +次のサンプルコードは、カスタム設定を使用してプレゼンテーションを XPS ドキュメントに変換する方法を JavaScript で示しています。 +```javascript +// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // TiffOptions クラスをインスタンス化します + var options = new aspose.slides.XpsOptions(); + // メタファイルを PNG として保存します + options.setSaveMetafilesAsPng(true); + // プレゼンテーションを XPS ドキュメントに保存します + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**ストリームに保存して XPS を取得できますか?** + +はい。Aspose.Slides はストリームへの直接エクスポートをサポートしており、Web API、サーバー側パイプライン、またはファイルシステムに触れずに XPS を送信したいシナリオに最適です。 + +**非表示スライドは XPS に含まれますか?除外できますか?** + +デフォルトでは、通常の(可視)スライドのみがレンダリングされます。保存前に [export settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/) で [非表示スライドの含める/除外する設定](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/) を使用でき、出力に意図したページだけを含めることができます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..c0c34cf94f --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,101 @@ +--- +title: JavaScriptでPPTをPPTXに変換 +linktitle: PPTをPPTXに変換 +type: docs +weight: 20 +url: /ja/nodejs-java/convert-ppt-to-pptx/ +keywords: "JavaでPPTをPPTXに変換, JavaScriptのPowerPoint PPTからPPTXへの変換" +description: "JavaScriptでPowerPoint PPTをPPTXに変換します。" +--- + +## **概要** + +この記事では、JavaScript とオンライン PPT から PPTX への変換アプリを使用して、PPT 形式の PowerPoint プレゼンテーションを PPTX 形式に変換する方法を説明します。以下のトピックが取り上げられます。 + +- JavaScript で PPT を PPTX に変換 + +## **Java PPT を PPTX に変換** + +JavaScript のサンプルコードで PPT を PPTX に変換する方法については、以下のセクション「[Convert PPT to PPTX](#convert-ppt-to-pptx)」をご参照ください。このコードは PPT ファイルを読み込み、PPTX 形式で保存します。保存形式を指定することで、PDF、XPS、ODP、HTML など多数の他の形式にも PPT ファイルを保存できます。これらの記事で説明しています。 + +- [Java PPT を PDF に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java PPT を XPS に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java PPT を HTML に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java PPT を ODP に変換](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java PPT を Image に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **PPT から PPTX への変換について** +Aspose.Slides API を使用して古い PPT 形式を PPTX に変換します。数千もの PPT プレゼンテーションを PPTX 形式に変換する必要がある場合、最適な方法はプログラムで実行することです。Aspose.Slides API を使えば、数行のコードで実現できます。API は PPT プレゼンテーションを PPTX に変換する完全な互換性をサポートしており、以下が可能です: + +- マスター、レイアウト、スライドの複雑な構造を変換します。 +- チャートを含むプレゼンテーションを変換します。 +- グループ形状、オートシェイプ(長方形や楕円など)、カスタムジオメトリを持つシェイプを含むプレゼンテーションを変換します。 +- テクスチャや画像の塗りつぶしスタイルを持つオートシェイプを含むプレゼンテーションを変換します。 +- プレースホルダ、テキストフレーム、テキストホルダーを持つプレゼンテーションを変換します。 + +{{% alert color="primary" %}} + +以下の [**Aspose.Slides PPT to PPTX Conversion**](https://products.aspose.app/slides/conversion/ppt-to-pptx) アプリをご覧ください: + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +このアプリは [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) をベースに構築されており、基本的な PPT から PPTX への変換機能の実例を見ることができます。Aspose.Slides Conversion はウェブアプリで、PPT 形式のプレゼンテーションファイルをドロップすると PPTX に変換してダウンロードできます。 + +他のライブ [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) の例をご確認ください。 +{{% /alert %}} + +## **PPT を PPTX に変換** +Aspose.Slides for Node.js via Java は、開発者が [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを使用して PPT にアクセスし、対応する [PPTX](https://docs.fileformat.com/presentation/pptx/) 形式に変換できるようになりました。現在、[PPT](https://docs.fileformat.com/presentation/ppt/) の部分的な PPTX 変換をサポートしています。PPT から PPTX への変換でサポートされている機能とサポートされていない機能の詳細については、こちらのドキュメント [link](/slides/ja/nodejs-java/ppt-to-pptx-conversion/)をご覧ください。 + +Aspose.Slides for Node.js via Java は、**PPTX** プレゼンテーションファイルを表す [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスを提供します。インスタンス化されたオブジェクトでは、Presentation クラスを通じて **PPT** にもアクセスできるようになりました。以下の例は、PPT プレゼンテーションを PPTX プレゼンテーションに変換する方法を示しています。 +```javascript +// PPTX ファイルを表す Presentation オブジェクトをインスタンス化 +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // PPTX プレゼンテーションを PPTX 形式で保存 + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**Figure : 元の PPT プレゼンテーション**| + +上記のコードスニペットは、変換後に以下の PPTX プレゼンテーションを生成しました。 + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**Figure:変換後に生成された PPTX プレゼンテーション**| + +## **FAQ** + +**PPT と PPTX 形式の違いは何ですか?** + +PPT は Microsoft PowerPoint が使用していた古いバイナリファイル形式で、PPTX は Microsoft Office 2007 で導入された新しい XML ベースの形式です。PPTX ファイルは、パフォーマンスの向上、ファイルサイズの削減、データ復元性の改善をもたらします。 + +**Aspose.Slides は複数の PPT ファイルを PPTX にバッチ変換することをサポートしていますか?** + +はい、Aspose.Slides をループで使用して複数の PPT ファイルをプログラム的に PPTX に変換でき、バッチ変換シナリオに適しています。 + +**変換後にコンテンツと書式は保持されますか?** + +Aspose.Slides はプレゼンテーションの高忠実度変換を維持します。スライドレイアウト、アニメーション、シェイプ、チャート、およびその他のデザイン要素は PPT から PPTX への変換中に保持されます。 + +**PPT ファイルから PDF や HTML など他の形式に変換できますか?** + +はい、Aspose.Slides は PPT ファイルを PDF、XPS、HTML、ODP、PNG や JPEG などの画像形式へ変換することをサポートしています。 + +**Microsoft PowerPoint がインストールされていなくても PPT を PPTX に変換できますか?** + +はい、Aspose.Slides はスタンドアロン API であり、Microsoft PowerPoint やサードパーティソフトウェアを必要とせずに変換を実行できます。 + +**PPT から PPTX への変換に利用できるオンラインツールはありますか?** + +はい、無料の [Aspose.Slides PPT to PPTX Converter](https://products.aspose.app/slides/conversion/ppt-to-pptx) ウェブアプリを使用すれば、コードを書かずにブラウザー上で直接変換できます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..321a0b0eb7 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: JavaScript で PPTX を PPT に変換 +linktitle: PPTX を PPT に変換 +type: docs +weight: 21 +url: /ja/nodejs-java/convert-pptx-to-ppt/ +keywords: "Java PPTX を PPT に変換, PowerPoint プレゼンテーションの変換, PPTX から PPT, Java, Aspose.Slides" +description: "JavaScript で PowerPoint PPTX を PPT に変換" +--- + +## **概要** + +この記事では、JavaScript を使用して PPTX 形式の PowerPoint プレゼンテーションを PPT 形式に変換する方法を説明します。以下のトピックがカバーされています。 + +- JavaScript で PPTX を PPT に変換 + +## **JavaScript で PPTX を PPT に変換** + +PPTX を PPT に変換する JavaScript のサンプルコードについては、以下のセクション [Convert PPTX to PPT](#convert-pptx-to-ppt) を参照してください。これは PPTX ファイルを読み込み、PPT 形式で保存するだけです。異なる保存形式を指定することで、PDF、XPS、ODP、HTML などの多くの形式でも PPTX ファイルを保存できます。これらの記事で説明されています。 + +- [Java で PPTX を PDF に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java で PPTX を XPS に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java で PPTX を HTML に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java で PPTX を ODP に変換](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java で PPTX を Image に変換](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **PPTX を PPT に変換** + +PPTX を PPT に変換するには、ファイル名と保存形式を **Save** メソッドに渡すだけです。**Presentation** クラス ([**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)) を使用します。以下の JavaScript コードサンプルは、デフォルトオプションで PPTX から PPT にプレゼンテーションを変換します。 +```javascript +// PPTX ファイルを表す Presentation オブジェクトをインスタンス化 +var presentation = new aspose.slides.Presentation("template.pptx"); +// プレゼンテーションを PPT として保存 +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **FAQ** + +**PPTX のすべての効果と機能は、レガシー PPT(97–2003)形式で保存するときに維持されますか?** + +必ずしもそうではありません。PPT 形式には newer capabilities (例: 特定の効果、オブジェクト、挙動) が欠けているため、変換時に機能が簡略化されたりラスタライズされたりする可能性があります。 + +**プレゼンテーション全体ではなく、選択したスライドだけを PPT に変換できますか?** + +直接保存はプレゼンテーション全体を対象とします。特定のスライドだけを変換するには、そのスライドだけで構成された新しいプレゼンテーションを作成し、PPT として保存します。あるいは、スライド単位の変換パラメータをサポートするサービス/APIを使用してください。 + +**パスワードで保護されたプレゼンテーションはサポートされていますか?** + +はい。ファイルが保護されているかを検出し、パスワードで開くことができます。また、保存された PPT のために [configure protection/encryption settings](/slides/ja/nodejs-java/password-protected-presentation/) を設定することも可能です。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..b5a205f93b --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,65 @@ +--- +title: "PPT と PPTX" +type: docs +weight: 10 +url: /ja/nodejs-java/ppt-vs-pptx/ +keywords: "PPT と PPTX" +description: "Aspose.Slides における PPT と PPTX の違いについて読んでください。" +--- + +## **PPTとは何ですか?** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) はバイナリファイル形式であり、特殊なツールなしでは内容を表示できません。最初の PowerPoint 97-2003 バージョンは PPT ファイル形式を使用していましたが、拡張性は限られています。 + +## **PPTXとは何ですか?** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) は Office Open XML (ISO 29500:2008-2016, ECMA-376) 標準に基づく新しいプレゼンテーションファイル形式です。PPTX は XML とメディア ファイルのアーカイブセットです。PPTX 形式は容易に拡張できます。たとえば、新しいチャート タイプやシェイプ タイプへのサポートを追加するのは、毎回新しい PowerPoint バージョンで PPTX 形式を変更する必要がなく簡単です。PPTX 形式は PowerPoint 2007 以降で使用されています。 + +## **PPT と PPTX の比較** + +PPTX ははるかに広範な機能を提供しますが、PPT は依然としてかなり人気があります。PPT から PPTX、またはその逆への変換の必要性は非常に高いです。 + +しかし、古い PPT と新しい PPTX 形式間の変換は、他の Microsoft Office 形式の中で最も複雑な課題です。PPT 形式の仕様は公開されていますが、扱いは困難です。PowerPoint は PPT ファイル内に特別なパーツ (MetroBlob) を作成して、PPT 形式でサポートされず古い PowerPoint バージョンで表示できない PPTX の情報を保存できます。この情報は、最新の PowerPoint バージョンで PPT ファイルが読み込まれるか PPTX 形式に変換されたときに復元できます。 + +Aspose.Slides はすべてのプレゼンテーション形式を扱う共通クラスを提供します。PPT から PPTX、PPTX から PPT への変換を非常にシンプルに行うことができます。Aspose.Slides は PPT から PPTX への変換を完全にサポートし、いくつかの制限はありますが PPTX から PPT への変換もサポートします。可能な限り PPTX 形式の使用を推奨します。 + +{{% alert color="primary" %}} + +オンラインの[**Aspose.Slides Conversion app**](https://products.aspose.app/slides/conversion/)で PPT から PPTX、PPTX から PPT の変換品質を確認してください。 + +{{% /alert %}} +```javascript +// PPT ファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // PPT プレゼンテーションを PPTX 形式で保存します + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +さらに読む [**How to Convert Presentations PPT to PPTX**.](/slides/ja/nodejs-java/convert-ppt-to-pptx/) +{{% /alert %}} + +## **FAQ** + +**古いプレゼンテーションがエラーなく開くのであれば、PPT のままにしておく意味はありますか?** + +プレゼンテーションが確実に開き、共同作業や新機能が不要であれば PPT のまま維持できます。ただし、将来の互換性と拡張性を考えると、[PPTX に変換](/slides/ja/nodejs-java/convert-ppt-to-pptx/)する方が良いです。PPTX はオープンな OOXML 標準に基づいており、最新ツールでのサポートが容易です。 + +**どのファイルを優先的に PPTX に変換すべきか、判断する方法はありますか?** + +まず、複数人で編集されているプレゼンテーション、複雑な[チャート](/slides/ja/nodejs-java/create-chart/)/[シェイプ](/slides/ja/nodejs-java/shape-manipulations/)を含むもの、外部コミュニケーションで使用されるもの、または[開く](/slides/ja/nodejs-java/open-presentation/)際に警告が出るものを優先的に変換してください。 + +**PPT から PPTX、そして戻す際にパスワード保護は保持されますか?** + +パスワードの保持は、使用するツールが正しい変換と暗号化をサポートしている場合にのみ可能です。まず[保護を解除](/slides/ja/nodejs-java/password-protected-presentation/)、変換[(/slides/ja/nodejs-java/convert-ppt-to-pptx/)](/slides/ja/nodejs-java/convert-ppt-to-pptx/)、そしてセキュリティ ポリシーに従って再度保護を適用する方が信頼性が高いです。 + +**PPTX を PPT に戻すと一部のエフェクトが消えたり簡略化されたりするのはなぜですか?** + +PPT は一部の新しいオブジェクトやプロパティをサポートしていないためです。PowerPoint やツールはこの情報の「痕跡」を特別なブロックに保存して後で復元できるようにしますが、古いバージョンの PowerPoint ではそれらをレンダリングできません。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..b5c60ebecc --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,68 @@ +--- +title: スライドをSVG画像としてレンダリングする +type: docs +weight: 50 +url: /ja/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **SVG フォーマット** + +SVG は Scalable Vector Graphics の略で、2 次元画像をレンダリングするために使用される標準的なグラフィックタイプまたはフォーマットです。SVG は画像を XML のベクトルとして保存し、動作や外観を定義する詳細を含みます。 + +SVG はスケーラビリティ、インタラクティビティ、パフォーマンス、アクセシビリティ、プログラム可能性などの点で非常に高い基準を満たす数少ない画像フォーマットの一つです。そのため、Web 開発で一般的に使用されます。 + +以下のような場合に SVG ファイルの使用を検討してください。 + +- **プレゼンテーションを *非常に大きなフォーマット* で印刷する**。SVG 画像は任意の解像度やレベルにスケールアップできます。品質を犠牲にすることなく必要な回数だけ SVG 画像のサイズを変更できます。 +- **スライドのチャートやグラフを *異なる媒体やプラットフォーム* で使用する**。ほとんどの閲覧者は SVG ファイルを解釈できます。 +- **画像の *可能な限り最小サイズ* を使用する**。SVG ファイルはビットマップベースのフォーマット(JPEG や PNG)に比べて、同等の高解像度画像よりも一般的にサイズが小さくなります。 + +## **スライドを SVG 画像としてレンダリングする** + +Aspose.Slides for Node.js via Java を使用すると、プレゼンテーション内のスライドを SVG 画像としてエクスポートできます。以下の手順で SVG 画像を生成します。 + +1. Presentation クラスのインスタンスを作成します。 +2. プレゼンテーション内のすべてのスライドを反復処理します。 +3. 各スライドを FileOutputStream を使用して個別の SVG ファイルに書き込みます。 + +{{% alert color="primary" %}} + +Aspose.Slides for Node.js via Java の PPT から SVG への変換機能を実装した [無料ウェブアプリケーション](https://products.aspose.app/slides/conversion/ppt-to-svg) を試してみてください。 + +{{% /alert %}} + +以下の JavaScript サンプルコードは、Aspose.Slides を使用して PPT を SVG に変換する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**なぜブラウザー間で生成された SVG の見た目が異なることがあるのでしょうか?** + +特定の SVG 機能へのサポートは、ブラウザーエンジンによって異なる実装がされています。[SVGOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) パラメータは、互換性の問題を緩和するのに役立ちます。 + +**スライドだけでなく個々のシェイプを SVG としてエクスポートすることは可能ですか?** + +はい。任意の [シェイプを個別の SVG として保存](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/) でき、アイコンやピクトグラム、グラフィックの再利用に便利です。 + +**複数のスライドを単一の SVG(ストリップ/ドキュメント)に結合することはできますか?** + +標準シナリオはスライド 1 枚 → SVG 1 枚です。複数スライドを単一の SVG キャンバスに結合するのは、アプリケーションレベルで行うポストプロセッシングのステップです。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..63fed0cb47 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,153 @@ +--- +title: HTML5 へのエクスポート +type: docs +weight: 40 +url: /ja/nodejs-java/export-to-html5/ +keywords: +- PowerPoint を HTML に変換 +- スライドを HTML に変換 +- HTML5 +- HTML エクスポート +- プレゼンテーションのエクスポート +- プレゼンテーションの変換 +- スライドの変換 +- Java +- Node.js 用 Aspose.Slides (Java 経由) +description: "JavaScript で PowerPoint を HTML5 にエクスポート" +--- + +{{% alert title="Info" color="info" %}} + +In [Aspose.Slides 21.9](/slides/ja/nodejs-java/aspose-slides-for-java-21-9-release-notes/), we implemented support for HTML5 export. + +{{% /alert %}} + +The export to HTML5 process here allows you to convert PowerPoint to HTML without web extensions or dependencies. This way, using your own templates, you can apply very flexible options that define the export process and the resulting HTML, CSS, JavaScript, and animation attributes. + +## **Export PowerPoint to HTML5** + +This JavaScript code shows how you to export a presentation to HTML5 without web extensions and dependencies: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +In this case, you get clean HTML. +{{% /alert %}} + +You may want to specify settings for shape animations and slide transitions this way: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Export PowerPoint to HTML** + +This JavaScript demonstrates the standard PowerPoint to HTML process: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +In this case, the presentation content is rendered through SVG in a form like this: +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="Note" color="warning" %}} + +When you use this method to export PowerPoint to HTML, due to the SVG rendering, you will not be to apply styles or animate specific elements. + +{{% /alert %}} + +## **Export PowerPoint to HTML5 Slide View** + +**Aspose.Slides** allows you to convert a PowerPoint presentation to an HTML5 document in which the slides are presented in a slide view mode. In this case, when you open the resulting HTML5 file in a browser, you see the presentation in slide view mode on a web page. + +This JavaScript code demonstrates the PowerPoint to HTML5 Slide View export process: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Convert a Presentation to an HTML5 Document with Comments** + +Comments in PowerPoint are a tool that allows users to leave notes or feedback on presentation slides. They are especially useful in collaborative projects, where multiple people can add their suggestions or remarks to specific slide elements without altering the main content. Each comment shows the author's name, making it easy to track who left the remark. + +Let's say we have the following PowerPoint presentation saved in the "sample.pptx" file. + +![プレゼンテーションスライド上の 2 つのコメント](two_comments_pptx.png) + +When you convert a PowerPoint presentation to an HTML5 document, you can easily specify whether to include comments from the presentation in the output document. To do this, you need to specify the display parameters for comments in the `notes_comments_layouting` property of the [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/) class. + +The following code example converts a presentation to an HTML5 document with comments displayed to the right of the slides. +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +The "output.html" document is shown in the image below. + +![出力された HTML5 ドキュメント内のコメント](two_comments_html5.png) + +## **FAQ** + +**Can I control whether object animations and slide transitions will play in HTML5?** + +Yes, HTML5 provides separate options to enable or disable [shape animations](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) and [slide transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/). + +**Is the output of comments supported, and where can they be placed relative to the slide?** + +Yes, comments can be added in HTML5 and positioned (for example, to the right of the slide) through [layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) for notes and comments. + +**Can I skip links that invoke JavaScript for security or CSP reasons?** + +Yes, there is a [setting](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks) that allows you to skip hyperlinks with JavaScript calls during saving. This helps comply with strict security policies. \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..857061bd46 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,70 @@ +--- +title: XAMLへのエクスポート +type: docs +weight: 30 +url: /ja/nodejs-java/export-to-xaml/ +--- + +## **プレゼンテーションのXAMLへのエクスポート** + +{{% alert color="primary" %}} + +In [Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/), we implemented support for XAML export. You can now export your presentations to XAML. + +Aspose.Slides 21.6 で、XAML エクスポートのサポートを実装しました。これでプレゼンテーションを XAML にエクスポートできるようになりました。 + +{{% /alert %}} + +## **XAML について** + +XAML は記述型プログラミング言語で、特に WPF(Windows Presentation Foundation)、UWP(Universal Windows Platform)、Xamarin Forms を使用するアプリ向けにユーザークラスを構築または記述することができます。 + +XML ベースの言語である XAML は、GUI を記述するための Microsoft のバリアントです。ほとんどの場合、デザイナーを使って XAML ファイルを操作しますが、GUI を手動で記述・編集することも可能です。 + +## **デフォルトオプションでプレゼンテーションを XAML にエクスポート** + +この JavaScript コードは、デフォルト設定でプレゼンテーションを XAML にエクスポートする方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタムオプションでプレゼンテーションを XAML にエクスポート** + +[XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions) クラスからエクスポートプロセスを制御し、Aspose.Slides がプレゼンテーションを XAML にエクスポートする方法を決定するオプションを選択できます。 + +例えば、XAML にエクスポートする際に隠しスライドも含めたい場合は、[setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-) メソッドを true に設定できます。このサンプル JavaScript コードをご覧ください: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**元のフォントがマシンに存在しない場合、予測可能なフォントを確保するにはどうすればよいですか?** + +[XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) の [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) を使用します。元のフォントが見つからない場合のフォールバックフォントとして使用され、予期しない置き換えを防止します。 + +**エクスポートされた XAML は WPF のみを対象としていますか、それとも他の XAML スタックでも使用できますか?** + +XAML は WPF、UWP、Xamarin.Forms で使用される汎用 UI マークアップ言語です。エクスポートは Microsoft の XAML スタックとの互換性を対象としており、具体的な動作や特定の構文のサポートは対象プラットフォームに依存します。ご使用の環境でマークアップをテストしてください。 + +**隠しスライドはサポートされていますか?また、デフォルトでエクスポートされないようにするにはどうすればよいですか?** + +デフォルトでは隠しスライドは含まれません。これを制御するには、[XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) の [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/) を使用します。エクスポートが不要な場合は無効のままにしてください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..025c097816 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,74 @@ +--- +title: JavaScript で PowerPoint プレゼンテーションを作成する +linktitle: プレゼンテーションを作成 +type: docs +weight: 10 +url: /ja/nodejs-java/create-presentation/ +keywords: ppt作成 java, pptプレゼンテーション作成, pptx作成 java +description: JavaScript を使用して、PPT や PPTX などの PowerPoint プレゼンテーションをゼロから作成する方法を学びます。 +--- + +## **PowerPoint プレゼンテーションの作成** + +プレゼンテーションの選択したスライドにシンプルな直線を追加するには、以下の手順に従ってください: + +1. Presentation クラスのインスタンスを作成します。 +1. インデックスを使用してスライドの参照を取得します。 +1. Shapes オブジェクトが公開する addAutoShape メソッドで Line タイプの AutoShape を追加します。 +1. 変更されたプレゼンテーションを書き出して PPTX ファイルにします。 + +以下の例では、プレゼンテーションの最初のスライドに直線を追加しています。 +```javascript +// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得します + var slide = pres.getSlides().get_Item(0); + // ラインタイプのオートシェイプを追加します + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**新しいプレゼンテーションを保存できる形式は何ですか?** + +[PPTX、PPT、ODP](/slides/ja/nodejs-java/save-presentation/) に保存でき、[PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/)、[XPS](/slides/ja/nodejs-java/convert-powerpoint-to-xps/)、[HTML](/slides/ja/nodejs-java/convert-powerpoint-to-html/)、[SVG](/slides/ja/nodejs-java/convert-powerpoint-to-png/)、および[画像](/slides/ja/nodejs-java/convert-powerpoint-to-png/) にエクスポートできます。 + +**テンプレート (POTX/POTM) から開始して、通常の PPTX として保存できますか?** + +はい。テンプレートをロードし、目的の形式に保存します。POTX/POTM/PPTM などの形式は[サポートされています](/slides/ja/nodejs-java/supported-file-formats/)。 + +**プレゼンテーション作成時にスライドサイズ/アスペクト比をどのように制御しますか?** + +[スライド サイズ](/slides/ja/nodejs-java/slide-size/) を設定します(4:3 や 16:9 のプリセットやカスタム寸法を含む)。コンテンツのスケーリング方法も選択できます。 + +**サイズと座標の単位は何ですか?** + +ポイントで表します。1 インチは 72 ユニットです。 + +**非常に大きなプレゼンテーション(多数のメディアファイル)でメモリ使用量を削減するにはどうすればよいですか?** + +[BLOB 管理戦略](/slides/ja/nodejs-java/manage-blob/) を使用し、一時ファイルを活用してメモリ内ストレージを制限し、純粋なメモリストリームよりもファイルベースのワークフローを優先します。 + +**プレゼンテーションを並列に作成/保存できますか?** + +同じ [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) インスタンスを[複数のスレッド](/slides/ja/nodejs-java/multithreading/)から操作することはできません。スレッドまたはプロセスごとに個別のインスタンスを実行してください。 + +**トライアル透かしと制限を削除するにはどうすればよいですか?** + +プロセスごとに1回[ライセンスを適用](/slides/ja/nodejs-java/licensing/)してください。ライセンス XML は変更せず、複数スレッドが関与する場合はライセンス設定を同期させる必要があります。 + +**作成した PPTX にデジタル署名を付けられますか?** + +はい。[デジタル署名](/slides/ja/nodejs-java/digital-signature-in-powerpoint/)(追加と検証)はプレゼンテーションでサポートされています。 + +**作成したプレゼンテーションでマクロ(VBA)はサポートされていますか?** + +はい。[VBA プロジェクトの作成/編集](/slides/ja/nodejs-java/presentation-via-vba/) が可能で、PPTM/PPSM などのマクロ対応ファイルとして保存できます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..cc32da9879 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,117 @@ +--- +title: プレゼンテーションの検査 +type: docs +weight: 30 +url: /ja/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- プレゼンテーション +- プレゼンテーション形式 +- プレゼンテーションプロパティ +- ドキュメントプロパティ +- プロパティ取得 +- プロパティ読み取り +- プロパティ変更 +- プロパティ修正 +- PPTX +- PPT +- JavaScript +- Node +description: "Node で PowerPoint プレゼンテーションのプロパティを読み取り・変更" +--- + +Aspose.Slides for Node.js via Java を使用すると、プレゼンテーションを調べてそのプロパティを確認し、動作を理解できます。 + +{{% alert title="Info" color="info" %}} + +ここで使用する操作に必要なプロパティとメソッドは、[PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) と [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) クラスに含まれています。 + +{{% /alert %}} + +## **プレゼンテーションの形式を確認する** + +プレゼンテーションを操作する前に、現在の形式(PPT、PPTX、ODP など)が何であるかを確認したくなることがあります。 + +プレゼンテーションをロードせずに形式を確認できます。以下の JavaScript コードをご覧ください: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX形式 +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT形式 +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP形式 +``` + + +## **プレゼンテーションのプロパティを取得する** + +この JavaScript コードは、プレゼンテーションのプロパティ(プレゼンテーションに関する情報)を取得する方法を示しています: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +DocumentProperties クラスの [プロパティ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--) を確認したくなるかもしれません。 + +## **プレゼンテーションのプロパティを更新する** + +Aspose.Slides は、プレゼンテーションのプロパティを変更できる [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-) メソッドを提供しています。 + +以下に示すようなドキュメントプロパティを持つ PowerPoint プレゼンテーションがあるとします。 + +![PowerPoint プレゼンテーションの元のドキュメントプロパティ](input_properties.png) + +このコード例は、いくつかのプレゼンテーションプロパティを編集する方法を示しています: +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +ドキュメントプロパティを変更した結果は以下のとおりです。 + +![PowerPoint プレゼンテーションの変更後のドキュメントプロパティ](output_properties.png) + +## **便利なリンク** + +プレゼンテーションとそのセキュリティ属性に関する詳細情報を得るには、以下のリンクが役立つかもしれません: + +- [プレゼンテーションが暗号化されているかどうかの確認](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [プレゼンテーションが書き込み保護(読み取り専用)されているかどうかの確認](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [プレゼンテーションをロードする前にパスワードで保護されているかどうかの確認](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [プレゼンテーションを保護するために使用されたパスワードの確認](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **FAQ** + +**フォントが埋め込まれているか、どのフォントが埋め込まれているかをどう確認できますか?** + +プレゼンテーションレベルで [embedded-font information](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/) を探し、次にそれらのエントリを [実際にコンテンツで使用されているフォント](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/) の集合と比較して、レンダリングに重要なフォントを特定します。 + +**ファイルに非表示スライドがあるか、またその数をすばやく確認する方法は?** + +[slide collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) を反復処理し、各スライドの [visibility flag](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/) を確認します。 + +**カスタムスライドサイズと向きが使用されているか、デフォルトと異なるかを検出できますか?** + +はい。現在の [slide size](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) と向きを標準のプリセットと比較します。これにより、印刷やエクスポート時の動作を予測できます。 + +**チャートが外部データソースを参照しているかどうかをすばやく確認する方法はありますか?** + +はい。すべての [charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/) を走査し、各々の [data source](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/) を確認して、データが内部かリンクベースか、破損したリンクがあるかどうかを記録します。 + +**レンダリングや PDF エクスポートを遅くする可能性のある「重い」スライドをどのように評価できますか?** + +各スライドについてオブジェクト数を集計し、大きな画像、透過、影、アニメーション、マルチメディアなどを調べます。おおまかな複雑度スコアを付与し、パフォーマンス上のボトルネックになり得る箇所を示します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..6b2d36fb21 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,85 @@ +--- +title: プレゼンテーションのインポート +type: docs +weight: 60 +url: /ja/nodejs-java/import-presentation/ +keywords: "PowerPoint のインポート, PDF からプレゼンテーション, PDF から PPTX, PDF から PPT, Java, Aspose.Slides for Node.js via Java" +description: "PDF から PowerPoint プレゼンテーションをインポートします。PDF を PowerPoint に変換します" +--- + +Using [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), you can import presentations from files in other formats. Aspose.Slides provides the [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) class to allow you to import presentations from PDFs, HTML documents, etc. + +## **PDF から PowerPoint をインポート** + +この場合、PDF を PowerPoint プレゼンテーションに変換できます。 + +pdf-to-powerpoint + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/) クラスのインスタンスを作成します。 +2. [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) メソッドを呼び出し、PDF ファイルを渡します。 +3. [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) メソッドを使用して、ファイルを PowerPoint 形式で保存します。 + +この JavaScript コードは PDF から PowerPoint への変換操作を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +このプロセスの実装例として、**Aspose free** の [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint) Web アプリをご確認いただくとよいでしょう。 +{{% /alert %}} + +## **HTML から PowerPoint をインポート** + +この場合、HTML ドキュメントを PowerPoint プレゼンテーションに変換できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/) クラスのインスタンスを作成します。 +2. [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) メソッドを呼び出し、HTML ファイルを渡します。 +3. [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) メソッドを使用して、ファイルを PowerPoint 形式で保存します。 + +この JavaScript コードは HTML から PowerPoint への変換操作を示しています: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**PDF のインポート時にテーブルは保持されますか、また検出精度を向上させることはできますか?** + +インポート時にテーブルを検出できます。[PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) には、テーブル認識を有効にする [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables) メソッドが含まれています。効果は PDF の構造に依存します。 + +{{% alert title="Note" color="warning" %}} +Aspose.Slides を使用して、HTML を他の一般的なファイル形式に変換することもできます: + +* [HTML to image](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) - HTML から画像 +* [HTML to JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) - HTML から JPG +* [HTML to XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) - HTML から XML +* [HTML to TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) - HTML から TIFF + +{{% /alert %}} \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..8af592b9c8 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,123 @@ +--- +title: スライドショーの管理 +type: docs +weight: 90 +url: /ja/nodejs-java/manage-slide-show/ +keywords: +- ショータイプ +- スピーカーによる提示 +- 個人による閲覧 +- キオスクでの閲覧 +- ショーオプション +- 連続ループ +- ナレーションなしで表示 +- アニメーションなしで表示 +- ペンの色 +- スライドの表示 +- カスタムショー +- スライドの進行 +- 手動で +- タイミングの使用 +- PowerPoint +- プレゼンテーション +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "JavaScript を使用して PowerPoint プレゼンテーションのスライドショー設定を管理する" +--- + +Microsoft PowerPoint では、**スライドショー**設定はプロフェッショナルなプレゼンテーションの作成と実施に不可欠なツールです。このセクションで最も重要な機能のひとつは **Set Up Show** で、プレゼンテーションを特定の条件やオーディエンスに合わせて調整でき、柔軟性と利便性を確保します。この機能を使用すると、ショータイプ(例: スピーカーが提示、個人が閲覧、キオスクで閲覧)を選択し、ループの有無を設定し、表示するスライドを指定し、タイミングを使用できます。この準備段階は、プレゼンテーションをより効果的かつプロフェッショナルにするために重要です。 + +`getSlideShowSettings` は [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのメソッドで、[SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/) 型のオブジェクトを返し、PowerPoint プレゼンテーションのスライドショー設定を管理できます。本稿では、このメソッドを使用してスライドショー設定のさまざまな側面を構成および制御する方法を解説します。 + +## **ショータイプの選択** + +`SlideShowSettings.setSlideShowType` はスライドショーのタイプを定義し、次のクラスのいずれかのインスタンスを指定できます: [PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/)、[BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/)、[BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/)。このメソッドを使用すると、自動キオスクや手動プレゼンテーションなど、さまざまな使用シナリオに合わせてプレゼンテーションを適応させることができます。 + +以下のコード例は新しいプレゼンテーションを作成し、スクロールバーを表示せずに「個人が閲覧」タイプに設定します。 +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **ショーオプションの有効化** + +`SlideShowSettings.setLoop` はスライドショーを手動で停止するまでループさせるかどうかを決定します。これは継続的に実行する必要がある自動プレゼンテーションに役立ちます。`SlideShowSettings.setShowNarration` はスライドショー中に音声ナレーションを再生するかどうかを決定します。音声ガイダンスを含む自動プレゼンテーションに有用です。`SlideShowSettings.setShowAnimation` はスライドオブジェクトに追加されたアニメーションを再生するかどうかを決定し、プレゼンテーションの完全な視覚効果を提供します。 + +以下のコード例は新しいプレゼンテーションを作成し、スライドショーをループさせます。 +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **表示スライドの選択** + +`SlideShowSettings.setSlides` メソッドは、プレゼンテーション中に表示するスライドの範囲を選択できます。これにより、全スライドではなくプレゼンテーションの一部のみを表示したい場合に便利です。以下のコード例は新しいプレゼンテーションを作成し、スライド範囲を `2` から `9` に設定します。 +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **スライドの自動進行の使用** + +`SlideShowSettings.setUseTimings` メソッドは、各スライドの事前設定されたタイミングの使用を有効または無効にします。これにより、事前定義された表示時間でスライドを自動的に切り替えることができます。以下のコード例は新しいプレゼンテーションを作成し、タイミングの使用を無効にします。 +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **メディアコントロールの表示** + +`SlideShowSettings.setShowMediaControls` メソッドは、マルチメディアコンテンツ(例: ビデオやオーディオ)が再生される際に、スライドショー中にメディアコントロール(再生、停止、ポーズなど)を表示するかどうかを決定します。プレゼンターがプレゼンテーション中にメディア再生を制御したい場合に便利です。 + +以下のコード例は新しいプレゼンテーションを作成し、メディアコントロールの表示を有効にします。 +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **FAQ** + +**プレゼンテーションを保存すると、スライドショーモードで直接開くようにできますか?** + +はい。ファイルを PPSX または PPSM として保存すると、PowerPoint で開いたときに直接スライドショーが起動します。Aspose.Slides では、対応する保存形式を[エクスポート中](/slides/ja/nodejs-java/save-presentation/)に選択してください。 + +**個別のスライドをファイルから削除せずにショーから除外できますか?** + +はい。スライドを[非表示](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/)としてマークします。非表示スライドはプレゼンテーションに残りますが、スライドショー中には表示されません。 + +**Aspose.Slides はスライドショーを再生したり、ライブプレゼンテーションを画面上で制御できますか?** + +いいえ。Aspose.Slides はプレゼンテーションファイルの編集、分析、変換を行い、実際の再生は PowerPoint などのビューアアプリケーションが担当します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..b05a047558 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,275 @@ +--- +title: プレゼンテーションの結合 +type: docs +weight: 40 +url: /ja/nodejs-java/merge-presentation/ +keywords: "PowerPoint を結合, PPTX, PPT, PowerPoint を統合, プレゼンテーションを結合, プレゼンテーションを統合, Java" +description: "JavaScript で PowerPoint プレゼンテーションを結合または統合" +--- + +## **プレゼンテーションの結合** + +1つのプレゼンテーションを別のプレゼンテーションに結合すると、実質的にスライドを単一のプレゼンテーションにまとめて1つのファイルにします。 + +{{% alert title="Info" color="info" %}} + +ほとんどのプレゼンテーションプログラム(PowerPointやOpenOffice)は、このようにプレゼンテーションを結合する機能を備えていません。 + +ただし、[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) を使用すると、さまざまな方法でプレゼンテーションを結合できます。形状、スタイル、テキスト、書式設定、コメント、アニメーションなど、すべての要素を品質やデータの損失を心配せずに結合できます。 + +**参照** + +[スライドのクローン作成](https://docs.aspose.com/slides/nodejs-java/clone-slides/)。 + +{{% /alert %}} + +### **マージできるもの** + +Aspose.Slides を使用すると、次のものをマージできます。 + +* プレゼンテーション全体。プレゼンテーションのすべてのスライドが 1 つのプレゼンテーションにまとめられます +* 特定のスライド。選択したスライドが 1 つのプレゼンテーションにまとめられます +* 同一形式のプレゼンテーション(PPT から PPT、PPTX から PPTX など)および異なる形式のプレゼンテーション(PPT から PPTX、PPTX から ODP など)を相互に結合します。 + +{{% alert title="Note" color="warning" %}} + +プレゼンテーションに加えて、Aspose.Slides は他のファイルもマージできます。 + +* [画像](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/)、たとえば [JPG から JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) や [PNG から PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/) +* 文書、たとえば [PDF から PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) や [HTML から HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/) +* 画像と PDF の組み合わせなど、たとえば [画像から PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) や [JPG から PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) や [TIFF から PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/) + +{{% /alert %}} + +### **マージ オプション** + +次の点を決定するオプションを適用できます。 + +* 出力プレゼンテーションの各スライドが固有のスタイルを保持するか +* 出力プレゼンテーションのすべてのスライドに同じスタイルを使用するか + +プレゼンテーションをマージするには、Aspose.Slides は [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) メソッド([SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection) クラス)を提供します。`addClone` メソッドにはさまざまな実装があり、プレゼンテーションのマージ処理パラメータを定義します。すべての Presentation オブジェクトは [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) コレクションを持つため、スライドをマージしたいプレゼンテーションから `addClone` メソッドを呼び出すことができます。 + +`addClone` メソッドは `Slide` オブジェクトを返します。これは元のスライドのクローンです。出力プレゼンテーションのスライドは単に元スライドのコピーなので、ソースプレゼンテーションに影響を与えることなく、結果のスライドに対してスタイルや書式設定、レイアウトの変更などを行うことができます。 + +## **プレゼンテーションのマージ** + +Aspose.Slides は、スライドがレイアウトとスタイルを保持したままスライドを結合できる [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) メソッドを提供します(デフォルトパラメータ)。 + +この JavaScript コードはプレゼンテーションのマージ方法を示しています: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **スライド マスタ付きプレゼンテーションのマージ** + +Aspose.Slides は、スライド マスタ プレゼンテーション テンプレートを適用してスライドを結合できる [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-) メソッドを提供します。これにより、必要に応じて出力プレゼンテーションのスライドのスタイルを変更できます。 + +この JavaScript コードは上記の操作を示しています: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} + +スライド マスタのレイアウトは自動的に決定されます。適切なレイアウトが決定できない場合、`addClone` メソッドの `allowCloneMissingLayout` ブール パラメータを true に設定すると、ソーススライドのレイアウトが使用されます。設定しない場合は [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException) がスローされます。 + +{{% /alert %}} + +出力プレゼンテーションのスライドに異なるレイアウトを使用したい場合は、マージ時に [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-) メソッドを使用してください。 + +## **プレゼンテーションから特定のスライドをマージ** + +複数のプレゼンテーションから特定のスライドをマージすると、カスタム スライド デッキを作成できます。Aspose.Slides for Node.js via Java を使用すると、必要なスライドだけを選択してインポートできます。API は元のスライドの書式設定、レイアウト、デザインを保持します。 + +次の JavaScript コードは新しいプレゼンテーションを作成し、2 つの別のプレゼンテーションからタイトル スライドを追加して結果をファイルに保存します: +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **スライド レイアウト付きプレゼンテーションのマージ** + +この JavaScript コードは、スライドに希望のレイアウトを適用しながらプレゼンテーションからスライドを結合し、1 つの出力プレゼンテーションを作成する方法を示します: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **異なるスライド サイズのプレゼンテーションのマージ** + +{{% alert title="Note" color="warning" %}} + +異なるスライド サイズのプレゼンテーションはマージできません。 + +{{% /alert %}} + +異なるスライド サイズの 2 つのプレゼンテーションをマージするには、サイズが合うようにどちらかのプレゼンテーションのサイズを変更する必要があります。 + +このサンプルコードは上記の操作を示しています: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **スライドをプレゼンテーション セクションにマージ** + +この JavaScript コードは、特定のスライドをプレゼンテーションのセクションにマージする方法を示します: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +スライドはセクションの末尾に追加されます。 + +## **FAQ** + +**マージ時にスピーカーノートは保持されますか?** + +はい。スライドをクローンすると、ノート、書式設定、アニメーションを含むすべてのスライド要素が引き継がれます。 + +**コメントと作成者は転送されますか?** + +コメントはスライドコンテンツの一部としてスライドと共にコピーされます。コメント作成者のラベルは結果のプレゼンテーション内のコメントオブジェクトとして保持されます。 + +**ソース プレゼンテーションがパスワードで保護されている場合はどうなりますか?** + +[LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/) を使用して [パスワードで保護されたプレゼンテーション](/slides/ja/nodejs-java/password-protected-presentation/) を開く必要があります。読み込んだ後、そのスライドは保護されていないターゲット ファイル(または保護されたファイル)に安全にクローンできます。 + +**マージ操作はどれくらいスレッドセーフですか?** + +同じ [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) インスタンスを [複数のスレッド](/slides/ja/nodejs-java/multithreading/) から使用しないでください。推奨ルールは「1 ドキュメント – 1 スレッド」です。別々のファイルは別スレッドで並行処理できます。 + +## **参照** + +Aspose は、[無料オンライン コラージュ メーカー](https://products.aspose.app/slides/collage) を提供しています。このオンライン サービスを使用すると、[JPG から JPG](https://products.aspose.app/slides/collage/jpg) や PNG から PNG の画像を結合したり、[フォト グリッド](https://products.aspose.app/slides/collage/photo-grid) を作成したりできます。 + +[Aspose 無料オンライン マージャー](https://products.aspose.app/slides/merger) もご利用ください。これにより、同じ形式(例: PPT から PPT、PPTX から PPTX)または異なる形式(例: PPT から PPTX、PPTX から ODP)の PowerPoint プレゼンテーションを結合できます。 + +[![Aspose 無料オンライン マージャー](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..d3a231b81b --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: JavaScript でプレゼンテーションを開く +linktitle: プレゼンテーションを開く +type: docs +weight: 20 +url: /ja/nodejs-java/open-presentation/ +keywords: +- PowerPoint を開く +- プレゼンテーションを開く +- PPTX を開く +- PPT を開く +- ODP を開く +- プレゼンテーションを読み込む +- PPTX を読み込む +- PPT を読み込む +- ODP を読み込む +- 保護されたプレゼンテーション +- 大容量プレゼンテーション +- 外部リソース +- バイナリオブジェクト +- Node.js +- JavaScript +- Aspose.Slides +description: "Aspose.Slides for Node.js を使用して、PowerPoint(.pptx、.ppt)および OpenDocument(.odp)プレゼンテーションを簡単に開くことができます—高速で信頼性が高く、フル機能を備えています。" +--- + +## **概要** + +ゼロから PowerPoint プレゼンテーションを作成するだけでなく、Aspose.Slides では既存のプレゼンテーションを開くこともできます。プレゼンテーションを読み込んだ後は、情報の取得、スライド内容の編集、新規スライドの追加、既存スライドの削除などが行えます。 + +## **プレゼンテーションの開封** + +既存のプレゼンテーションを開くには、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスをインスタンス化し、コンストラクタにファイルパスを渡します。 + +以下の JavaScript サンプルは、プレゼンテーションを開いてスライド数を取得する方法を示しています: +```js +// Presentation クラスをインスタンス化し、コンストラクタにファイルパスを渡します。 +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // プレゼンテーションの総スライド数を出力します。 + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **パスワード保護されたプレゼンテーションの開封** + +パスワード保護されたプレゼンテーションを開く必要がある場合は、[LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) クラスの [setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword) メソッドでパスワードを指定して復号・読み込みます。以下の JavaScript コードがこの操作を示しています: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // 復号されたプレゼンテーションに対して操作を実行します。 +} finally { + presentation.dispose(); +} +``` + + +## **大容量プレゼンテーションの開封** + +Aspose.Slides では、特に [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) クラスの [getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions) メソッドなど、サイズの大きいプレゼンテーションを読み込むためのオプションが提供されています。 + +以下の JavaScript コードは、たとえば 2 GB の大容量プレゼンテーションを読み込む方法を示しています: +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// KeepLocked 動作を選択します—プレゼンテーション ファイルはインスタンスの存続期間中ロックされたままになります +// プレゼンテーション インスタンスですが、メモリにロードしたり一時ファイルにコピーしたりする必要はありません。 +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // 大容量のプレゼンテーションが読み込まれ、使用可能です。メモリ消費は低く抑えられます。 + + // プレゼンテーションに変更を加えます。 + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // プレゼンテーションを別ファイルに保存します。この操作中もメモリ消費は低く保たれます。 + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // これを実行しないでください!プレゼンテーションオブジェクトが破棄されるまでファイルがロックされているため、I/O 例外がスローされます。 + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// ここで実行しても問題ありません。ソースファイルはプレゼンテーションオブジェクトによってロックされていません。 +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +ストリームを使用する際の一部制限を回避するために、Aspose.Slides はストリームの内容をコピーすることがあります。ストリームから大容量プレゼンテーションを読み込むと、プレゼンテーション全体がコピーされ、読み込み速度が低下する可能性があります。そのため、大容量プレゼンテーションを読み込む場合は、ストリームではなくファイルパスを使用することを強く推奨します。 + +動画、音声、高解像度画像などの大きなオブジェクトを含むプレゼンテーションを作成する際は、[BLOB 管理](/slides/ja/nodejs-java/manage-blob/) を利用してメモリ使用量を削減できます。 +{{%/alert %}} + +## **外部リソースの制御** + +Aspose.Slides は、外部リソースの管理を可能にする [IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/) インターフェイスを提供しています。以下の JavaScript コードは、`IResourceLoadingCallback` インターフェイスの使用方法を示しています: +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // 代替画像をロードします。 + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // 代替URLを設定します。 + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // 他のすべての画像をスキップします。 + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **埋め込みバイナリオブジェクトなしでのプレゼンテーションの読み込み** + +PowerPoint プレゼンテーションには、次の種類の埋め込みバイナリオブジェクトが含まれることがあります。 + +- VBA プロジェクト([Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject) で取得可能) +- OLE 埋め込みデータ([OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData) で取得可能) +- ActiveX コントロールのバイナリデータ([Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary) で取得可能) + +[LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects) メソッドを使用すると、埋め込みバイナリオブジェクトを一切含まない状態でプレゼンテーションを読み込むことができます。 + +このメソッドは、潜在的に悪意のあるバイナリコンテンツを除去する際に有用です。以下の JavaScript コードは、埋め込みバイナリコンテンツを持たないプレゼンテーションを読み込む方法を示しています: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // プレゼンテーションに対して操作を実行します。 +} finally { + presentation.dispose(); +} +``` + + +## **FAQ** + +**ファイルが破損していて開けないことはどう判断すればよいですか?** + +読み込み時に解析/フォーマット検証例外がスローされます。エラーはしばしば ZIP 構造の破損や PowerPoint レコードの破損を指摘します。 + +**開く際に必須フォントが欠如しているとどうなりますか?** + +ファイルは開くことができますが、後続の [レンダリング/エクスポート](/slides/ja/nodejs-java/convert-presentation/) 時にフォントが代替される可能性があります。ランタイム環境にフォント代替を構成するか、必須フォントを追加してください([フォント代替の構成](/slides/ja/nodejs-java/font-substitution/) / [カスタムフォントの追加](/slides/ja/nodejs-java/custom-font/))。 + +**開く際の埋め込みメディア(動画/音声)はどう扱われますか?** + +メディアはプレゼンテーションリソースとして利用可能になります。外部パスで参照されているメディアの場合、環境でそのパスにアクセスできることを確認してください。アクセスできない場合、[レンダリング/エクスポート](/slides/ja/nodejs-java/convert-presentation/) 時にメディアが省かれる可能性があります。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/ja/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..7b66e2afd4 --- /dev/null +++ b/ja/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,208 @@ +--- +title: "JavaScriptでプレゼンテーションを保存する" +linktitle: "プレゼンテーションの保存" +type: docs +weight: 80 +url: /ja/nodejs-java/save-presentation/ +keywords: +- "PowerPoint を保存" +- "OpenDocument を保存" +- "プレゼンテーションを保存" +- "スライドを保存" +- "PPT を保存" +- "PPTX を保存" +- "ODP を保存" +- "ファイルへのプレゼンテーション" +- "ストリームへのプレゼンテーション" +- "事前定義ビュータイプ" +- "Strict Office Open XML 形式" +- "Zip64 モード" +- "サムネイルの更新" +- "保存進行状況" +- "Node.js" +- "JavaScript" +- "Aspose.Slides" +description: "Aspose.Slides を使用して JavaScript でプレゼンテーションを保存する方法を学びます。PowerPoint や OpenDocument へエクスポートし、レイアウト、フォント、エフェクトを保持します。" +--- + +## **Overview** + +[JavaScript でプレゼンテーションを開く](/slides/ja/nodejs-java/open-presentation/) では、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスを使用してプレゼンテーションを開く方法が説明されています。本記事では、プレゼンテーションの作成と保存の方法を解説します。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスはプレゼンテーションの内容を保持します。ゼロからプレゼンテーションを作成する場合でも、既存のプレゼンテーションを修正する場合でも、作業が完了したら保存する必要があります。Aspose.Slides for Node.js では、**ファイル** または **ストリーム** に保存できます。本記事では、プレゼンテーションを保存するさまざまな方法を説明します。 + +## **Save Presentations to Files** + +`save` メソッドを呼び出すことで、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスを使用してプレゼンテーションをファイルに保存できます。メソッドにファイル名と保存形式を渡してください。以下の例は、Aspose.Slides を使用してプレゼンテーションを保存する方法を示しています。 +```js +// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation(); +try { + // ここで何らかの処理を行います... + + // プレゼンテーションをファイルに保存します。 + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Save Presentations to Streams** + +`save` メソッドに出力ストリームを渡すことで、プレゼンテーションをストリームに保存できます。プレゼンテーションはさまざまなストリーム型に書き込むことができます。下の例では、新しいプレゼンテーションを作成し、ファイルストリームに保存しています。 +```js +// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // ストリームにプレゼンテーションを保存します。 + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **Save Presentations with a Predefined View Type** + +Aspose.Slides では、[ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/) クラスを介して生成されたプレゼンテーションが開かれたときに PowerPoint が使用する初期ビューを設定できます。[setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) メソッドに [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/) 列挙体の値を指定してください。 +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Save Presentations in the Strict Office Open XML Format** + +Aspose.Slides では、プレゼンテーションを Strict Office Open XML 形式で保存できます。[PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) クラスを使用し、保存時に its conformance プロパティを設定してください。[Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict) を設定すると、出力ファイルは Strict Office Open XML 形式で保存されます。 + +以下の例は、プレゼンテーションを作成し、Strict Office Open XML 形式で保存する方法を示しています。 +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します。 +let presentation = new aspose.slides.Presentation(); +try { + // プレゼンテーションを Strict Office Open XML 形式で保存します。 + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **Save Presentations in Office Open XML Format in Zip64 Mode** + +Office Open XML ファイルは ZIP アーカイブであり、任意のファイルの未圧縮サイズ、圧縮サイズ、アーカイブ全体のサイズに 4 GB (2^32 バイト) の制限を課し、アーカイブ内のファイル数は 65 535 (2^16‑1) に制限されます。ZIP64 形式拡張により、これらの制限が 2^64 まで緩和されます。 + +[**PptxOptions.setZip64Mode**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) メソッドを使用すると、Office Open XML ファイルを保存する際に ZIP64 形式拡張を使用するタイミングを選択できます。 + +このメソッドは次のモードで使用できます。 + +- [**IfNecessary**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#IfNecessary) は、プレゼンテーションが上記の制限を超える場合にのみ ZIP64 形式拡張を使用します。これがデフォルトモードです。 +- [**Never**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) は、ZIP64 形式拡張を決して使用しません。 +- [**Always**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Always) は、常に ZIP64 形式拡張を使用します。 + +以下のコードは、ZIP64 形式拡張が有効な状態で PPTX としてプレゼンテーションを保存する方法を示しています。 +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +[**Zip64Mode.Never**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) で保存すると、プレゼンテーションを ZIP32 形式で保存できない場合に [**PptxException**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxexception/) がスローされます。 +{{% /alert %}} + +## **Save Presentations without Refreshing the Thumbnail** + +[PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) メソッドは、PPTX にプレゼンテーションを保存する際のサムネイル生成を制御します。 + +- `true` に設定すると、保存中にサムネイルが更新されます。既定値です。 +- `false` に設定すると、現在のサムネイルが保持されます。プレゼンテーションにサムネイルがない場合は生成されません。 + +以下のコードでは、サムネイルを更新せずに PPTX としてプレゼンテーションを保存しています。 +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} + +このオプションを使用すると、PPTX 形式でプレゼンテーションを保存するのにかかる時間を短縮できます。 +{{% /alert %}} + +## **Save Progress Updates in Percentage** + +保存進行状況の報告は、[SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) およびそのサブクラスの [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) メソッドで構成します。Java プロキシで [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/) インターフェイスを実装し、エクスポート中にコールバックが定期的にパーセンテージ更新を受け取ります。 + +以下のコードスニペットは、`IProgressCallback` の使用方法を示しています。 +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // ここで進捗のパーセンテージ値を使用します。 + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} + +Aspose は、独自の API を使用した無料の PowerPoint Splitter アプリをご提供しています。選択したスライドを新しい PPTX または PPT ファイルとして保存することで、プレゼンテーションを複数のファイルに分割できます。 +{{% /alert %}} + +## **FAQ** + +**「高速保存」(インクリメンタル保存)はサポートされていますか?変更分だけを書き込むことは可能ですか?** + +いいえ。保存は毎回完全なターゲットファイルを作成します。インクリメンタルの「高速保存」はサポートされていません。 + +**同じ Presentation インスタンスを複数スレッドから同時に保存できますか?** + +いいえ。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) インスタンスはスレッドセーフではありません。単一スレッドから保存してください。 + +**保存時にハイパーリンクや外部リンクされたファイルはどうなりますか?** + +[ハイパーリンク](/slides/ja/nodejs-java/manage-hyperlinks/) は保持されます。外部リンクされたファイル(例: 相対パスで参照される動画など)は自動的にコピーされません。参照先パスが引き続きアクセス可能であることを確認してください。 + +**ドキュメントのメタデータ(作者、タイトル、会社、日付など)を設定/保存できますか?** + +はい。標準の[ドキュメントプロパティ](/slides/ja/nodejs-java/presentation-properties/) がサポートされており、保存時にファイルへ書き込まれます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/modern-api/_index.md b/ja/nodejs-java/developer-guide/modern-api/_index.md index efc32d7d3a..b0e7d8b3ca 100644 --- a/ja/nodejs-java/developer-guide/modern-api/_index.md +++ b/ja/nodejs-java/developer-guide/modern-api/_index.md @@ -7,35 +7,34 @@ keywords: "クロスプラットフォーム モダン API" description: "モダン API" --- -## はじめに +## **はじめに** 歴史的に、Aspose Slides は java.awt に依存しており、公開 API には以下のクラスが含まれています: - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -バージョン 24.4 から、この公開 API は非推奨として宣言されました。 +バージョン 24.4 から、この公開 API は非推奨と宣言されています。 -これらのクラスに対する依存関係を排除するために、いわゆる「モダン API」を追加しました。つまり、非推奨の API の代わりに使用するべき API で、BufferedImage に依存する署名を持っています。Graphics2D は非推奨とされ、そのサポートは公開 Slides API から削除されました。 +これらのクラスへの依存を排除するために、「Modern API」と呼ばれる API を追加しました。すなわち、非推奨の API の代わりに使用すべき API で、シグネチャに BufferedImage への依存が含まれています。Graphics2D は非推奨と宣言され、公開 Slides API からのサポートは削除されました。 -System.Drawing に依存する非推奨の公開 API の削除は、リリース 24.8 で行われます。 +System.Drawing への依存を持つ非推奨の公開 API の削除は、リリース 24.8 で行われます。 -## モダン API +## **Modern API** -以下のクラスと列挙型が公開 API に追加されました: +公開 API に以下のクラスと列挙体を追加しました: -- IImage - ラスターまたはベクター画像を表します。 -- ImageFormat - 画像のファイル形式を表します。 -- Images - IImage インターフェイスをインスタンス化し、操作するためのメソッドです。 +- IImage – ラスタまたはベクタ画像を表します。 +- ImageFormat – 画像のファイル形式を表します。 +- Images – IImage クラスを生成し操作するメソッド群。 -IImage は破棄可能であることに注意してください(IDisposable インターフェイスを実装しており、その使用は using でラップするか、他の便利な方法で破棄してください)。 - -新しい API を使用する典型的なシナリオは次のようになります: +IImage は disposable です(IDisposable を実装しており、using でラップするか、別の便利な方法で dispose してください)。 +新しい API の典型的な使用シナリオは次のようになります: ``` javascript var pres = new aspose.slides.Presentation(); try { var ppImage; - // ディスク上のファイルから IImage の破棄可能なインスタンスをインスタンス化します。 + // ディスク上のファイルから IImage の破棄可能なインスタンスを作成します。 var image = aspose.slides.Images.fromFile("image.png"); try { // IImage のインスタンスをプレゼンテーションの画像に追加して PowerPoint 画像を作成します。 @@ -44,7 +43,7 @@ try { if (image != null) image.dispose(); } - // スライド #1 に画像シェイプを追加します + // スライド #1 に画像形状を追加します。 pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, ppImage); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -61,9 +60,10 @@ try { } ``` -## 古いコードをモダン API に置き換える -一般に、ImageIO を使用した古いメソッドの呼び出しを新しいメソッドに置き換える必要があります。 +## **古いコードを Modern API に置き換える** + +一般的に、ImageIO を使用した古いメソッド呼び出しを新しいものに置き換える必要があります。 古い: ``` javascript @@ -73,6 +73,7 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` + 新しい: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -81,10 +82,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### スライドのサムネイルを取得する -非推奨の API を使用したコード: +### **スライドサムネイルの取得** +非推奨 API を使用したコード: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +98,8 @@ try { } ``` -モダン API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +111,10 @@ try { } ``` -### シェイプのサムネイルを取得する -非推奨の API を使用したコード: +### **シェイプサムネイルの取得** +非推奨 API を使用したコード: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +127,8 @@ try { } ``` -モダン API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +140,10 @@ try { } ``` -### プレゼンテーションのサムネイルを取得する -非推奨の API を使用したコード: +### **プレゼンテーションサムネイルの取得** +非推奨 API を使用したコード: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +161,8 @@ try { } ``` -モダン API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +185,10 @@ try { } ``` -### プレゼンテーションに画像を追加する -非推奨の API を使用したコード: +### **プレゼンテーションへの画像追加** +非推奨 API を使用したコード: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +203,8 @@ try { } ``` -モダン API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,27 +218,28 @@ try { } ``` -## 削除されるメソッドとモダン API での置き換え -### プレゼンテーション -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|-----------------------------------------------|---------------------------------------------------------| -| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | -| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | +## **削除されるメソッドと Modern API における置換** + +### **Presentation** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| +| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### シェイプ -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +### **Shape** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### スライド -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|----------------------------------------------------------------------|-----------------------------------------------------------------------| +### **Slide** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | | public final BufferedImage getThumbnail(IRenderingOptions options) | public final IImage getImage(IRenderingOptions options) | @@ -245,45 +247,54 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | 完全に削除されます | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | 完全に削除されます | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | 完全に削除されます | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | 完全に削除されます | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | 完全に削除されます | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | 完全に削除されます | -### 出力 -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|-----------------------------------------------------------------|-------------------------------------------------------------| +### **Output** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### ImageCollection -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +### **ImageCollection** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|--------------------------------------|-----------------------------------------| +### **PPImage** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### PatternFormat -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +### **PatternFormat** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### PatternFormatEffectiveData -| メソッドシグネチャ | 置き換えメソッドシグネチャ | -|-----------------------------------------------------------|-----------------------------------------------------| +### **PatternFormatEffectiveData** +| メソッド シグネチャ | 置換 メソッド シグネチャ | +|---|---| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | +## **Graphics2D 用 API サポートの中止** + +[Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) を使用したメソッドは非推奨と宣言され、公開 API からのサポートが削除されます。 + +Graphics2D を使用する API 部分は削除されます: + +[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) -## Graphics2D の API サポートは終了します +# **よくある質問** -[Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) を使用したメソッドは非推奨とされ、そのサポートは公開 API から削除されます。 +**IImage は Image/Bitmap と比べて実用的な利点は何ですか?** -それを使用する API 部分は削除されます: +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) はラスタ画像とベクタ画像の両方の操作を統一し、[ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/) を通じてさまざまな形式への保存を簡素化します。 -[スライド](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +**Modern API はサムネイル生成のパフォーマンスに影響しますか?** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +`getThumbnail` から `getImage` への切り替えはシナリオを劣化させません。新メソッドはオプションやサイズ指定で画像を生成する同等の機能を提供し、レンダリングオプションのサポートも保持しています。性能の向上または低下はシナリオ次第ですが、機能的には置換は等価です。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/powerpoint-animation/_index.md b/ja/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..03ec078b41 --- /dev/null +++ b/ja/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,83 @@ +--- +title: PowerPoint アニメーション +type: docs +weight: 150 +url: /ja/nodejs-java/powerpoint-animation/ +keywords: "PowerPoint アニメーション" +description: "PowerPoint アニメーション、Aspose.Slides を使用した PowerPoint スライド アニメーション。" +--- + +プレゼンテーションは何かを提示するために作られるので、作成時には常にその見た目とインタラクティブな動作が考慮されます。 + +**PowerPoint アニメーション** は、プレゼンテーションを視聴者にとって目を引く魅力的なものにするために重要な役割を果たします。Aspose.Slides for Node.js via Java では、PowerPoint プレゼンテーションにアニメーションを追加するための幅広いオプションが提供されています。 + +- さまざまな種類の PowerPoint アニメーション効果を、図形、チャート、テーブル、OLE オブジェクト、その他のプレゼンテーション要素に適用できます。 +- 1 つの図形に複数の PowerPoint アニメーション効果を使用できます。 +- アニメーションタイムラインを使ってアニメーション効果を制御できます。 +- カスタムアニメーションを作成できます。 + +Aspose.Slides for Node.js via Java では、図形にさまざまなアニメーション効果を適用できます。スライド上のテキスト、画像、OLE オブジェクト、テーブルなど、すべての要素は図形として扱われるため、スライド上のあらゆる要素にアニメーション効果を適用できることを意味します。 + +## **Animation Effects** +Aspose.Slides は **150 以上のアニメーション効果** をサポートしており、Bounce や PathFootball、Zoom などの基本効果や、OLEObjectShow、OLEObjectOpen などの特定効果が含まれます。すべてのアニメーション効果の一覧は [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/) 列挙体で確認できます。 + +さらに、これらのアニメーション効果は次の効果と組み合わせて使用できます。 + +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **Custom Animation** +Aspose.Slides では **カスタム アニメーション** を作成できます。複数のビヘイビアを組み合わせて新しいカスタム アニメーションを作成することで実現できます。 + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) は PowerPoint アニメーション効果の構成単位です。すべてのアニメーション効果は実際にはビヘイビアの集合であり、1 つの戦略にまとめられます。ビヘイビアをカスタム アニメーションに一度だけ組み合わせておけば、他のプレゼンテーションでも再利用できます。標準の PowerPoint アニメーション効果に新しいビヘイビアを追加すれば、別のカスタム アニメーションとなります。たとえば、アニメーションにリピート ビヘイビアを追加して数回繰り返すように設定できます。 + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) はビヘイビアを適用すべき位置を示すポイントです。 + +## **Animation Time Line** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) は、特定の図形に適用されるアニメーション効果のコレクションです。 + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) は、特定のスライドで使用される Sequence の集合です。PowerPoint 2002 以降で導入されたアニメーション エンジンで、従来の AnimationSettings クラスに代わり、PowerPoint アニメーション向けにより明確なオブジェクト モデルを提供します。1 つのスライドには **1 つの** アニメーション タイムラインしか設定できません。 + +## **Interactive Animation** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) を使用すると、ユーザー操作(例: ボタンのクリック)に応じて特定のアニメーションを開始できます。トリガーは最新バージョンの PowerPoint にのみ追加されました。 + +## **Shape Animation** +Aspose.Slides では、テキスト、矩形、線、フレーム、OLE オブジェクトなど、実際には図形として扱われる要素にアニメーションを適用できます。 + +{{% alert color="primary" %}} +詳しく読む [**About Shape Animation**](/slides/ja/nodejs-java/shape-animation/)。 +{{% /alert %}} + +## **Animated Charts** +アニメーション チャートを作成するには、図形と同じクラスを使用します。ただし、PowerPoint アニメーションはチャートのカテゴリまたは系列のみに適用できます。カテゴリ要素や系列要素にアニメーション効果を適用することも可能です。 + +{{% alert color="primary" %}} +詳しく読む [**About Animated Charts**](/slides/ja/nodejs-java/animated-charts/)。 +{{% /alert %}} + +## **Animated text** +アニメーション テキストに加えて、段落全体にアニメーションを適用することも可能です。 + +{{% alert color="primary" %}} +詳しく読む [**About Animated Text**](/slides/ja/nodejs-java/animated-text/)。 +{{% /alert %}} + +## **FAQ** + +**Will animations be preserved when exporting to PDF?** + +No. PDF is a static format, so animations and [slide transitions](/slides/ja/nodejs-java/slide-transition/) don’t play. If you need motion, export to [HTML5](/slides/ja/nodejs-java/export-to-html5/), [animated GIF](/slides/ja/nodejs-java/convert-powerpoint-to-animated-gif/), or [video](/slides/ja/nodejs-java/convert-powerpoint-to-video/) instead. + +**Can I turn an animated presentation into a video and control the frame rate and frame size?** + +Yes. You can [render the presentation as frames](/slides/ja/nodejs-java/convert-powerpoint-to-video/) and encode them into a video (e.g., via ffmpeg), choosing the FPS and resolution. Animations and slide transitions are played during rendering. + +**Will animations remain intact when working with ODP (not just PPTX)?** + +PPT, PPTX, and ODP are supported for [reading](/slides/ja/nodejs-java/open-presentation/) and [writing](/slides/ja/nodejs-java/save-presentation/), but format differences mean certain effects may look or behave slightly differently. Validate critical cases with real samples. \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-comments/_index.md b/ja/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..816b97473e --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,226 @@ +--- +title: プレゼンテーション コメント +type: docs +weight: 100 +url: /ja/nodejs-java/presentation-comments/ +keywords: "コメント, PowerPoint コメント, PowerPoint プレゼンテーション, Java, Aspose.Slides for Node.js via Java" +description: "JavaScript で PowerPoint プレゼンテーションにコメントと返信を追加する" +--- + +PowerPoint では、コメントはスライド上のメモや注釈として表示されます。コメントをクリックすると、内容やメッセージが表示されます。 + +## **プレゼンテーションにコメントを追加する理由** + +プレゼンテーションをレビューするときに、フィードバックを提供したり同僚とやり取りしたりするためにコメントを使用したい場合があります。 + +PowerPoint プレゼンテーションでコメントを使用できるように、Aspose.Slides for Node.js via Java は次を提供します。 + +* [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスは、[CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection) クラスからの著者コレクションを含みます。著者はスライドにコメントを追加します。 +* [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection) クラスは、個々の著者向けのコメントコレクションを含みます。 +* [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) クラスは、著者とコメントに関する情報(コメントを追加した人物、追加日時、コメントの位置など)を含みます。 +* [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor) クラスは、個々の著者に関する情報(著者名、イニシャル、著者名に関連付けられたコメントなど)を含みます。 + +## **スライド コメントの追加** +この JavaScript コードは、PowerPoint プレゼンテーションのスライドにコメントを追加する方法を示します: +```javascript +// Presentation クラスのインスタンス化 +var pres = new aspose.slides.Presentation(); +try { + // 空のスライドを追加 + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // 作成者を追加 + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // コメントの位置を設定 + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // スライド1の作成者にスライド コメントを追加 + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // スライド2の作成者にスライド コメントを追加 + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // ISlide 1 にアクセス + var slide = pres.getSlides().get_Item(0); + // null を引数として渡すと、すべての作成者のコメントが選択されたスライドに取得される + var Comments = slide.getSlideComments(author); + // スライド1のインデックス0のコメントにアクセス + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // インデックス0の作成者のコメントコレクションを選択 + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **スライド コメントへのアクセス** +この JavaScript コードは、PowerPoint プレゼンテーションのスライドにある既存のコメントにアクセスする方法を示します: +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **コメントへの返信** +親コメントは、コメントや返信の階層で最上位または元のコメントです。[Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) クラスの [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) または [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) メソッドを使用して、親コメントを取得または設定できます。 + +この JavaScript コードは、コメントを追加しそれへの返信を取得する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // コメントを追加 + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // comment1 への返信を追加 + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // comment1 への別の返信を追加 + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // 既存の返信に対して返信を追加 + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // コンソールにコメント階層を表示 + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // comment1 とそれへのすべての返信を削除 + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Attention" %}} +* [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) クラスの [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--) メソッドでコメントを削除すると、コメントへの返信も削除されます。 +* [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) の設定により循環参照が発生した場合、[PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException) がスローされます。 +{{% /alert %}} + +## **モダン コメントの追加** + +2021 年に Microsoft は PowerPoint に *モダン コメント* を導入しました。モダン コメント機能は PowerPoint におけるコラボレーションを大幅に改善します。モダン コメントにより、コメントの解決、オブジェクトやテキストへのコメントの固定、そして以前よりもはるかに簡単にやり取りできるようになりました。 + +[Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/) では、[ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment) クラスを追加してモダン コメントのサポートを実装しました。[CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection) クラスに [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) および [insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) メソッドが追加されました。 + +この JavaScript コードは、PowerPoint プレゼンテーションのスライドにモダン コメントを追加する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **コメントの削除** + +### **すべてのコメントと著者の削除** + +この JavaScript コードは、プレゼンテーション内のすべてのコメントと著者を削除する方法を示します: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // プレゼンテーションからすべてのコメントを削除 + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // すべての著者を削除 + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **特定のコメントの削除** + +この JavaScript コードは、スライド上の特定のコメントを削除する方法を示します: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // コメントを追加... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // 「comment 1」を含むすべてのコメントを削除 + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Aspose.Slides はモダン コメントに「解決済み」などのステータスをサポートしていますか?** + +はい。[Modern comments](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) は [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) および [setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/) メソッドを公開しています。コメントの状態 (例: 解決済みとしてマーク) を取得および設定でき、この状態はファイルに保存され PowerPoint で認識されます。 + +**スレッド化されたディスカッション (返信チェーン) はサポートされていますか?ネストの上限はありますか?** + +はい。各コメントは [parent comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/) を参照できるため、任意の深さの返信チェーンを作成できます。API では特定のネスト深さ上限は宣言されていません。 + +**コメント マーカーの位置はスライドのどの座標系で定義されていますか?** + +位置はスライド座標系の浮動小数点ポイントとして保存されます。これにより、コメント マーカーを必要な正確な位置に配置できます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..02ba63407b --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,206 @@ +--- +title: Blob の管理 +type: docs +weight: 10 +url: /ja/nodejs-java/manage-blob/ +description: JavaScript を使用して PowerPoint プレゼンテーションで Blob を管理します。JavaScript を使用して PowerPoint プレゼンテーションのメモリ使用量を削減するために Blob を使用します。JavaScript を使用して Blob 経由で大きなファイルを PowerPoint プレゼンテーションに追加します。JavaScript を使用して Blob 経由で PowerPoint プレゼンテーションから大きなファイルをエクスポートします。JavaScript を使用して大きな PowerPoint プレゼンテーションを Blob としてロードします。 +--- + +## **BLOB について** + +**BLOB** (**Binary Large Object**) は、通常、バイナリ形式で保存された大きなアイテム(写真、プレゼンテーション、ドキュメント、またはメディア)です。 + +Aspose.Slides for Node.js via Java を使用すると、大きなファイルが関与する場合にメモリ使用量を削減する方法でオブジェクトに BLOBs を使用できます。 + +{{% alert title="Info" color="info" %}} +ストリームとのやり取り時の特定の制限を回避するため、Aspose.Slides はストリームの内容をコピーすることがあります。ストリームを介して大きなプレゼンテーションをロードすると、プレゼンテーションの内容がコピーされ、ロードが遅くなります。そのため、大きなプレゼンテーションをロードする場合は、ストリームではなくプレゼンテーションのファイルパスを使用することを強く推奨します。 +{{% /alert %}} + +## **メモリ使用量の削減に BLOB を使用する** + +### **BLOB を使用してプレゼンテーションに大きなファイルを追加する** + +[Aspose.Slides](/slides/ja/nodejs-java/) for Node.js via Java を使用すると、BLOB を利用したプロセスで大きなファイル(この例では大きなビデオファイル)をプレゼンテーションに追加でき、メモリ使用量を削減できます。 + +この JavaScript は、BLOB プロセスを通じて大きなビデオファイルをプレゼンテーションに追加する方法を示しています: +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// ビデオを追加する新しいプレゼンテーションを作成します +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // ビデオをプレゼンテーションに追加します - KeepLocked 動作を選択したのは、 + // "veryLargeVideo.avi" ファイルにアクセスするつもりがないためです。 + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // プレゼンテーションを保存します。大きなプレゼンテーションが出力されても、 + // pres オブジェクトのライフサイクル全体でメモリ使用量は低く保たれます + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **BLOB を使用してプレゼンテーションから大きなファイルをエクスポートする** + +Aspose.Slides for Node.js via Java を使用すると、BLOB を利用したプロセスでプレゼンテーションから大きなファイル(この例では音声またはビデオファイル)をエクスポートできます。たとえば、プレゼンテーションから大きなメディアファイルを抽出したいが、そのファイルをコンピューターのメモリに読み込ませたくない場合があります。BLOB プロセスを介してファイルをエクスポートすることで、メモリ使用量を低く抑えることができます。 + +この JavaScript コードは、上記の操作を示しています: +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// ソースファイルをロックし、メモリにロードしません +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// Presentation のインスタンスを作成し、"hugePresentationWithAudiosAndVideos.pptx" ファイルをロックします。 +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // 各ビデオをファイルに保存しましょう。メモリ使用量の増加を防ぐため、バッファが必要です + // プレゼンテーションのビデオストリームから新しく作成したビデオファイル用のストリームへデータを転送するために使用されます。 + var buffer = new byte[8 * 1024]; + // ビデオを反復処理します + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // プレゼンテーションのビデオストリームを開きます。意図的にプロパティへのアクセスを避けていることに注意してください + // video.BinaryData のようなプロパティは、フルビデオを含むバイト配列を返すため、 + // メモリにバイトをロードさせます。video.GetStream を使用すると、Stream が返され、メモリに全体をロードしません + // メモリにビデオ全体をロードする必要がありません。 + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // ビデオやプレゼンテーションのサイズに関係なく、メモリ消費は低く抑えられます。 + } + // 必要に応じて、同じ手順をオーディオファイルにも適用できます。 +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **プレゼンテーションに画像を BLOB として追加する** + +[**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) クラスおよび [**ImageCollection** ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) クラスのメソッドを使用すると、ストリームとして大きな画像を追加し、BLOB として扱うことができます。 + +この JavaScript コードは、BLOB プロセスを使用して大きな画像を追加する方法を示しています: +```javascript +var pathToLargeImage = "large_image.jpg"; +// 画像を追加する新しいプレゼンテーションを作成します。 +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // 画像をプレゼンテーションに追加します - KeepLocked 動作を選択したのは + // "largeImage.png" ファイルにアクセスするつもりがないためです。 + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // プレゼンテーションを保存します。大きなプレゼンテーションが出力されても、 + // pres オブジェクトのライフサイクル全体でメモリ使用量は低く保たれます + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **メモリと大きなプレゼンテーション** + +通常、大きなプレゼンテーションをロードするには、コンピューターは大量の一時メモリを必要とします。プレゼンテーションのすべてのコンテンツがメモリにロードされ、プレゼンテーションが読み込まれたファイルは使用されなくなります。 + +たとえば、1.5 GB のビデオファイルを含む大きな PowerPoint プレゼンテーション(large.pptx)を考えてみましょう。プレゼンテーションをロードする標準的な方法は、次の JavaScript コードで説明されています: +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +しかし、この方法は約 1.6 GB の一時メモリを消費します。 + +### **BLOB として大きなプレゼンテーションをロードする** + +BLOB を利用したプロセスにより、少ないメモリで大きなプレゼンテーションをロードできます。この JavaScript コードは、BLOB プロセスを使用して大きなプレゼンテーションファイル(large.pptx)をロードする実装を示しています: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **一時ファイル用フォルダーを変更する** + +BLOB プロセスを使用すると、コンピューターはデフォルトの一時ファイルフォルダーに一時ファイルを作成します。別のフォルダーに一時ファイルを保存したい場合は、`setTempFilesRootPath` を使用してストレージ設定を変更できます: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Info" color="info" %}} +`setTempFilesRootPath` を使用すると、Aspose.Slides は一時ファイルを保存するフォルダーを自動的に作成しません。フォルダーは手動で作成する必要があります。 +{{% /alert %}} + +## **FAQ** + +**Aspose.Slides プレゼンテーション内で BLOB として扱われ、BLOB オプションで制御されるデータは何ですか?** + +画像、音声、ビデオなどの大容量バイナリオブジェクトは BLOB として扱われます。プレゼンテーション全体のファイルも、ロードまたは保存時に BLOB の処理が行われます。これらのオブジェクトは BLOB ポリシーによって管理され、メモリ使用量を制御し、必要に応じて一時ファイルへ書き出すことができます。 + +**プレゼンテーションのロード時に BLOB の処理ルールはどこで設定しますか?** + +[LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) と [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) を使用します。ここで BLOB のメモリ上限を設定し、一時ファイルの使用を許可または禁止し、テンポラリーファイルのルートパスを選択し、ソースロックの動作を選択できます。 + +**BLOB 設定はパフォーマンスに影響しますか?速度とメモリのバランスはどう取りますか?** + +はい。BLOB をメモリ内に保持すると速度は最大化されますが、RAM の消費が増加します。メモリ上限を下げると、より多くの処理が一時ファイルにオフロードされ、RAM は減少しますが I/O が増加します。ワークロードと環境に合わせて適切なバランスを取るには、[setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/) メソッドを使用してください。 + +**極めて大きなプレゼンテーション(例: 数ギガバイト)を開く際に BLOB オプションは役立ちますか?** + +はい。[BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) はこのようなシナリオ向けに設計されています。 一時ファイルを有効化し、ソースロックを使用することで、ピーク時の RAM 使用量を大幅に削減し、極めて大きなデッキの処理を安定させることができます。 + +**ディスクファイルではなくストリームからロードする際に BLOB ポリシーを使用できますか?** + +はい。同じルールがストリームにも適用されます。プレゼンテーションインスタンスは(選択したロックモードに応じて)入力ストリームを所有およびロックでき、許可されている場合は一時ファイルが使用され、処理中のメモリ使用量を予測可能に保ちます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..deda51de27 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,309 @@ +--- +title: ハイパーリンクの管理 +type: docs +weight: 20 +url: /ja/nodejs-java/manage-hyperlinks/ +keywords: "PowerPoint ハイパーリンク, テキストハイパーリンク, スライドハイパーリンク, シェイプハイパーリンク, 画像ハイパーリンク, ビデオハイパーリンク, Java" +description: "JavaScript で PowerPoint プレゼンテーションにハイパーリンクを追加する方法" +--- + +ハイパーリンクは、オブジェクトやデータ、あるいは何かの中の位置への参照です。これらは PowerPoint プレゼンテーションで一般的に使用されるハイパーリンクです。 + +* テキスト、シェイプ、またはメディア内のウェブサイトへのリンク +* スライドへのリンク + +Aspose.Slides for Node.js via Java を使用すると、プレゼンテーション内のハイパーリンクに関するさまざまなタスクを実行できます。 + +{{% alert color="primary" %}} +Asposeシンプルの[無料オンラインPowerPointエディタ](https://products.aspose.app/slides/editor)をご覧ください。 +{{% /alert %}} + +## **URLハイパーリンクの追加** + +### **URLハイパーリンクをテキストに追加する** + +このJavaScriptコードは、テキストにウェブサイトのハイパーリンクを追加する方法を示します: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **URLハイパーリンクをシェイプまたはフレームに追加する** + +このJavaScriptサンプルコードは、シェイプにウェブサイトのハイパーリンクを追加する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **URLハイパーリンクをメディアに追加する** + +Aspose.Slidesでは、画像、オーディオ、動画ファイルにハイパーリンクを追加できます。 + +このサンプルコードは、**画像**にハイパーリンクを追加する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに画像を追加 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // スライド1に、以前追加した画像を基に画像フレームを作成 + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +このサンプルコードは、**オーディオ ファイル**にハイパーリンクを追加する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +このサンプルコードは、**動画**にハイパーリンクを追加する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +*[OLEの管理](/slides/ja/nodejs-java/manage-ole/)*をご覧ください。 +{{% /alert %}} + +## **ハイパーリンクを使用した目次の作成** + +ハイパーリンクはオブジェクトや場所への参照を追加できるため、目次の作成に利用できます。 + +このサンプルコードは、ハイパーリンクを使用して目次を作成する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ハイパーリンクの書式設定** + +### **色** + +[Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) クラスの [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) メソッドを使用すると、ハイパーリンクの色を設定したり、ハイパーリンクから色情報を取得したりできます。この機能は PowerPoint 2019 で初めて導入されたため、プロパティに関する変更は古い PowerPoint バージョンには適用されません。 + +このサンプルコードは、同じスライドに異なる色のハイパーリンクを追加する操作を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **プレゼンテーションからハイパーリンクを削除する** + +### **テキストからハイパーリンクを削除する** + +このJavaScriptコードは、プレゼンテーション スライドのテキストからハイパーリンクを削除する方法を示します: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // shape がテキストフレーム (IAutoShape) をサポートしているか確認します。 + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // テキストフレーム内の段落を反復処理します + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // 段落内の各ポーションを反復処理します + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// テキストを変更します + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// 書式設定を変更します + } + } + } + } + } + // 変更されたプレゼンテーションを保存します + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **シェイプまたはフレームからハイパーリンクを削除する** + +このJavaScriptコードは、プレゼンテーション スライドのシェイプからハイパーリンクを削除する方法を示します: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **可変ハイパーリンク** + +[Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) クラスは可変です。このクラスを使用すると、以下のプロパティの値を変更できます: + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +このコードスニペットは、スライドにハイパーリンクを追加し、後でツールチップを編集する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **IHyperlinkQueriesでサポートされているプロパティ** + +プレゼンテーション、スライド、またはハイパーリンクが定義されたテキストから、[HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) にアクセスできます。 + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +[HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) クラスは、次のメソッドとプロパティをサポートしています: + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **FAQ** + +**スライドだけでなく「セクション」やセクションの最初のスライドへ内部ナビゲーションを作成するにはどうすればよいですか?** + +PowerPoint のセクションはスライドのグループ化です。ナビゲーションは技術的には特定のスライドを対象にするため、セクションへ「移動」する場合は通常、その最初のスライドへリンクします。 + +**マスタースライド要素にハイパーリンクを付けて、すべてのスライドで機能させることはできますか?** + +はい。マスタースライドやレイアウト要素はハイパーリンクをサポートしており、子スライドに表示され、スライドショー中にクリック可能です。 + +**PDF、HTML、画像、または動画へエクスポートしたときにハイパーリンクは保持されますか?** + +[PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/) と [HTML](/slides/ja/nodejs-java/convert-powerpoint-to-html/) では、リンクは通常保持されます。画像 [images](/slides/ja/nodejs-java/convert-powerpoint-to-png/) や動画 [video](/slides/ja/nodejs-java/convert-powerpoint-to-video/) へのエクスポートでは、ラスターフレームや動画はハイパーリンクをサポートしないため、クリック可能性は引き継がれません。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..ace1e41f8b --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,240 @@ +--- +title: JavaScript を使用したプレゼンテーションのオーディオ管理 +linktitle: オーディオ フレーム +type: docs +weight: 10 +url: /ja/nodejs-java/audio-frame/ +keywords: +- オーディオ +- オーディオ フレーム +- サムネイル +- オーディオを追加 +- オーディオ プロパティ +- オーディオ オプション +- オーディオを抽出 +- Node.js +- JavaScript +- Aspose.Slides +description: "Aspose.Slides for Node.js でオーディオ フレームを作成・制御します—埋め込み、トリミング、ループ、再生設定を PPT、PPTX、ODP プレゼンテーション全体で行う JavaScript のサンプルです。" +--- + +## **オーディオ フレームの作成** + +Aspose.Slides for Node.js via Java を使用すると、スライドにオーディオ ファイルを追加できます。オーディオ ファイルはオーディオ フレームとしてスライドに埋め込まれます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドの参照を取得します。 +3. 埋め込むオーディオ ファイルのストリームをロードします。 +4. 埋め込みオーディオ フレーム(オーディオ ファイルを含む)をスライドに追加します。 +5. [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame) オブジェクトが公開する [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) と `Volume` を設定します。 +6. 変更したプレゼンテーションを保存します。 + +この JavaScript コードは、スライドに埋め込みオーディオ フレームを追加する方法を示します: +```javascript +// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成 +const pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得 + const sld = pres.getSlides().get_Item(0); + // wav サウンド ファイルをストリームに読み込む + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // オーディオ フレームを追加 + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // オーディオの再生モードと音量を設定 + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // PowerPoint ファイルを書き出す + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **オーディオ フレームのサムネイルを変更** + +プレゼンテーションにオーディオ ファイルを追加すると、標準の既定画像を持つフレームとして表示されます(以下の画像参照)。オーディオ フレームのプレビュー画像(任意の画像)に変更できます。 + +この JavaScript コードは、オーディオ フレームのサムネイルまたはプレビュー画像を変更する方法を示します: +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // 指定した位置とサイズでスライドにオーディオ フレームを追加します。 + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // プレゼンテーションのリソースに画像を追加します。 + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // オーディオ フレームの画像を設定します。 + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // 変更されたプレゼンテーションをディスクに保存します。 + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **オーディオ 再生オプションの変更** + +Aspose.Slides for Node.js via Java を使用すると、オーディオの再生やプロパティを制御するオプションを変更できます。たとえば、音量を調整したり、ループ再生に設定したり、アイコンを非表示にしたりできます。 + +Microsoft PowerPoint の **Audio Options** ペイン: + +![example1_image](audio_frame_0.png) + +PowerPoint の **Audio Options** が Aspose.Slides の [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) プロパティに対応します: +- **Start** ドロップダウンは [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode) メソッドに一致 +- **Volume** は [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume) メソッドに一致 +- **Play Across Slides** は [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides) メソッドに一致 +- **Loop until Stopped** は [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode) メソッドに一致 +- **Hide During Show** は [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing) メソッドに一致 +- **Rewind after Playing** は [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio) メソッドに一致 + +PowerPoint の **Editing** オプションが Aspose.Slides の [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) プロパティに対応します: +- **Fade In** は [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration) メソッドに一致 +- **Fade Out** は [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration) メソッドに一致 +- **Trim Audio Start Time** は [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart) メソッドに一致 +- **Trim Audio End Time** の値はオーディオの長さから [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd) メソッドの値を引いたものに等しい + +音量コントロール パネルの PowerPoint **Volume controll** は [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue) メソッドに対応し、パーセンテージで音量を変更できます。 + +オーディオ 再生オプションを変更する手順: + +1. [Create](#create-audio-frame) もしくは Audio Frame を取得します。 +2. 調整したい Audio Frame プロパティに新しい値を設定します。 +3. 変更した PowerPoint ファイルを保存します。 + +この JavaScript コードは、オーディオのオプションを調整する操作を示します: +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // AudioFrame シェイプを取得 + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // 再生モードをクリック時再生に設定 + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // 音量を低に設定 + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // オーディオをスライド全体で再生するように設定 + audioFrame.setPlayAcrossSlides(true); + // オーディオのループを無効化 + audioFrame.setPlayLoopMode(false); + // スライドショー中に AudioFrame を非表示に設定 + audioFrame.setHideAtShowing(true); + // 再生後にオーディオを先頭に巻き戻す + audioFrame.setRewindAudio(true); + // PowerPoint ファイルをディスクに保存 + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +この JavaScript サンプルは、埋め込みオーディオを持つ新しいオーディオ フレームを追加し、トリミングし、フェード時間を設定する方法を示します: +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // トリミング開始オフセットを 1.5 秒に設定 + audioFrame.setTrimFromStart(1500); + // トリミング終了オフセットを 2 秒に設定 + audioFrame.setTrimFromEnd(2000); + + // フェードイン期間を 200 ミリ秒に設定 + audioFrame.setFadeInDuration(200); + // フェードアウト期間を 500 ミリ秒に設定 + audioFrame.setFadeOutDuration(500); + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +次のコード例は、埋め込みオーディオを持つオーディオ フレームを取得し、音量を 85% に設定する方法を示します: +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // オーディオ フレーム シェイプを取得 + const audioFrame = slide.getShapes().get_Item(0); + + // オーディオの音量を 85% に設定 + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **オーディオ の抽出** + +Aspose.Slides for Node.js via Java を使用すると、スライドショーの遷移で使用されるサウンドを抽出できます。たとえば、特定のスライドで使用されるサウンドを抽出できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成し、オーディオを含むプレゼンテーションをロードします。 +2. インデックスを使用して対象スライドの参照を取得します。 +3. スライドの [slideshow transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--) にアクセスします。 +4. サウンドをバイト データとして抽出します。 + +この JavaScript コードは、スライドで使用されるオーディオを抽出する方法を示します: +```javascript +// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成 +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // 対象のスライドにアクセス + const slide = pres.getSlides().get_Item(0); + // スライドのスライドショー遷移効果を取得 + const transition = slide.getSlideShowTransition(); + // サウンドをバイト配列で抽出 + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**同じオーディオ アセットを複数のスライドで再利用して、ファイル サイズを増加させない方法はありますか?** + +はい。プレゼンテーションの共有 [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) にオーディオを一度だけ追加し、その既存アセットを参照する追加のオーディオ フレームを作成します。これによりメディア データの重複が回避され、プレゼンテーション サイズが制御下に保たれます。 + +**既存のオーディオ フレームのサウンドを形状を作り直さずに置き換えることはできますか?** + +はい。リンクされたサウンドの場合は、[link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) を新しいファイルに更新します。埋め込みサウンドの場合は、[embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) オブジェクトをプレゼンテーションの [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) から別のものに入れ替えます。フレームの書式設定とほとんどの再生設定はそのまま残ります。 + +**トリミングはプレゼンテーションに保存されている基礎オーディオ データを変更しますか?** + +いいえ。トリミングは再生境界のみを調整します。元のオーディオ バイトは変更されず、埋め込みオーディオまたはプレゼンテーションのオーディオ コレクションを介してアクセス可能なままです。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..06eaf9f25c --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: Flash +type: docs +weight: 10 +url: /ja/nodejs-java/flash/ +description: JavaScript を使用して PowerPoint プレゼンテーションから Flash オブジェクトを抽出 +--- + +## **プレゼンテーションからFlashオブジェクトを抽出** + +Aspose.Slides for Node.js via Java は、プレゼンテーションから flash オブジェクトを抽出する機能を提供します。名前で flash コントロールにアクセスし、プレゼンテーションから抽出して SWF オブジェクトデータを格納できます。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Flash コンテンツ抽出時にサポートされるプレゼンテーション形式は何ですか?** + +[Aspose.Slides supports](/slides/ja/nodejs-java/supported-file-formats/) は、PPT や PPTX などの主要な PowerPoint 形式をサポートします。これらのコンテナをロードしてコントロールにアクセスでき、Flash 関連の ActiveX 要素も含まれます。 + +**Flash を含むプレゼンテーションを HTML5 に変換し、Flash のインタラクティブ性を保持できますか?** + +いいえ。Aspose.Slides は SWF コンテンツを実行せず、インタラクティブ性も変換しません。[HTML](/slides/ja/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/ja/nodejs-java/export-to-html5/) へのエクスポートはサポートされていますが、モダンブラウザではサポート終了のため Flash は再生されません。推奨される方法は、エクスポート前に Flash を動画や HTML5 アニメーションなどの代替手段に置き換えることです。 + +**セキュリティ観点から、プレゼンテーションの読み取り中に Aspose.Slides は SWF ファイルを実行しますか?** + +いいえ。Aspose.Slides は Flash をファイルに埋め込まれたバイナリ データとして扱い、処理中に SWF コンテンツを実行しません。 + +**OLE を介して埋め込まれた他のファイルと共に Flash を含むプレゼンテーションはどのように扱うべきですか?** + +Aspose.Slides は [extracting embedded OLE objects](/slides/ja/nodejs-java/manage-ole/) をサポートしているため、関連する埋め込みコンテンツを一括で処理でき、Flash コントロールと他の OLE 埋め込みドキュメントを同時に扱うことができます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..0e70e87a7b --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,299 @@ +--- +title: 画像 +type: docs +weight: 10 +url: /ja/nodejs-java/image/ +keywords: +- 画像を追加 +- 写真を追加 +- ビットマップを追加 +- 画像を置換 +- 写真を置換 +- Webから +- 背景 +- PNGを追加 +- JPGを追加 +- SVGを追加 +- EMFを追加 +- WMFを追加 +- TIFFを追加 +- PowerPoint +- OpenDocument +- プレゼンテーション +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "Aspose.Slides for Node.js を使用して、PowerPoint および OpenDocument の画像管理を効率化し、パフォーマンスを最適化し、ワークフローを自動化します。" +--- + +## **プレゼンテーションのスライド内の画像** + +画像はプレゼンテーションをより魅力的で興味深いものにします。Microsoft PowerPoint では、ファイル、インターネット、または他の場所から画像をスライドに挿入できます。同様に、Aspose.Slides ではさまざまな手順でプレゼンテーションのスライドに画像を追加できます。 + +{{% alert title="Tip" color="primary" %}} +Aspose は無料コンバータ—[JPEG to PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) と [PNG to PowerPoint](https://products.aspose.app/slides/import/png-to-ppt) を提供しており、画像から素早くプレゼンテーションを作成できます。 +{{% /alert %}} + +{{% alert title="Info" color="info" %}} +画像をフレームオブジェクトとして追加したい場合、特にサイズ変更やエフェクト追加など標準の書式設定オプションを使用する予定がある場合は、[Picture Frame](https://docs.aspose.com/slides/nodejs-java/picture-frame/) を参照してください。 +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} +画像と PowerPoint プレゼンテーションに関わる入出力操作を操作して、画像を別の形式に変換できます。次のページをご確認ください: 画像を [JPG に変換](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/);[JPG を画像に変換](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/);[JPG を PNG に変換](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/);[PNG を JPG に変換](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/);[PNG を SVG に変換](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/);[SVG を PNG に変換](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/)。 +{{% /alert %}} + +Aspose.Slides は JPEG、PNG、GIF などの一般的な形式の画像操作をサポートします。 + +## **ローカルに保存された画像をスライドに追加する** + +コンピュータ上の 1 つまたは複数の画像をプレゼンテーションのスライドに追加できます。この JavaScript サンプルコードは、スライドに画像を追加する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ストリームから画像をスライドに追加する** + +コンピュータに画像がない場合は、Web から直接画像を取得してスライドに追加できます。 + +この JavaScript サンプルコードは、Web から画像を取得してスライドに追加する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスします + var sld = pres.getSlides().get_Item(0); + // Excel ファイルをストリームに読み込みます + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // 埋め込み用データオブジェクトを作成します + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // Ole オブジェクトフレーム形状を追加します + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // PPTX ファイルを書き込みます + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **スライドマスターに画像を追加する** + +スライドマスターは、下位のすべてのスライドに関する情報(テーマ、レイアウトなど)を保存および管理する最上位のスライドです。そのため、スライドマスターに画像を追加すると、その画像はマスター配下のすべてのスライドに表示されます。 + +この JavaScript サンプルコードは、スライドマスターに画像を追加する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **スライドの背景として画像を追加する** + +特定のスライドまたは複数のスライドの背景に画像を使用したい場合は、*[Setting Images as Backgrounds for Slides](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)* を参照してください。 + +## **プレゼンテーションに SVG を追加する** +[addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) メソッド([ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) クラス所属)を使用して、任意の画像をプレゼンテーションに追加または挿入できます。 + +SVG 画像に基づく画像オブジェクトを作成するには、次の手順で行います。 + +1. SvgImage オブジェクトを作成し、ImageShapeCollection に挿入する +2. ISvgImage から PPImage オブジェクトを作成する +3. PPImage クラスを使用して PictureFrame オブジェクトを作成する + +このサンプルコードは、上記手順を実装して SVG 画像をプレゼンテーションに追加する方法を示しています: +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **SVG をシェイプの集合に変換する** +Aspose.Slides の SVG をシェイプ集合に変換する機能は、SVG 画像を操作するための PowerPoint の機能と同様です: + +![PowerPoint Popup Menu](img_01_01.png) + +この機能は、[ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) クラスの [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) メソッドのオーバーロードの一つで提供され、最初の引数として [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage) オブジェクトを受け取ります。 + +このサンプルコードは、上記メソッドを使用して SVG ファイルをシェイプの集合に変換する方法を示しています: +```javascript +// 新しいプレゼンテーションを作成します +var presentation = new aspose.slides.Presentation(); +try { + // SVG ファイルの内容を読み取ります + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // SvgImage オブジェクトを作成します + var svgImage = new aspose.slides.SvgImage(svgContent); + // スライドサイズを取得します + var slideSize = presentation.getSlideSize().getSize(); + // SVG 画像をスライドサイズに合わせて拡大縮小し、シェイプのグループに変換します + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // プレゼンテーションを PPTX 形式で保存します + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **スライドに EMF 画像として追加する** +Aspose.Slides for Node.js via Java を使用すると、Excel シートから EMF 画像を生成し、Aspose.Cells と組み合わせてスライドに EMF として画像を追加できます。 + +このサンプルコードは、記述されたタスクを実行する方法を示しています: +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); + // ワークブックをストリームに保存します +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **画像コレクション内の画像を置換する** + +Aspose.Slides は、プレゼンテーションの画像コレクション(スライドシェイプが使用している画像を含む)に格納された画像を置換できます。このセクションでは、コレクション内の画像を更新するいくつかのアプローチを示します。API は、バイトデータ、[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) インスタンス、またはコレクション内に既に存在する別の画像を使用して画像を置換するシンプルなメソッドを提供します。 + +以下の手順に従ってください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスを使用して、画像を含むプレゼンテーション ファイルを読み込みます。 +2. ファイルから新しい画像をバイト配列に読み込みます。 +3. バイト配列を使用して対象画像を新しい画像に置換します。 +4. 2 番目のアプローチでは、画像を [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) オブジェクトにロードし、そのオブジェクトで対象画像を置換します。 +5. 3 番目のアプローチでは、プレゼンテーションの画像コレクションに既に存在する画像で対象画像を置換します。 +6. 変更されたプレゼンテーションを PPTX ファイルとして書き出します。 +```js +// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // 1 番目の方法 + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // 2 番目の方法 + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // 3 番目の方法 + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // プレゼンテーションをファイルに保存します + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Aspose の無料 [Text to GIF](https://products.aspose.app/slides/text-to-gif) コンバータを使用すると、テキストを簡単にアニメーション化したり、テキストから GIF を作成したりできます。 +{{% /alert %}} + +## **FAQ** + +**挿入後も元の画像解像度は維持されますか?** + +はい。元のピクセルは保持されますが、最終的な見た目はスライド上で [picture](/slides/ja/nodejs-java/picture-frame/) がどのようにスケーリングされるかや、保存時に適用される圧縮に依存します。 + +**多数のスライドに同じロゴを一括で置換する最適な方法は?** + +マスタースライドまたはレイアウトにロゴを配置し、プレゼンテーションの画像コレクションで置換すると、該当リソースを使用しているすべての要素に自動的に反映されます。 + +**挿入した SVG を編集可能なシェイプに変換できますか?** + +はい。SVG をシェイプのグループに変換でき、その後個々のパーツは標準のシェイププロパティで編集可能になります。 + +**複数のスライドに同時に画像を背景として設定するには?** + +マスタースライドまたは該当レイアウトで画像を背景として割り当てます([Assign the image as the background](/slides/ja/nodejs-java/presentation-background/))。そのマスター/レイアウトを使用しているすべてのスライドが背景を継承します。 + +**多数の画像でプレゼンテーションがサイズ肥大化するのを防ぐには?** + +画像の重複を避けて単一のリソースを再利用し、適切な解像度を選択し、保存時に圧縮を適用し、必要に応じてマスターに繰り返し使用するグラフィックスを配置してください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..33ebe6ecfd --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,448 @@ +--- +title: 画像フレーム +type: docs +weight: 10 +url: /ja/nodejs-java/picture-frame/ +keywords: +- 画像フレーム +- 画像フレームを追加 +- 画像フレームを作成 +- 画像を追加 +- 画像を作成 +- 画像を抽出 +- 画像をトリミング +- StretchOff プロパティ +- 画像フレームの書式設定 +- 画像フレームのプロパティ +- 画像効果 +- アスペクト比 +- PowerPoint +- プレゼンテーション +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "JavaScript で PowerPoint プレゼンテーションに画像フレームを追加" +--- + +画像フレームは画像を含む形状で、フレーム内の画像のようなものです。 + +画像フレームを介してスライドに画像を追加できます。この方法では、画像フレームの書式設定により画像の書式設定が可能になります。 + +{{% alert title="Tip" color="primary" %}} + +Aspose は無料コンバータ([JPEGからPowerPointへ](https://products.aspose.app/slides/import/jpg-to-ppt) および [PNGからPowerPointへ](https://products.aspose.app/slides/import/png-to-ppt))を提供しており、画像からプレゼンテーションをすばやく作成できます。 + +{{% /alert %}} + +## **画像フレームの作成** + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドへの参照を取得します。 +3. プレゼンテーション オブジェクトに関連付けられた [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) に画像を追加して `PPImage` オブジェクトを作成し、シェイプの塗りつぶしに使用します。 +4. 画像の幅と高さを指定します。 +5. 参照されたスライドに関連付けられたシェイプ オブジェクトが公開する `addPictureFrame` メソッドを使用して、画像の幅と高さに基づく [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) を作成します。 +6. 画像フレーム(画像を含む)をスライドに追加します。 +7. 変更されたプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは画像フレームの作成方法を示しています。 +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得します + var sld = pres.getSlides().get_Item(0); + // Image クラスのインスタンスを作成します + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // 画像と同等の高さと幅でピクチャーフレームを追加します + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // PPTX ファイルをディスクに保存します + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" %}} + +画像フレームを使用すると、画像に基づいたスライドをすばやく作成できます。画像フレームと Aspose.Slides の保存オプションを組み合わせることで、入力/出力操作を操作して画像を別の形式に変換できます。以下のページもご参照ください:変換 [画像からJPGへ](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/);変換 [JPGから画像へ](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/);変換 [JPGからPNGへ](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/)、変換 [PNGからJPGへ](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/);変換 [PNGからSVGへ](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/)、変換 [SVGからPNGへ](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/)。 + +{{% /alert %}} + +## **相対スケール付き画像フレームの作成** + +画像の相対スケーリングを変更することで、より複雑な画像フレームを作成できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドへの参照を取得します。 +3. プレゼンテーションの画像コレクションに画像を追加します。 +4. プレゼンテーション オブジェクトに関連付けられた [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) に画像を追加して [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、シェイプの塗りつぶしに使用します。 +5. 画像フレーム内で画像の相対幅と高さを指定します。 +6. 変更されたプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは相対スケール付き画像フレームの作成方法を示しています。 +```javascript +// PPTX を表す Presentation クラスをインスタンス化します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得します + var sld = pres.getSlides().get_Item(0); + // Image クラスをインスタンス化します + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // 画像と同等の高さと幅でピクチャーフレームを追加します + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // 相対スケールの幅と高さを設定します + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // PPTX ファイルをディスクに保存します + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **画像フレームからラスター画像を抽出** + +[PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) オブジェクトからラスター画像を抽出し、PNG、JPG などの形式で保存できます。以下のコード例は、ドキュメント「sample.pptx」から画像を抽出し、PNG 形式で保存する方法を示しています。 +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **画像フレームから SVG 画像を抽出** + +プレゼンテーション内に SVG グラフィックが [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) シェイプに配置されている場合、Node.js 用 Aspose.Slides は元のベクター画像をフルフィデリティで取得できます。スライドのシェイプ コレクションを走査し、各 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) を特定し、基になる [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) が SVG コンテンツを保持しているか確認し、ネイティブ SVG 形式でディスクまたはストリームに保存できます。 + +次のコード例は画像フレームから SVG 画像を抽出する方法を示しています。 +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **画像の透明度取得** + +Aspose.Slides では画像に適用された透明度効果を取得できます。この JavaScript コードは操作を示しています。 +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **画像フレームの書式設定** + +Aspose.Slides は画像フレームに適用できる多くの書式設定オプションを提供します。これらのオプションを使用して、特定の要件に合わせて画像フレームを変更できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドへの参照を取得します。 +3. プレゼンテーション オブジェクトに関連付けられた [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) に画像を追加して [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、シェイプの塗りつぶしに使用します。 +4. 画像の幅と高さを指定します。 +5. 参照されたスライドに関連付けられた [Shapes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) オブジェクトが公開する [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) メソッドを使用して、画像の幅と高さに基づく `PictureFrame` を作成します。 +6. 画像フレーム(画像を含む)をスライドに追加します。 +7. 画像フレームの線の色を設定します。 +8. 画像フレームの線幅を設定します。 +9. 正または負の値で画像フレームを回転させます。 + * 正の値は画像を時計回りに回転させます。 + * 負の値は画像を反時計回りに回転させます。 +10. 画像フレーム(画像を含む)をスライドに追加します。 +11. 変更されたプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは画像フレームの書式設定プロセスを実演します。 +```javascript +// PPTX を表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得します + var sld = pres.getSlides().get_Item(0); + // Image クラスのインスタンスを作成します + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // 画像と同等の高さと幅でピクチャーフレームを追加します + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // PictureFrameEx にいくつかの書式設定を適用します + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // PPTX ファイルを書き出します + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose は最近、無料の [Collage Maker](https://products.aspose.app/slides/collage) を開発しました。JPG/JPEG または PNG 画像を結合したり、写真からグリッドを作成したりする必要がある場合は、このサービスを利用できます。 + +{{% /alert %}} + +## **リンクとして画像を追加** + +プレゼンテーションのサイズを大きくしないように、ファイルを直接埋め込む代わりにリンクを介して画像(や動画)を追加できます。この JavaScript コードはプレースホルダーに画像と動画を追加する方法を示しています。 +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **画像のトリミング** + +この JavaScript コードはスライド上の既存画像をトリミングする方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +// 新しい画像オブジェクトを作成します +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // スライドに PictureFrame を追加します + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // 画像をトリミングします(パーセンテージ値) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // 結果を保存します + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **画像フレームのトリミング領域を削除** + +フレームに含まれる画像のトリミング領域を削除したい場合は、[deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) メソッドを使用できます。このメソッドはトリミングされた画像またはトリミングが不要な場合は元の画像を返します。 + +この JavaScript コードは操作を実演します。 +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // 最初のスライドから PictureFrame を取得します + var picFrame = slide.getShapes().get_Item(0); + // PictureFrame の画像のトリミングされた領域を削除し、トリミング後の画像を返します + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // 結果を保存します + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +[deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) メソッドはトリミングされた画像をプレゼンテーションの画像コレクションに追加します。画像が処理された [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) のみで使用されている場合、この設定によりプレゼンテーションのサイズが削減されます。そうでない場合、結果として得られるプレゼンテーションの画像数は増加します。 + +このメソッドはトリミング操作中に WMF/EMF メタファイルをラスター PNG 画像に変換します。 + +{{% /alert %}} + +## **アスペクト比ロック** + +画像を含むシェイプのサイズを変更してもアスペクト比を保持したい場合は、[setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-) メソッドを使用して *Lock Aspect Ratio* 設定を有効にできます。 + +この JavaScript コードはシェイプのアスペクト比をロックする方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // リサイズ時にアスペクト比を保持するようにシェイプを設定します + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} + +*Lock Aspect Ratio* 設定はシェイプのアスペクト比のみを保持し、シェイプに含まれる画像のアスペクト比は保持しません。 + +{{% /alert %}} + +## **StretchOff プロパティの使用** + +[PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat) クラスの [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-)、[setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--)、[setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) および [setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) メソッドを使用して、塗りつぶし矩形を指定できます。 + +画像のストレッチが指定されると、ソース矩形が指定された塗りつぶし矩形に合わせてスケーリングされます。塗りつぶし矩形の各エッジは、シェイプのバウンディング ボックスの対応するエッジからのパーセンテージオフセットで定義されます。正のパーセンテージはインセット、負のパーセンテージはアウトセットを示します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドへの参照を取得します。 +3. 四角形 `AutoShape` を追加します。 +4. 画像を作成します。 +5. シェイプの塗りつぶしタイプを設定します。 +6. シェイプの画像塗りつぶしモードを設定します。 +7. シェイプを塗りつぶす画像を設定します。 +8. シェイプのバウンディング ボックスの対応するエッジからの画像オフセットを指定します。 +9. 変更されたプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは StretchOff プロパティを使用したプロセスを実演します。 +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得します + var slide = pres.getSlides().get_Item(0); + // ImageEx クラスのインスタンスを作成します + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 四角形になる AutoShape を追加します + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // シェイプの塗りつぶしタイプを設定します + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // シェイプの画像塗りつぶしモードを設定します + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // シェイプを埋める画像を設定します + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // シェイプのバウンディングボックスの対応するエッジから画像のオフセットを指定します + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // PPTX ファイルをディスクに書き出します + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**画像フレームでサポートされている画像形式はどのように確認できますか?** + +Aspose.Slides は、[PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) に割り当てられた画像オブジェクトを介して、ラスター画像(PNG、JPEG、BMP、GIF など)およびベクター画像(たとえば SVG)をサポートします。サポートされている形式の一覧は、スライドおよび画像変換エンジンの機能と概ね重なります。 + +**多数の大きな画像を追加すると PPTX のサイズとパフォーマンスにどのような影響がありますか?** + +大きな画像を埋め込むとファイルサイズとメモリ使用量が増加します。画像をリンクとして追加するとプレゼンテーションのサイズを抑えられますが、外部ファイルがアクセス可能である必要があります。Aspose.Slides はリンクによる画像追加機能を提供してサイズ削減を支援します。 + +**画像オブジェクトが誤って移動・サイズ変更されないようにロックするには?** + +[PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 用の [shape locks](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/) を使用します(例:移動やサイズ変更の無効化)。ロック機構は別記事の [保護に関する記事](/slides/ja/nodejs-java/applying-protection-to-presentation/) に記載されており、さまざまなシェイプ タイプ([PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) を含む)でサポートされています。 + +**SVG ベクターの忠実度は PDF/画像へのエクスポート時に保持されますか?** + +Aspose.Slides は [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) から元のベクターとして SVG を抽出できます。[PDF へのエクスポート](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/) や [ラスター形式へのエクスポート](/slides/ja/nodejs-java/convert-powerpoint-to-png/) 時の結果はエクスポート設定に依存し、場合によってはラスター化されます。抽出動作により元の SVG がベクターとして保持されていることが確認できます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..eecbefe7c2 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,180 @@ +--- +title: ビデオフレーム +type: docs +weight: 10 +url: /ja/nodejs-java/video-frame/ +keywords: "ビデオを追加, ビデオフレームを作成, ビデオを抽出, PowerPoint プレゼンテーション, Java, Aspose.Slides for Node.js via Java" +description: "JavaScript で PowerPoint プレゼンテーションにビデオフレームを追加" +--- + +プレゼンテーションに適切に配置されたビデオは、メッセージをより説得力のあるものにし、聴衆とのエンゲージメントレベルを高めることができます。 + +PowerPointでは、プレゼンテーションのスライドにビデオを追加する方法が2つあります。 + +* ローカルビデオを追加または埋め込み(マシンに保存) +* オンラインビデオを追加(YouTubeなどのウェブソースから)。 + +プレゼンテーションにビデオ(video objects)を追加できるように、Aspose.Slidesは[Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)クラス、[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)クラス、およびその他の関連タイプを提供します。 + +## **埋め込みビデオフレームの作成** + +スライドに追加したいビデオファイルがローカルに保存されている場合、プレゼンテーションにビデオを埋め込むビデオフレームを作成できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. インデックスを使用してスライドの参照を取得します。 +1. [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) オブジェクトを追加し、ビデオファイルパスを渡してプレゼンテーションにビデオを埋め込みます。 +1. [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) オブジェクトを追加してビデオのフレームを作成します。 +1. 変更されたプレゼンテーションを保存します。 + +このJavaScriptコードは、ローカルに保存されたビデオをプレゼンテーションに追加する方法を示します。 +```javascript +// Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // ビデオをロードします + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // 最初のスライドを取得し、ビデオフレームを追加します + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // プレゼンテーションをディスクに保存します + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +あるいは、ファイルパスを直接 [addVideoFrame(float x, float y, float width, float height, IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-) メソッドに渡すことでビデオを追加できます: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Web ソースからのビデオでビデオフレームを作成** + +Microsoft の[PowerPoint 2013 以降](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us)はプレゼンテーションで YouTube ビデオをサポートしています。使用したいビデオがオンライン(例:YouTube)で利用可能な場合、そのウェブリンクを介してプレゼンテーションに追加できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. インデックスを使用してスライドの参照を取得します。 +1. [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) オブジェクトを追加し、ビデオへのリンクを渡します。 +1. ビデオフレームのサムネイルを設定します。 +1. プレゼンテーションを保存します。 + +このJavaScriptコードは、Web からのビデオを PowerPoint のスライドに追加する方法を示します: +```javascript +// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **スライドからビデオを抽出** + +スライドにビデオを追加するだけでなく、Aspose.Slidesはプレゼンテーションに埋め込まれたビデオを抽出することも可能です。 + +1. ビデオが含まれるプレゼンテーションをロードするために、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. すべての[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) オブジェクトを反復処理します。 +3. すべての[Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) オブジェクトを反復処理し、[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) を見つけます。 +4. ビデオをディスクに保存します。 + +このJavaScriptコードは、プレゼンテーションスライド上のビデオを抽出する方法を示します: +```javascript +// プレゼンテーションファイルを表す Presentation オブジェクトをインスタンス化します +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // ファイル拡張子を取得します + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**VideoFrame の再生パラメータで変更できるものは何ですか?** + +[playback mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/)(自動またはクリック時)と[looping](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/) を制御できます。これらのオプションは[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) オブジェクトのプロパティで利用可能です。 + +**ビデオの追加は PPTX ファイルサイズに影響しますか?** + +はい。ローカルビデオを埋め込むと、バイナリデータがドキュメントに含まれるため、プレゼンテーションのサイズはファイルサイズに比例して増加します。オンラインビデオを追加する場合は、リンクとサムネイルが埋め込まれるだけなので、サイズの増加は小さくなります。 + +**既存の VideoFrame のビデオを、位置やサイズを変更せずに置き換えることはできますか?** + +はい。フレーム内の[video content](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/) を入れ替えることで、シェイプのジオメトリを保持したまま置き換えることができます。これは既存のレイアウトでメディアを更新する一般的なシナリオです。 + +**埋め込みビデオのコンテンツタイプ(MIME)を判別できますか?** + +はい。埋め込みビデオには[content type](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/) があり、これを読み取って使用できます。たとえばディスクに保存する際などに利用できます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..43e40ec2c8 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,334 @@ +--- +title: JavaScript を使用してプレゼンテーションの OLE を管理する +linktitle: OLE の管理 +type: docs +weight: 40 +url: /ja/nodejs-java/manage-ole/ +keywords: +- OLE オブジェクト +- オブジェクト リンキング & 埋め込み +- OLE を追加 +- OLE を埋め込む +- オブジェクトを追加 +- オブジェクトを埋め込む +- ファイルを追加 +- ファイルを埋め込む +- リンクされたオブジェクト +- リンクされたファイル +- OLE を変更 +- OLE アイコン +- OLE タイトル +- OLE を抽出 +- オブジェクトを抽出 +- ファイルを抽出 +- PowerPoint +- プレゼンテーション +- Node.js +- JavaScript +- Aspose.Slides +description: "Aspose.Slides for Node.js を使用して、PowerPoint および OpenDocument ファイルの OLE オブジェクト管理を最適化します。OLE コンテンツをシームレスに埋め込み、更新し、エクスポートできます。" +--- + +{{% alert color="primary" %}} + +OLE(Object Linking & Embedding)は、あるアプリケーションで作成されたデータやオブジェクトを、リンクまたは埋め込みによって別のアプリケーションに配置できる Microsoft の技術です。 + +{{% /alert %}} + +MS Excel で作成したチャートを考えてみましょう。そのチャートを PowerPoint のスライドに配置します。この Excel チャートは OLE オブジェクトとみなされます。 + +- OLE オブジェクトはアイコンとして表示されることがあります。この場合、アイコンをダブルクリックするとチャートが関連付けられたアプリケーション(Excel)で開くか、オブジェクトの開閉や編集に使用するアプリケーションの選択が求められます。 +- OLE オブジェクトは実際の内容(例:チャートの内容)を表示することもあります。この場合、PowerPoint 内でチャートがアクティブになり、チャートインターフェイスが読み込まれ、PowerPoint 上でチャートのデータを変更できます。 + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) を使用すると、OLE オブジェクトをスライドに OLE オブジェクトフレーム([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame))として挿入できます。 + +## **スライドへのOLEオブジェクトフレームの追加** + +Microsoft Excel で既にチャートを作成し、Aspose.Slides for Node.js via Java を使用して OLE オブジェクトフレームとしてスライドに埋め込みたい場合、次の手順で実行できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. インデックスを使用してスライドの参照を取得します。 +1. Excel ファイルをバイト配列として読み取ります。 +1. バイト配列と OLE オブジェクトに関するその他の情報を含む [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) をスライドに追加します。 +1. 変更したプレゼンテーションを PPTX ファイルとして保存します。 + +以下の例では、Excel ファイルからチャートを取得し、Aspose.Slides for Node.js via Java を使用して OLE オブジェクトフレームとしてスライドに追加しています。 +**Note** [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) コンストラクターは、2 番目のパラメーターとして埋め込み可能なオブジェクト拡張子を受け取ります。この拡張子により、PowerPoint がファイルタイプを正しく解釈し、この OLE オブジェクトを開く適切なアプリケーションを選択できます。 +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// Prepare data for the OLE object. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// Add the OLE object frame to the slide. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **リンクされたOLEオブジェクトフレームの追加** + +Aspose.Slides for Node.js via Java を使用すると、データを埋め込まずにファイルへのリンクだけで [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) を追加できます。 + +以下の JavaScript コードは、リンクされた Excel ファイルを持つ [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) をスライドに追加する方法を示しています: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// リンクされた Excel ファイルを使用して OLE オブジェクトフレームを追加する。 +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **OLEオブジェクトフレームへのアクセス** + +スライドに OLE オブジェクトが既に埋め込まれている場合、次の手順で簡単に検索またはアクセスできます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成して、埋め込み OLE オブジェクトを含むプレゼンテーションを読み込みます。 +2. インデックスを使用してスライドの参照を取得します。 +3. [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) シェイプにアクセスします。例では、最初のスライドに 1 つだけシェイプがある既存の PPTX を使用しています。 +4. OLE オブジェクトフレームにアクセスしたら、任意の操作を実行できます。 + +以下の例では、スライドに埋め込まれた OLE オブジェクトフレーム(Excel チャートオブジェクト)とそのファイルデータにアクセスしています。 +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // 埋め込まれたファイルデータを取得します。 + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + + // 埋め込まれたファイルの拡張子を取得します。 + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + // ... +} +``` + + +### **リンクされたOLEオブジェクトフレームのプロパティへのアクセス** + +Aspose.Slides を使用すると、リンクされた OLE オブジェクトフレームのプロパティにアクセスできます。 + +以下の JavaScript コードは、OLE オブジェクトがリンクされているかどうかを確認し、リンクされたファイルへのパスを取得する方法を示しています: +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // OLE オブジェクトがリンクされているか確認する。 + if (oleFrame.isObjectLink()) { + // リンクされたファイルへのフルパスを出力する。 + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // 存在する場合、リンクされたファイルへの相対パスを出力する。 + // PPT プレゼンテーションのみが相対パスを保持できます。 + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **OLEオブジェクトデータの変更** + +{{% alert color="primary" %}} + +このセクションでは、以下のコード例で [Aspose.Cells for Java](/cells/java/) を使用しています。 + +{{% /alert %}} + +スライドに OLE オブジェクトが既に埋め込まれている場合、次の手順でオブジェクトにアクセスしデータを変更できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成して、埋め込み OLE オブジェクトを含むプレゼンテーションを読み込みます。 +2. インデックスを使用してスライドの参照を取得します。 +3. OLE オブジェクトフレームシェイプにアクセスします。例では、最初のスライドに 1 つだけシェイプがある既存の PPTX を使用しています。 +4. OLE オブジェクトフレームにアクセスしたら、任意の操作を実行できます。 +5. `Workbook` オブジェクトを作成し、OLE データにアクセスします。 +6. 目的の `Worksheet` にアクセスし、データを修正します。 +7. 更新された `Workbook` をストリームに保存します。 +8. ストリームから OLE オブジェクトデータを置き換えます。 + +以下の例では、スライドに埋め込まれた OLE オブジェクトフレーム(Excel チャートオブジェクト)にアクセスし、ファイルデータを変更してチャートデータを更新しています。 +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // OLE オブジェクトデータを Workbook オブジェクトとして読み取ります。 + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // ワークブックのデータを変更します。 + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // OLE フレームオブジェクトのデータを変更します。 + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **スライドへの他のファイルタイプの埋め込み** + +Excel チャートに加えて、Aspose.Slides for Node.js via Java を使用すると、HTML、PDF、ZIP などの他の種類のファイルもスライドに埋め込むことができます。挿入したオブジェクトをダブルクリックすると、関連プログラムで自動的に開くか、適切なプログラムを選択するように求められます。 + +以下の JavaScript コードは、HTML と ZIP をスライドに埋め込む方法を示しています: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **埋め込みオブジェクトのファイルタイプ設定** + +プレゼンテーションで作業する際、古い OLE オブジェクトを新しいものに置き換えたり、サポートされていない OLE オブジェクトをサポートされているものに差し替える必要があることがあります。Aspose.Slides for Node.js via Java を使用すると、埋め込みオブジェクトのファイルタイプを設定でき、OLE フレームのデータや拡張子を更新できます。 + +以下の JavaScript コードは、埋め込み OLE オブジェクトのファイルタイプを `zip` に設定する方法を示しています: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// Change the file type to ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **埋め込みオブジェクトのアイコン画像とタイトルの設定** + +OLE オブジェクトを埋め込むと、アイコン画像からなるプレビューが自動的に追加されます。このプレビューはユーザーが OLE オブジェクトにアクセスまたは開く前に表示されるものです。特定の画像とテキストをプレビュー要素として使用したい場合は、Aspose.Slides for Node.js via Java を使用してアイコン画像とタイトルを設定できます。 + +以下の JavaScript コードは、埋め込みオブジェクトのアイコン画像とタイトルを設定する方法を示しています: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// プレゼンテーションのリソースに画像を追加します。 +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// OLE プレビュー用にタイトルと画像を設定します。 +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **OLEオブジェクトフレームのサイズ変更・再配置の防止** + +リンクされた OLE オブジェクトをプレゼンテーションスライドに追加した後、PowerPoint でプレゼンテーションを開くと「リンクの更新」メッセージが表示されることがあります。「Update Links」ボタンをクリックすると、PowerPoint がリンクされた OLE オブジェクトのデータを更新し、オブジェクトのプレビューを再生成するため、OLE オブジェクトフレームのサイズや位置が変更されることがあります。PowerPoint がオブジェクトのデータ更新を促さないようにするには、[OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) クラスの `setUpdateAutomatic` メソッドに `false` を指定します: +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **埋め込みファイルの抽出** + +Aspose.Slides for Node.js via Java を使用すると、スライドに OLE オブジェクトとして埋め込まれたファイルを次の手順で抽出できます。 + +1. 抽出対象の OLE オブジェクトを含む [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. プレゼンテーション内のすべてのシェイプをループし、[OLEObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe) シェイプにアクセスします。 +3. OLE オブジェクトフレームから埋め込みファイルのデータを取得し、ディスクに書き出します。 + +以下の JavaScript コードは、スライドに埋め込まれたファイルを OLE オブジェクトとして抽出する方法を示しています: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **FAQ** + +**OLE コンテンツは PDF/画像へエクスポートするときにレンダリングされますか?** + +スライド上に表示されているものがレンダリングされます — アイコン/代替画像(プレビュー)です。「ライブ」な OLE コンテンツはレンダリング時に実行されません。必要に応じて、エクスポートされた PDF で期待通りの外観になるようプレビュー画像を自分で設定してください。 + +**スライド上の OLE オブジェクトをロックして、ユーザーが PowerPoint で移動/編集できないようにするには?** + +シェイプをロックします。Aspose.Slides は [シェイプレベルのロック](/slides/ja/nodejs-java/applying-protection-to-presentation/) を提供します。これは暗号化ではありませんが、誤って編集や移動することを実質的に防止します。 + +**リンクされた OLE オブジェクトの相対パスは PPTX 形式で保持されますか?** + +PPTX では「相対パス」の情報は保存されません。フルパスのみが保持されます。相対パスは旧式の PPT 形式でのみ利用可能です。可搬性を考慮する場合は、信頼できる絶対パスまたはアクセス可能な URI、もしくは埋め込みを使用してください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..81c25fc6c8 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,65 @@ +--- +title: アニメーションテキスト +type: docs +weight: 60 +url: /ja/nodejs-java/animated-text/ +keywords: "PowerPoint のアニメーションテキスト" +description: "Java を使用した PowerPoint のアニメーションテキスト" +--- + +## **段落へのアニメーション効果の追加** + +[**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) メソッドを [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) と [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) クラスに追加しました。このメソッドを使用すると、単一の段落にアニメーション効果を追加できます。次のサンプルコードは、単一の段落にアニメーション効果を追加する方法を示しています: +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // エフェクトを追加する段落を選択 + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // 選択した段落に Fly アニメーションエフェクトを追加 + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **段落内のアニメーション効果の取得** + +段落に追加されたアニメーション効果を取得したい場合があります。たとえば、別の段落やシェイプに同じ効果を適用したいシナリオです。 + +Aspose.Slides for Node.js via Java を使用すると、テキストフレーム(シェイプ)内に含まれる段落に適用されたすべてのアニメーション効果を取得できます。次のサンプルコードは、段落内のアニメーション効果を取得する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **FAQ** + +**テキストアニメーションはスライドトランジションとどう違い、組み合わせは可能ですか?** + +テキストアニメーションはスライド上のオブジェクトの動作を時間軸で制御し、[transitions](/slides/ja/nodejs-java/slide-transition/) はスライド間の切り替え方法を制御します。両者は独立していますが同時に使用でき、再生順序はアニメーションタイムラインとトランジション設定で決まります。 + +**テキストアニメーションは PDF や画像へのエクスポート時に保持されますか?** + +保持されません。PDF やラスタ画像は静的なので、スライドの単一状態しか表示されません。動きを保持したい場合は [video](/slides/ja/nodejs-java/convert-powerpoint-to-video/) または [HTML](/slides/ja/nodejs-java/export-to-html5/) でエクスポートしてください。 + +**テキストアニメーションはレイアウトやスライドマスターでも機能しますか?** + +レイアウト/マスターオブジェクトに適用された効果はスライドに継承されますが、タイミングやスライドレベルのアニメーションとの相互作用は最終的なスライド上のシーケンスに依存します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..f5f4647250 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,112 @@ +--- +title: プレゼンテーションからテキストを抽出 +type: docs +weight: 90 +url: /ja/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +開発者がプレゼンテーションからテキストを抽出する必要があることは珍しくありません。そのためには、プレゼンテーション内のすべてのスライドのすべてのシェイプからテキストを抽出する必要があります。本記事では、Aspose.Slides を使用して Microsoft PowerPoint PPTX プレゼンテーションからテキストを抽出する方法を説明します。 + +{{% /alert %}} + +## **スライドからテキストを抽出する** + +Aspose.Slides for Node.js via Java は、[SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil) クラスを提供します。このクラスは、プレゼンテーションまたはスライドから全テキストを抽出するための、オーバーロードされた静的メソッドを多数公開しています。PPTX プレゼンテーションのスライドからテキストを抽出するには、[SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil) クラスが公開している [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) オーバーロード静的メソッドを使用します。このメソッドは Slide オブジェクトをパラメータとして受け取ります。実行時に、Slide メソッドはパラメータとして渡されたスライドの全テキストを走査し、[TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) オブジェクトの配列を返します。これにより、テキストに関連付けられたすべての書式情報が利用可能になります。以下のコードは、プレゼンテーションの最初のスライド上のすべてのテキストを抽出します: +```javascript +// PPTX ファイルを表す Presentation クラスをインスタンス化 +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // PPTX のすべてのスライドから ITextFrame オブジェクトの配列を取得 + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // TextFrame の配列をループ処理 + for (var i = 0; i < textFramesPPTX.length; i++) { + // 現在の ITextFrame の段落をループ処理 + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // 現在の IParagraph のポーションをループ処理 + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // 現在のポーションのテキストを表示 + console.log(port.getText()); + // テキストのフォント高さを表示 + console.log(port.getPortionFormat().getFontHeight()); + // テキストのフォント名を表示 + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); +} finally { + pres.dispose(); +} +``` + + +## **プレゼンテーションからテキストを抽出する** + +プレゼンテーション全体のテキストを走査するには、SlideUtil クラスが公開している [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) 静的メソッドを使用します。このメソッドは 2 つのパラメータを受け取ります: + +1. 最初に、テキストを抽出するプレゼンテーションを表す [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) オブジェクトです。 +2. 次に、マスタースライドをテキスト走査に含めるかどうかを決定するブール値です。 + +このメソッドは、テキスト書式情報を含む [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) オブジェクトの配列を返します。以下のコードは、マスタースライドを含むプレゼンテーションからテキストと書式情報を走査します。 +```javascript +// PPTX ファイルを表す Presentation クラスをインスタンス化 +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // PPTX のすべてのスライドから ITextFrame オブジェクトの配列を取得 + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // TextFrame 配列をループ処理 + for (var i = 0; i < textFramesPPTX.length; i++) { + // 現在の ITextFrame の段落をループ処理 + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // 現在の IParagraph のポーションをループ処理 + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // 現在のポーションのテキストを表示 + console.log(port.getText()); + // テキストのフォント高さを表示 + console.log(port.getPortionFormat().getFontHeight()); + // テキストのフォント名を表示 + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **カテゴリ別かつ高速なテキスト抽出** + +新しい静的メソッド getPresentationText が Presentation クラスに追加されました。このメソッドには 3 つのオーバーロードがあります。 +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + + +## **FAQ** + +**テキスト抽出時に Aspose.Slides は大規模プレゼンテーションをどれくらい高速に処理しますか?** + +Aspose.Slides は高性能に最適化されており、大規模なプレゼンテーションでも効率的に処理でき、リアルタイムまたはバルク処理シナリオに適しています。 + +**Aspose.Slides はプレゼンテーション内の表やチャートからテキストを抽出できますか?** + +はい、Aspose.Slides は表、チャート、その他の複雑なスライド要素からのテキスト抽出を完全にサポートしており、すべてのテキストコンテンツに簡単にアクセスし、分析できます。 + +**プレゼンテーションからテキストを抽出するために特別な Aspose.Slides ライセンスが必要ですか?** + +テキスト抽出は Aspose.Slides の無料トライアル版でも可能ですが、抽出できるスライド数に制限があります。制限なく大きなプレゼンテーションを処理し、無制限に使用するには、フルライセンスの購入が推奨されます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..2bae2cb977 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,158 @@ +--- +title: オートフィット設定を管理 +type: docs +weight: 30 +url: /ja/nodejs-java/manage-autofit-settings/ +keywords: "テキストボックス、オートフィット、PowerPointプレゼンテーション、Java、Aspose.Slides for Node.js via Java" +description: "JavaScriptでPowerPointのテキストボックスのオートフィット設定を設定する" +--- + +デフォルトでは、テキストボックスを追加すると、Microsoft PowerPoint はテキストボックスに対して **Resize shape to fix text** 設定を使用します。テキストが常に収まるように、テキストボックスのサイズを自動的に変更します。 + +![textbox-in-powerpoint](textbox-in-powerpoint.png) + +* テキストボックス内のテキストが長くまたは大きくなると、PowerPoint は自動的にテキストボックスを拡大(高さを増やす)して、より多くのテキストを収められるようにします。 +* テキストボックス内のテキストが短くまたは小さくなると、PowerPoint は自動的にテキストボックスを縮小(高さを減らす)して、余分なスペースを取り除きます。 + +PowerPoint では、テキストボックスの自動調整動作を制御する 4 つの重要なパラメータまたはオプションがあります: + +* **自動調整しない** +* **溢れ時にテキストを縮小** +* **テキストに合わせてシェイプのサイズを変更** +* **シェイプ内でテキストを折り返す**. + +![autofit-options-powerpoint](autofit-options-powerpoint.png) + +Aspose.Slides for Node.js via Java は、プレゼンテーション内のテキストボックスの自動調整動作を制御できる、[TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) クラスのいくつかのプロパティなど、同様のオプションを提供します。 + +## **テキストに合わせてシェイプのサイズを変更** + +テキストが変更された後も常にボックスに収まるようにするには、**Resize shape to fix text** オプションを使用する必要があります。この設定を指定するには、`Shape` 値で [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) メソッドを [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) クラスから呼び出します。 + +![alwaysfit-setting-powerpoint](alwaysfit-setting-powerpoint.png) + +以下の JavaScript コードは、PowerPoint プレゼンテーションでテキストが常にボックスに収まるように指定する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +テキストが長くまたは大きくなると、テキストボックスは自動的にサイズ変更され(高さが増加し)、すべてのテキストが収まるようになります。テキストが短くなると、その逆が行われます。 + +## **自動調整しない** + +テキストの内容が変わってもテキストボックスやシェイプのサイズを保持したい場合は、**Do not Autofit** オプションを使用する必要があります。この設定を指定するには、`None` 値で [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) メソッドを [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) クラスから呼び出します。 + +![donotautofit-setting-powerpoint](donotautofit-setting-powerpoint.png) + +以下の JavaScript コードは、PowerPoint プレゼンテーションでテキストボックスが常に元のサイズを保持するように指定する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +テキストがボックスに対して長すぎると、テキストがはみ出します。 + +## **溢れ時にテキストを縮小** + +テキストがボックスに対して長すぎる場合、**Shrink text on overflow** オプションを使用して、テキストのサイズと間隔を縮小し、ボックスに収めるよう指定できます。この設定を指定するには、`Normal` 値で [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) メソッドを [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) クラスから呼び出します。 + +![shrinktextonoverflow-setting-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +以下の JavaScript コードは、PowerPoint プレゼンテーションでテキストが溢れたときに縮小されるよう指定する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +**Shrink text on overflow** オプションが使用されると、テキストがボックスに対して長すぎる場合にのみ設定が適用されます。 +{{% /alert %}} + +## **テキストを折り返す** + +テキストがシェイプの境界(幅)のみを超える場合に、シェイプ内部でテキストを折り返したい場合は、**Wrap text in shape** パラメータを使用する必要があります。この設定を指定するには、`true` 値で [setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setWrapText) メソッドを [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) クラスから呼び出します。 + +以下の JavaScript コードは、PowerPoint プレゼンテーションで Wrap Text 設定を使用する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +`setWrapText` メソッドを `False` 値でシェイプに対して呼び出すと、シェイプ内のテキストがシェイプの幅を超えると、テキストは単一行でシェイプの境界を超えて伸びます。 +{{% /alert %}} + +## **FAQ** + +**テキストフレームの内部余白は AutoFit に影響しますか?** + +はい。パディング(内部余白)はテキストの使用可能領域を減らすため、AutoFit が早期に作動し、フォントが縮小されたりシェイプが再サイズされたりします。AutoFit を調整する前に余白を確認し、必要に応じて調整してください。 + +**AutoFit は手動およびソフト改行とどのように相互作用しますか?** + +強制改行はそのまま残り、AutoFit はそれらの周囲でフォントサイズと間隔を調整します。不要な改行を削除すると、AutoFit がテキストを縮小する度合いが緩和されることが多いです。 + +**テーマフォントを変更したりフォント置換をトリガーしたりすると、AutoFit の結果に影響しますか?** + +はい。異なる字形メトリックを持つフォントに置換すると、テキストの幅や高さが変わり、最終的なフォントサイズや改行に影響します。フォントを変更または置換した後は、スライドを再確認してください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..11b8a8e832 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,319 @@ +--- +title: 箇条書きの管理 +type: docs +weight: 60 +url: /ja/nodejs-java/manage-bullet/ +keywords: "箇条書き, 箇条書きリスト, 数字, 番号付きリスト, 画像箇条書き, 階層化箇条書き, PowerPoint プレゼンテーション, Java, Aspose.Slides for Node.js via Java" +description: "PowerPoint プレゼンテーションで JavaScript を使用して箇条書きと番号付きリストを作成する" +--- + +**Microsoft PowerPoint** では、Word や他のテキストエディタと同様の方法で箇条書きと番号付きリストを作成できます。**Aspose.Slides for Node.js via Java** でも、プレゼンテーションのスライドで箇条書きや番号付きを使用できます。 + +## **箇条書きを使用する理由** + +箇条書きは、情報をすばやく効率的に整理・提示するのに役立ちます。 + +**箇条書き例** + +ほとんどの場合、箇条書きは次の 3 つの主な機能を果たします。 + +- 読者や視聴者の注意を重要な情報に向ける +- 読者や視聴者が要点を簡単にスキャンできるようにする +- 重要な詳細を効率的に伝達・提示する + +## **番号付きリストを使用する理由** + +番号付きリストも情報の整理と提示に役立ちます。エントリの順序(例: *step 1, step 2* など)が重要な場合や、エントリを参照する必要がある場合(例: *see step 3*)は、箇条書きの代わりに番号を使用すべきです。 + +**番号付きリスト例** + +以下の **Creating Bullets** 手順のステップ(step 1 から step 15)をまとめたものです。 + +1. Presentation クラスのインスタンスを作成します。 +2. 複数のタスクを実行します(step 3 から step 14)。 +3. プレゼンテーションを保存します。 + +## **箇条書きの作成** + +このトピックは、テキスト段落の管理に関するトピックシリーズの一部です。このページでは段落の箇条書きを管理する方法を示します。箇条書きは手順を説明する際に便利です。また、箇条書きを使用するとテキストが整然と見え、読みやすくなります。開発者が Aspose.Slides for Node.js via Java のこの小さくても強力な機能を利用する方法を見てみましょう。以下の手順に従って、Aspose.Slides for Node.js via Java を使用して段落の箇条書きを管理してください。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを作成します。 +2. [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) オブジェクトを使用してスライド コレクションから目的のスライドにアクセスします。 +3. 選択したスライドに [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) を追加します。 +4. 追加したシェイプの [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) にアクセスします。 +5. TextFrame 内のデフォルト段落を削除します。 +6. [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph) クラスを使用して最初の段落インスタンスを作成します。 +7. 段落の箇条書きタイプを設定します。 +8. 箇条書きタイプを [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) に設定し、箇条書き文字を指定します。 +9. 段落テキストを設定します。 +10. 箇条書きを設定するために段落インデントを設定します。 +11. 箇条書きの色を設定します。 +12. 箇条書きの高さを設定します。 +13. 作成した段落を TextFrame の段落コレクションに追加します。 +14. 2 番目の段落を追加し、手順 **7 から 13** を繰り返します。 +15. プレゼンテーションを保存します。 + +この Java のサンプルコード(上記手順の実装)は、スライドで箇条書きリストを作成する方法を示しています: +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // オートシェイプを追加してアクセスする + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 作成したオートシェイプのテキストフレームにアクセスする + var txtFrm = aShp.getTextFrame(); + // 既定の既存段落を削除する + txtFrm.getParagraphs().removeAt(0); + // 段落を作成する + var para = new aspose.slides.Paragraph(); + // 段落の箇条書きスタイルとシンボルを設定する + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // 段落テキストを設定する + para.setText("Welcome to Aspose.Slides"); + // 箇条書きインデントを設定する + para.getParagraphFormat().setIndent(25); + // 箇条書きの色を設定する + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 独自の箇条書き色を使用するために IsBulletHardColor を true に設定する + para.getParagraphFormat().getBullet().isBulletHardColor(); + // 箇条書きの高さを設定する + para.getParagraphFormat().getBullet().setHeight(100); + // テキストフレームに段落を追加する + txtFrm.getParagraphs().add(para); + // プレゼンテーションを PPTX ファイルとして保存する + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +## **画像箇条書きの作成** + +Aspose.Slides for Node.js via Java を使用すると、箇条書きリストの箇条書きを変更できます。カスタムシンボルや画像に置き換えることが可能です。リストに視覚的なアクセントを加えたり、エントリへの注目度をさらに高めたりしたい場合は、独自の画像を箇条書きとして使用できます。 + +{{% alert color="primary" %}} +通常の箇条書きシンボルを画像に置き換える場合は、透明な背景を持つシンプルなグラフィック画像を選択するとよいでしょう。そのような画像はカスタム箇条書きシンボルとして最適です。 + +いずれにせよ、選択した画像は非常に小さなサイズに縮小されるため、リスト内で箇条書きシンボルの代わりとして見栄えが良い画像を選ぶことを強くおすすめします。 +{{% /alert %}} + +画像箇条書きを作成する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを作成します。 +2. [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) オブジェクトで目的のスライドにアクセスします。 +3. 選択したスライドに autoshape を追加します。 +4. 追加したシェイプの [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) にアクセスします。 +5. [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 内のデフォルト段落を削除します。 +6. Paragraph クラスを使用して最初の段落インスタンスを作成します。 +7. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage) でディスクから画像を読み込みます。 +8. 箇条書きタイプを Picture に設定し、画像を指定します。 +9. 段落テキストを設定します。 +10. 箇条書きを設定するために段落インデントを設定します。 +11. 箇条書きの色を設定します。 +12. 箇条書きの高さを設定します。 +13. 作成した段落を [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) の段落コレクションに追加します。 +14. 2 番目の段落を追加し、前の手順を繰り返します。 +15. プレゼンテーションを保存します。 + +この JavaScript コードは、スライドで画像箇条書きを作成する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセス + var slide = pres.getSlides().get_Item(0); + // 箇条書き用画像をインスタンス化 + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // オートシェイプを追加してアクセス + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 作成したオートシェイプのテキストフレームにアクセス + var txtFrm = aShp.getTextFrame(); + // 既定の既存段落を削除 + txtFrm.getParagraphs().removeAt(0); + // 新しい段落を作成 + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // 段落の箇条書きスタイルと画像を設定 + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // 箇条書きの高さを設定 + para.getParagraphFormat().getBullet().setHeight(100); + // テキストフレームに段落を追加 + txtFrm.getParagraphs().add(para); + // プレゼンテーションを PPTX ファイルとして書き出し + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **階層化箇条書きの作成** + +メインの箇条書きリストの下にサブリストを持つ、階層化された箇条書きリストを作成する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを作成します。 +2. [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) オブジェクトで目的のスライドにアクセスします。 +3. 選択したスライドに autoshape を追加します。 +4. 追加したシェイプの [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) にアクセスします。 +5. [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 内のデフォルト段落を削除します。 +6. Paragraph クラスを使用し、depth を 0 に設定して最初の段落インスタンスを作成します。 +7. Paragraph クラスを使用し、depth を 1 に設定して 2 番目の段落インスタンスを作成します。 +8. Paragraph クラスを使用し、depth を 2 に設定して 3 番目の段落インスタンスを作成します。 +9. Paragraph クラスを使用し、depth を 3 に設定して 4 番目の段落インスタンスを作成します。 +10. 作成した段落を [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) の段落コレクションに追加します。 +11. プレゼンテーションを保存します。 + +上記手順の実装例であるこのコードは、JavaScript で階層化箇条書きリストを作成する方法を示しています: +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセス + var slide = pres.getSlides().get_Item(0); + // オートシェイプを追加してアクセス + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 作成したオートシェイプのテキストフレームにアクセス + var txtFrm = aShp.addTextFrame(""); + // 既定の既存段落を削除 + txtFrm.getParagraphs().clear(); + // 最初の段落を作成 + var para1 = new aspose.slides.Paragraph(); + // 段落の箇条書きスタイルと記号を設定 + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定 + para1.getParagraphFormat().setDepth(0); + // 2 番目の段落を作成 + var para2 = new aspose.slides.Paragraph(); + // 段落の箇条書きスタイルと記号を設定 + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定 + para2.getParagraphFormat().setDepth(1); + // 3 番目の段落を作成 + var para3 = new aspose.slides.Paragraph(); + // 段落の箇条書きスタイルと記号を設定 + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定 + para3.getParagraphFormat().setDepth(2); + // 4 番目の段落を作成 + var para4 = new aspose.slides.Paragraph(); + // 段落の箇条書きスタイルと記号を設定 + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定 + para4.getParagraphFormat().setDepth(3); + // 段落をテキストフレームに追加 + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // プレゼンテーションを PPTX ファイルとして保存 + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタム番号リストの作成** + +Aspose.Slides for Node.js via Java は、カスタム番号書式で段落を管理するシンプルな API を提供します。段落にカスタム番号リストを追加するには、以下の手順に従ってください。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを作成します。 +2. [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) オブジェクトで目的のスライドにアクセスします。 +3. 選択したスライドに autoshape を追加します。 +4. 追加したシェイプの [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) にアクセスします。 +5. [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 内のデフォルト段落を削除します。 +6. Paragraph クラスを使用し、**NumberedBulletStartWith** を 2 に設定して最初の段落を作成します。 +7. Paragraph クラスを使用し、**NumberedBulletStartWith** を 3 に設定して 2 番目の段落を作成します。 +8. Paragraph クラスを使用し、**NumberedBulletStartWith** を 7 に設定して 3 番目の段落を作成します。 +9. 作成した段落を [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) の段落コレクションに追加します。 +10. プレゼンテーションを保存します。 + +この JavaScript コードは、スライドで番号付きリストを作成する方法を示しています: +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセス + var slide = pres.getSlides().get_Item(0); + // オートシェイプを追加してアクセス + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 作成したオートシェイプのテキストフレームにアクセス + var txtFrm = aShp.addTextFrame(""); + // 既定の既存段落を削除 + txtFrm.getParagraphs().clear(); + // 最初のリスト + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // 2 番目のリスト + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Aspose.Slides で作成した箇条書きや番号付きリストは、PDF や画像など他の形式にエクスポートできますか?** + +はい。Aspose.Slides は、PDF、画像などの形式にエクスポートする際に、箇条書きや番号付きリストの書式と構造を完全に保持し、一貫した結果を提供します。 + +**既存のプレゼンテーションから箇条書きや番号付きリストをインポートすることはできますか?** + +はい。Aspose.Slides は、既存のプレゼンテーションから箇条書きや番号付きリストをインポートして編集でき、元の書式や外観を保持します。 + +**複数言語で作成されたプレゼンテーションでも、箇条書きや番号付きリストはサポートされますか?** + +はい。Aspose.Slides は多言語プレゼンテーションを完全にサポートし、任意の言語で箇条書きや番号付きリストを作成でき、特殊文字や非ラテン文字も使用可能です。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..b8fd7d7991 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,709 @@ +--- +title: JavaScript で PowerPoint の段落を管理する +type: docs +weight: 40 +url: /ja/nodejs-java/manage-paragraph/ +keywords: +- テキストを追加 +- 段落を追加 +- テキストを管理 +- 段落を管理 +- 段落インデント +- 段落箇条書き +- 番号付きリスト +- 段落プロパティ +- HTML をインポート +- テキストを HTML に変換 +- 段落を HTML に変換 +- 段落を画像に変換 +- 段落をエクスポート +- PowerPoint プレゼンテーション +- JavaScript +- Java 経由の Node.js 用 Aspose.Slides +description: "JavaScript で PowerPoint プレゼンテーションの段落を作成し、段落プロパティを管理します" +--- + +Aspose.Slides は、Java で PowerPoint のテキスト、段落、および部分を操作するために必要なすべてのクラスを提供します。 + +* Aspose.Slides は、段落を表すオブジェクトを追加できるようにする [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) クラスを提供します。`ITextFame` オブジェクトは、1 つまたは複数の段落を持つことができます(各段落は改行で作成されます)。 +* Aspose.Slides は、部分を表すオブジェクトを追加できるようにする [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) クラスを提供します。`IParagraph` オブジェクトは、1 つまたは複数の部分(iPortions オブジェクトのコレクション)を持つことができます。 +* Aspose.Slides は、テキストとその書式設定プロパティを表すオブジェクトを追加できるようにする [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) クラスを提供します。 + +`IParagraph` オブジェクトは、基礎となる `IPortion` オブジェクトを通じて、異なる書式設定プロパティを持つテキストを処理できます。 + +## **複数の部分を含む複数の段落を追加** + +この手順では、3 つの段落を含み、各段落が 3 つの部分を含むテキストフレームを追加する方法を示します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. 対象のスライドをインデックスで取得します。 +3. スライドに矩形の [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) に関連付けられた ITextFrame を取得します。 +5. 2 つの [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) オブジェクトを作成し、[TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) の `IParagraphs` コレクションに追加します。 +6. 各新しい `IParagraph` に対して 3 つの [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) オブジェクトを作成します(デフォルトの段落には 2 つの Portion オブジェクト)。各 `IPortion` オブジェクトを各 `IParagraph` の IPortion コレクションに追加します。 +7. 各部分にテキストを設定します。 +8. `IPortion` オブジェクトが提供する書式設定プロパティを使用して、各部分に好みの書式機能を適用します。 +9. 変更したプレゼンテーションを保存します。 + +この Javascript コードは、部分を含む段落を追加する手順の実装例です。 +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // 矩形タイプの AutoShape を追加する + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // AutoShape の TextFrame にアクセスする + var tf = ashp.getTextFrame(); + // 異なるテキスト形式を持つ段落と部分を作成する + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // PPTX をディスクに保存する + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落の箇条書きの管理** + +箇条書きリストは、情報を迅速かつ効率的に整理・提示するのに役立ちます。箇条書きされた段落は、常に読みやすく理解しやすいです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. 対象のスライドをインデックスで取得します。 +3. 選択したスライドに [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. AutoShape の [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) にアクセスします。 +5. `TextFrame` のデフォルト段落を削除します。 +6. [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) クラスを使用して最初の段落インスタンスを作成します。 +7. 段落の箇条書き `Type` を `Symbol` に設定し、箇条書き文字を設定します。 +8. 段落の `Text` を設定します。 +9. 箇条書きの段落 `Indent` を設定します。 +10. 箇条書きの色を設定します。 +11. 箇条書きの高さを設定します。 +12. 新しい段落を `TextFrame` の段落コレクションに追加します。 +13. 2 番目の段落を追加し、手順 7〜12 と同様に実行します。 +14. プレゼンテーションを保存します。 + +この Javascript コードは、段落の箇条書きを追加する方法を示します。 +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスします + var slide = pres.getSlides().get_Item(0); + // AutoShape を追加し、アクセスします + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // AutoShape のテキスト フレームにアクセスします + var txtFrm = aShp.getTextFrame(); + // デフォルトの段落を削除します + txtFrm.getParagraphs().removeAt(0); + // 段落を作成します + var para = new aspose.slides.Paragraph(); + // 段落の箇条書きスタイルと記号を設定します + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // 段落のテキストを設定します + para.setText("Welcome to Aspose.Slides"); + // 箇条書きのインデントを設定します + para.getParagraphFormat().setIndent(25); + // 箇条書きの色を設定します + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// 独自の箇条書き色を使用するために IsBulletHardColor を true に設定します + // 箇条書きの高さを設定します + para.getParagraphFormat().getBullet().setHeight(100); + // テキストフレームに段落を追加します + txtFrm.getParagraphs().add(para); + // 2 番目の段落を作成します + var para2 = new aspose.slides.Paragraph(); + // 段落の箇条書きタイプとスタイルを設定します + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // 段落のテキストを追加します + para2.setText("This is numbered bullet"); + // 箇条書きのインデントを設定します + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// 独自の箇条書き色を使用するために IsBulletHardColor を true に設定します + // 箇条書きの高さを設定します + para2.getParagraphFormat().getBullet().setHeight(100); + // テキストフレームに段落を追加します + txtFrm.getParagraphs().add(para2); + // 変更されたプレゼンテーションを保存します + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **画像箇条書きの管理** + +箇条書きリストは、情報を迅速かつ効率的に整理・提示するのに役立ちます。画像箇条書きは読みやすく理解しやすいです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. 対象のスライドをインデックスで取得します。 +3. スライドに [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. AutoShape の [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) にアクセスします。 +5. `TextFrame` のデフォルト段落を削除します。 +6. [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) クラスを使用して最初の段落インスタンスを作成します。 +7. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) で画像をロードします。 +8. 箇条書きのタイプを [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) に設定し、画像を指定します。 +9. 段落の `Text` を設定します。 +10. 箇条書きの段落 `Indent` を設定します。 +11. 箇条書きの色を設定します。 +12. 箇条書きの高さを設定します。 +13. 新しい段落を `TextFrame` の段落コレクションに追加します。 +14. 2 番目の段落を追加し、前述の手順と同様に実行します。 +15. 変更したプレゼンテーションを保存します。 + +この Javascript コードは、画像箇条書きを追加および管理する方法を示します。 +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成します +var presentation = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスします + var slide = presentation.getSlides().get_Item(0); + // 箇条書き用の画像をインスタンス化します + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // AutoShape を追加し、アクセスします + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // AutoShape のテキストフレームにアクセスします + var textFrame = autoShape.getTextFrame(); + // デフォルトの段落を削除します + textFrame.getParagraphs().removeAt(0); + // 新しい段落を作成します + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // 段落の箇条書きスタイルと画像を設定します + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // 箇条書きの高さを設定します + paragraph.getParagraphFormat().getBullet().setHeight(100); + // 段落をテキストフレームに追加します + textFrame.getParagraphs().add(paragraph); + // プレゼンテーションを PPTX ファイルとして保存します + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // プレゼンテーションを PPT ファイルとして保存します + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **多層箇条書きの管理** + +箇条書きリストは、情報を迅速かつ効率的に整理・提示するのに役立ちます。多層箇条書きは読みやすく理解しやすいです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. 対象のスライドをインデックスで取得します。 +3. 新しいスライドに [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. AutoShape の [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) にアクセスします。 +5. `TextFrame` のデフォルト段落を削除します。 +6. [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) クラスを使用して最初の段落インスタンスを作成し、深さを 0 に設定します。 +7. `Paragraph` クラスを使用して2番目の段落インスタンスを作成し、深さを 1 に設定します。 +8. `Paragraph` クラスを使用して3番目の段落インスタンスを作成し、深さを 2 に設定します。 +9. `Paragraph` クラスを使用して4番目の段落インスタンスを作成し、深さを 3 に設定します。 +10. 新しい段落を `TextFrame` の段落コレクションに追加します。 +11. 変更したプレゼンテーションを保存します。 + +この Javascript コードは、多層箇条書きを追加および管理する方法を示します。 +```javascript +// PPTX ファイルを表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスします + var slide = pres.getSlides().get_Item(0); + // AutoShape を追加し、アクセスします + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 作成した AutoShape のテキストフレームにアクセスします + var text = aShp.addTextFrame(""); + // デフォルトの段落をクリアします + text.getParagraphs().clear(); + // 最初の段落を追加します + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定します + para1.getParagraphFormat().setDepth(0); + // 2 番目の段落を追加します + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定します + para2.getParagraphFormat().setDepth(1); + // 3 番目の段落を追加します + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定します + para3.getParagraphFormat().setDepth(2); + // 4 番目の段落を追加します + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 箇条書きレベルを設定します + para4.getParagraphFormat().setDepth(3); + // 段落をコレクションに追加します + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // プレゼンテーションを PPTX ファイルとして保存します + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタム番号付きリスト付き段落の管理** + +[BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) クラスは、[NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) プロパティなどを提供し、カスタム番号付けや書式設定を持つ段落を管理できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. 該当段落が含まれるスライドにアクセスします。 +3. スライドに [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. AutoShape の [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) にアクセスします。 +5. `TextFrame` のデフォルト段落を削除します。 +6. [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) クラスを使用して最初の段落インスタンスを作成し、[NumberedBulletStartWith] を 2 に設定します。 +7. `Paragraph` クラスを使用して2番目の段落インスタンスを作成し、`NumberedBulletStartWith` を 3 に設定します。 +8. `Paragraph` クラスを使用して3番目の段落インスタンスを作成し、`NumberedBulletStartWith` を 7 に設定します。 +9. 新しい段落を `TextFrame` の段落コレクションに追加します。 +10. 変更したプレゼンテーションを保存します。 + +この Javascript コードは、カスタム番号付けや書式設定を持つ段落を追加および管理する方法を示します。 +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 作成した AutoShape のテキストフレームにアクセスします + var textFrame = shape.getTextFrame(); + // 既存のデフォルト段落を削除します + textFrame.getParagraphs().removeAt(0); + // 最初のリスト + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **段落インデントの設定** + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. インデックスで対象スライドの参照にアクセスします。 +3. スライドに矩形の [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. 矩形の AutoShape に、3 段落を持つ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) を追加します。 +5. 矩形の枠線を非表示にします。 +6. 各 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) の BulletOffset プロパティを使用してインデントを設定します。 +7. 変更したプレゼンテーションを PPT ファイルとして保存します。 + +この Javascript コードは、段落インデントを設定する方法を示します。 +```javascript +// Presentation クラスをインスタンス化する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得する + var sld = pres.getSlides().get_Item(0); + // 矩形シェイプを追加する + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // 矩形に TextFrame を追加する + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // テキストをシェイプに合わせてサイズ調整する + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // 矩形の線を非表示にする + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // TextFrame の最初の段落を取得し、インデントを設定する + var para1 = tf.getParagraphs().get_Item(0); + // 段落の箇条書きスタイルと記号を設定する + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // TextFrame の2番目の段落を取得し、インデントを設定する + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // TextFrame の3番目の段落を取得し、インデントを設定する + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // プレゼンテーションを書き出す + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落のハンギングインデントの設定** + +この Javascript コードは、段落のハンギングインデントを設定する方法を示します。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落の終了ランプロパティの管理** + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. 位置で段落を含むスライドの参照を取得します。 +3. スライドに矩形の [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. 矩形に、2 段落を持つ [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) を追加します。 +5. 段落の `FontHeight` とフォント種類を設定します。 +6. 段落の End プロパティを設定します。 +7. 変更したプレゼンテーションを PPTX ファイルとして保存します。 + +この Javascript コードは、PowerPoint の段落に対して End プロパティを設定する方法を示します。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **HTML テキストを段落にインポート** + +Aspose.Slides は、HTML テキストを段落にインポートするための高度なサポートを提供します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +2. インデックスで対象スライドの参照にアクセスします。 +3. スライドに [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) を追加します。 +4. `autoshape` の [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) を追加し、アクセスします。 +5. `ITextFrame` のデフォルト段落を削除します。 +6. TextReader でソース HTML ファイルを読み取ります。 +7. [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) クラスを使用して最初の段落インスタンスを作成します。 +8. 読み取った TextReader の HTML ファイル内容を TextFrame の [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/) に追加します。 +9. 変更したプレゼンテーションを保存します。 + +この Javascript コードは、段落に HTML テキストをインポートする手順の実装例です。 +```javascript +// 空のプレゼンテーション インスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションのデフォルトの最初のスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // HTML コンテンツを収めるために AutoShape を追加する + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // シェイプにテキストフレームを追加する + ashape.addTextFrame(""); + // 追加したテキストフレームのすべての段落をクリアする + ashape.getTextFrame().getParagraphs().clear(); + // ストリームリーダーを使用して HTML ファイルを読み込む + var tr = java.newInstanceSync("StreamReader", "file.html"); + // テキストフレームに HTML ストリームリーダーからテキストを追加する + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // プレゼンテーションを保存する + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落テキストを HTML にエクスポート** + +Aspose.Slides は、段落に含まれるテキストを HTML にエクスポートするための高度なサポートを提供します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成し、目的のプレゼンテーションをロードします。 +2. インデックスで対象スライドの参照にアクセスします。 +3. HTML にエクスポートするテキストを含むシェイプにアクセスします。 +4. シェイプの [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) にアクセスします。 +5. `StreamWriter` のインスタンスを作成し、新しい HTML ファイルを追加します。 +6. StreamWriter に開始インデックスを指定し、希望する段落をエクスポートします。 + +この Javascript コードは、PowerPoint の段落テキストを HTML にエクスポートする方法を示します。 +```javascript +// プレゼンテーション ファイルをロードする +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // プレゼンテーションのデフォルトの最初のスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // 目的のインデックス + var index = 0; + // 追加されたシェイプにアクセスする + var ashape = slide.getShapes().get_Item(index); + // 出力 HTML ファイルを作成する + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // 最初の段落を HTML として抽出する + // 段落の開始インデックスとコピーする総段落数を指定して、段落データを書き込んで HTML に出力する + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落を画像として保存** + +このセクションでは、[Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) インターフェイスで表されるテキスト段落を画像として保存する方法を示す 2 つの例を探ります。両方の例では、[Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) インターフェイスの `getImage` メソッドを使用して段落を含むシェイプの画像を取得し、シェイプ内の段落の境界を計算してビットマップ画像としてエクスポートします。これらのアプローチにより、PowerPoint プレゼンテーションからテキストの特定部分を抽出し、別個の画像として保存でき、さまざまなシナリオでの活用が可能です。 + +sample.pptx という名前のプレゼンテーション ファイルが 1 枚のスライドを持ち、最初のシェイプが 3 段落を含むテキスト ボックスであると想定します。 + +![The text box with three paragraphs](paragraph_to_image_input.png) + +**Example 1** + +この例では、2 番目の段落を画像として取得します。プレゼンテーションの最初のスライドからシェイプの画像を抽出し、シェイプのテキストフレーム内で 2 番目の段落の境界を計算します。次に、その段落を新しいビットマップ画像に再描画し、PNG 形式で保存します。この方法は、テキストの正確なサイズと書式を保持しながら、特定の段落を個別の画像として保存したい場合に特に有用です。 +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // シェイプをメモリ上にビットマップとして保存します。 + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // メモリからシェイプのビットマップを作成します。 + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // 2 番目の段落の境界を計算します。 + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // 出力画像の座標とサイズを計算します(最小サイズは 1x1 ピクセル)。 + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // シェイプのビットマップをクロップして段落のビットマップだけを取得します。 + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +結果: +![The paragraph image](paragraph_to_image_output.png) + +**Example 2** + +この例では、前述のアプローチにスケーリング係数を追加します。シェイプを抽出し、スケーリング係数 `2` で画像として保存します。これにより、段落のエクスポート時により高解像度の出力が得られます。その後、スケールを考慮して段落の境界を計算します。スケーリングは、例えば高品質な印刷物での使用など、より詳細な画像が必要な場合に特に有用です。 +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // スケーリング付きでシェイプをメモリ上にビットマップとして保存します。 + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // メモリからシェイプのビットマップを作成します。 + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // 2 番目の段落の境界を計算します。 + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // 出力画像の座標とサイズを計算します(最小サイズは 1x1 ピクセル)。 + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // シェイプのビットマップを切り取って段落のビットマップだけを取得します。 + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **よくある質問** + +**テキストフレーム内で改行を完全に無効にできますか?** + +はい。テキストフレームの折り返し設定([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/))を使用して折り返しをオフにすれば、フレームの端で行が折り返されなくなります。 + +**特定の段落のスライド上での正確な境界を取得するにはどうすればよいですか?** + +段落(さらには単一の部分) のバウンディング矩形を取得すれば、スライド上での正確な位置とサイズを知ることができます。 + +**段落の配置(左揃え/右揃え/中央揃え/両端揃え)はどこで設定しますか?** + +[setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/) は、[ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/) における段落レベルの設定メソッドで、個々の部分の書式設定に関係なく、段落全体に適用されます。 + +**段落の一部(例: 単語)だけにスペルチェック言語を設定できますか?** + +はい。言語は部分レベルで設定されるため([PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId))、1 つの段落内に複数の言語を共存させることができます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..6ffc3e4e8d --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,116 @@ +--- +title: プレースホルダーの管理 +type: docs +weight: 10 +url: /ja/nodejs-java/manage-placeholder/ +description: JavaScript を使用して PowerPoint スライドのプレースホルダー内のテキストを変更する。JavaScript を使用して PowerPoint スライドのプレースホルダーにプロンプトテキストを設定する。 +--- + +## **プレースホルダー内のテキストを変更する** + +Using [Node.js via Java 用 Aspose.Slides](/slides/ja/nodejs-java/), you can find and modify placeholders on slides in presentations. Aspose.Slides allows you to make changes to the text in a placeholder. + +**Prerequisite**: プレースホルダーを含むプレゼンテーションが必要です。そのようなプレゼンテーションは標準の Microsoft PowerPoint アプリで作成できます。 + +以下は、Aspose.Slides を使用してそのプレゼンテーションのプレースホルダー内のテキストを置き換える方法です: + +1. [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成し、プレゼンテーションを引数として渡します。 +2. インデックスを使用してスライド参照を取得します。 +3. 形状を反復処理してプレースホルダーを見つけます。 +4. プレースホルダー形状を [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) に型キャストし、[`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) に関連付けられた [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) を使用してテキストを変更します。 +5. 変更されたプレゼンテーションを保存します。 + +この JavaScript コードは、プレースホルダー内のテキストを変更する方法を示しています: +```javascript +// Presentation クラスのインスタンス化 +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // 最初のスライドにアクセス + var sld = pres.getSlides().get_Item(0); + // プレースホルダーを見つけるためにシェイプを反復 + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // 各プレースホルダーのテキストを変更 + shp.getTextFrame().setText("This is Placeholder"); + } + } + // プレゼンテーションをディスクに保存 + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **プレースホルダーのプロンプトテキストを設定する** + +標準および事前構築されたレイアウトには、***Click to add a title*** や ***Click to add a subtitle*** のようなプレースホルダーのプロンプトテキストが含まれています。Aspose.Slides を使用すると、好きなプロンプトテキストをプレースホルダー レイアウトに挿入できます。 + +この JavaScript コードは、プレースホルダーのプロンプトテキストを設定する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // スライドを反復処理 + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // PowerPoint は "Click to add title" を表示します + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // サブタイトルを追加 + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **プレースホルダー画像の透過性を設定する** + +Aspose.Slides を使用すると、テキスト プレースホルダー内の背景画像の透過性を設定できます。そのフレーム内の画像の透過性を調整することで、テキストや画像を際立たせることができます(テキストと画像の色に応じて)。 + +この JavaScript コードは、シェイプ内の画像背景の透過性を設定する方法を示しています: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **よくある質問** + +**ベース プレースホルダーとは何で、スライド上のローカル シェイプとはどのように異なるのですか?** + +ベース プレースホルダーは、レイアウトまたはマスター上にある元のシェイプで、スライドのシェイプがそれから継承します。タイプ、位置、および一部の書式設定はそれから取得されます。ローカル シェイプは独立しており、ベース プレースホルダーが存在しない場合は継承が適用されません。 + +**プレゼンテーション全体のすべてのタイトルやキャプションを、各スライドを反復せずに更新するにはどうすればよいですか?** + +レイアウトまたはマスター上の該当するプレースホルダーを編集します。これらのレイアウト/マスターに基づくスライドは自動的に変更を継承します。 + +**標準のヘッダー/フッター プレースホルダー(日付と時刻、スライド番号、フッターテキスト)をどのように制御しますか?** + +適切なスコープ(通常スライド、レイアウト、マスター、ノート/配布資料)で HeaderFooter マネージャーを使用し、これらのプレースホルダーをオン/オフにしたり、内容を設定したりします。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..a06fcef81e --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,292 @@ +--- +title: テキストボックスの管理 +type: docs +weight: 20 +url: /ja/nodejs-java/manage-textbox/ +keywords: +- テキストボックス +- テキストフレーム +- テキストを追加 +- テキストを更新 +- ハイパーリンク付きテキストボックス +- PowerPoint +- プレゼンテーション +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "JavaScript を使用して PowerPoint プレゼンテーションのテキストボックスまたはテキストフレームを管理する" +--- + +スライド上のテキストは通常、テキスト ボックスまたはシェイプに存在します。そのため、スライドにテキストを追加するには、テキスト ボックスを追加し、テキスト ボックス内にテキストを配置する必要があります。Aspose.Slides for Node.js via Java は、テキストを含むシェイプを追加できる[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)クラスを提供します。 + +{{% alert title="Info" color="info" %}} +Aspose.Slides では、スライドにシェイプを追加できる[Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape)クラスも提供しています。ただし、`Shape`クラスを使用して追加されたすべてのシェイプがテキストを保持できるわけではありません。`AutoShape`クラスを使用して追加されたシェイプはテキストを含む場合があります。 +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} +したがって、テキストを追加したいシェイプを扱う場合は、`AutoShape`クラスを通じてキャストされたかどうかを確認したい場合があります。`AutoShape`のプロパティである[TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame)を使用できるようになるのはそのときだけです。このページの[Update Text](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text)セクションをご覧ください。 +{{% /alert %}} + +## **スライド上にテキスト ボックスを作成** + +スライド上にテキスト ボックスを作成するには、次の手順を実行します: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)クラスのインスタンスを作成します。 +2. 新しく作成されたプレゼンテーションの最初のスライドへの参照を取得します。 +3. [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)オブジェクトを追加し、[ShapeType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GeometryShape#setShapeType-int-)を`Rectangle`に設定してスライド上の指定位置に配置し、新しく追加された`AutoShape`オブジェクトへの参照を取得します。 +4. `AutoShape`オブジェクトにテキストを含む`TextFrame`プロパティを追加します。以下の例では、このテキストを追加しました:*Aspose TextBox* +5. 最後に、`Presentation`オブジェクトを使用して PPTX ファイルを書き出します。 + +上記の手順を実装したこの JavaScript コードは、スライドにテキストを追加する方法を示しています: +```javascript +// プレゼンテーションをインスタンス化 +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションの最初のスライドを取得 + var sld = pres.getSlides().get_Item(0); + // タイプがRectangleに設定されたAutoShapeを追加 + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // RectangleにTextFrameを追加 + ashp.addTextFrame(" "); + // テキストフレームにアクセス + var txtFrame = ashp.getTextFrame(); + // テキストフレーム用のParagraphオブジェクトを作成 + var para = txtFrame.getParagraphs().get_Item(0); + // パラグラフ用のPortionオブジェクトを作成 + var portion = para.getPortions().get_Item(0); + // テキストを設定 + portion.setText("Aspose TextBox"); + // プレゼンテーションをディスクに保存 + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキスト ボックス シェイプの確認** + +Aspose.Slides は、[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)クラスの[isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox)メソッドを提供し、シェイプを調べてテキスト ボックスを識別できるようにします。 + +![テキスト ボックスとシェイプ](istextbox.png) + +この JavaScript コードは、シェイプがテキスト ボックスとして作成されたかどうかを確認する方法を示します: +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +単に[ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/)クラスの`addAutoShape`メソッドで AutoShape を追加しただけでは、その AutoShape の`isTextBox`メソッドは`false`を返します。ただし、`addTextFrame`メソッドや`setText`メソッドで AutoShape にテキストを追加すると、`isTextBox`プロパティは`true`を返すようになります。 +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() は false を返します +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() は true を返します + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() は false を返します +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() は true を返します + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() は false を返します +shape3.addTextFrame(""); +// shape3.isTextBox() は false を返します + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() は false を返します +shape4.getTextFrame().setText(""); +// shape4.isTextBox() は false を返します +``` + + +## **テキスト ボックスに列を追加** + +Aspose.Slides は、[TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)クラスの[setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-)および[setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-)メソッドを提供し、テキスト ボックスに列を追加できるようにします。テキスト ボックスの列数を指定し、列間のスペースをポイント単位で設定できます。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーション内の最初のスライドを取得 + var slide = pres.getSlides().get_Item(0); + // タイプを Rectangle に設定した AutoShape を追加 + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Rectangle に TextFrame を追加 + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // TextFrame のテキスト書式を取得 + var format = aShape.getTextFrame().getTextFrameFormat(); + // TextFrame の列数を指定 + format.setColumnCount(3); + // 列間の間隔を指定 + format.setColumnSpacing(10); + // プレゼンテーションを保存 + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキスト フレームに列を追加** + +Aspose.Slides for Node.js via Java は、[TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)クラスの[setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-)メソッドを提供し、テキスト フレームに列を追加できます。このプロパティを使用して、テキスト フレーム内の希望する列数を指定できます。 + +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキストの更新** + +Aspose.Slides を使用すると、テキスト ボックス内のテキストやプレゼンテーション全体に含まれるすべてのテキストを変更または更新できます。 + +この JavaScript コードは、プレゼンテーション内のすべてのテキストが更新または変更される操作を示しています: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // シェイプがテキストフレーム(IAutoShape)をサポートしているか確認します。 + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // テキストフレーム内の段落を反復処理します + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // 段落内の各ポーションを反復処理します + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// テキストを変更します + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// 書式を変更します + } + } + } + } + } + // 変更されたプレゼンテーションを保存します + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ハイパーリンク付きテキスト ボックスの追加** + +テキスト ボックス内にリンクを挿入できます。テキスト ボックスがクリックされると、ユーザーはリンクを開くように誘導されます。 + +リンクを含むテキスト ボックスを追加するには、次の手順を実行します: + +1. `Presentation`クラスのインスタンスを作成します。 +2. 新しく作成されたプレゼンテーションの最初のスライドへの参照を取得します。 +3. `ShapeType`を`Rectangle`に設定した`AutoShape`オブジェクトをスライド上の指定位置に追加し、新しく追加された AutoShape オブジェクトへの参照を取得します。 +4. `AutoShape`オブジェクトに、デフォルトテキストとして*Aspose TextBox*を含む`TextFrame`を追加します。 +5. `HyperlinkManager`クラスのインスタンスを作成します。 +6. 希望する`TextFrame`の部分に関連付けられた[HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--)プロパティに`HyperlinkManager`オブジェクトを割り当てます。 +7. 最後に、`Presentation`オブジェクトを使用して PPTX ファイルを書き出します。 + +上記の手順を実装したこの JavaScript コードは、スライドにハイパーリンク付きテキスト ボックスを追加する方法を示しています: +```javascript +// PPTX を表す Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションの最初のスライドを取得します + var slide = pres.getSlides().get_Item(0); + // タイプを Rectangle に設定した AutoShape オブジェクトを追加します + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // シェイプを AutoShape にキャストします + var pptxAutoShape = shape; + // AutoShape に関連付けられた ITextFrame プロパティにアクセスします + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // フレームにテキストを追加します + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // ポーションテキストのハイパーリンクを設定します + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // PPTX プレゼンテーションを保存します + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**マスタースライドで作業する際のテキスト ボックスとテキスト プレースホルダーの違いは何ですか?** + +[placeholder](/slides/ja/nodejs-java/manage-placeholder/)は[master](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/)からスタイル/位置を継承し、[layouts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/)で上書きできます。一方、通常のテキスト ボックスは特定のスライド上の独立したオブジェクトで、レイアウトを切り替えても変わりません。 + +**チャート、テーブル、SmartArt 内のテキストに影響を与えずに、プレゼンテーション全体でテキストを一括置換するにはどうすればよいですか?** + +テキスト フレームを持つ AutoShape のみを対象に反復処理し、埋め込みオブジェクト([charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/)、[tables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/)、[SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/))はそれぞれのコレレクションを別々に走査するか、これらのオブジェクトタイプをスキップして除外します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..26b4b0ae9d --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: プレゼンテーションのローカリゼーション +type: docs +weight: 100 +url: /ja/nodejs-java/presentation-localization/ +--- + +## **プレゼンテーションとシェイプのテキストの言語を変更する** + +- [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +- インデックスを使用してスライドの参照を取得します。 +- スライドに[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)の[Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle)タイプを追加します。 +- TextFrameにテキストを追加します。 +- テキストに[Setting Language Id](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setLanguageId-java.lang.String-) を設定します。 +- プレゼンテーションを PPTX ファイルとして書き出します。 + +上記手順の実装は以下の例で示されています。 +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**言語IDは自動テキスト翻訳をトリガーしますか?** + +いいえ。Aspose.Slides の[setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)は、スペルチェックと文法校正のための言語を保存しますが、テキストの内容を翻訳したり変更したりはしません。これは PowerPoint が校正のために理解するメタデータです。 + +**言語IDはレンダリング時のハイフネーションや改行に影響しますか?** + +Aspose.Slides では、[setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)は校正用です。ハイフネーション品質と改行は主に[proper fonts](/slides/ja/nodejs-java/powerpoint-fonts/)とレイアウト/改行設定に依存します。正しいレンダリングを確保するには、必要なフォントを利用可能にし、[font substitution rules](/slides/ja/nodejs-java/font-substitution/) を構成し、または[embed fonts](/slides/ja/nodejs-java/embedded-font/) をプレゼンテーションに埋め込みます。 + +**単一段落内で異なる言語を設定できますか?** + +はい。[setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) はテキスト部分レベルで適用されるため、単一段落内で複数言語を混在させ、個別の校正設定を使用できます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..1621a428a6 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,85 @@ +--- +title: 上付き文字と下付き文字 +type: docs +weight: 80 +url: /ja/nodejs-java/superscript-and-subscript/ +--- + +## **上付き文字と下付き文字のテキストを管理** + +任意の段落部分内に上付き文字や下付き文字のテキストを追加できます。Aspose.Slides のテキストフレームに上付き文字または下付き文字のテキストを追加するには、[**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) メソッド([PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat) クラス)を使用する必要があります。 + +このプロパティは上付き文字または下付き文字のテキストを取得または設定します(値は -100%(下付き)から 100%(上付き)まで)。例として: + +- [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +- インデックスを使用してスライドの参照を取得します。 +- スライドに [Rectangle] タイプの [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) を追加します。 +- [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) に関連付けられた [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) にアクセスします。 +- 既存の Paragraph をクリアします。 +- 上付き文字を保持する新しい段落オブジェクトを作成し、[TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) の [Paragraphs collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) に追加します。 +- 新しい Portion オブジェクトを作成します。 +- 上付き文字を追加するために、Portion の Escapement プロパティを 0 から 100 の範囲で設定します。(0 は上付きなし) +- [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) にテキストを設定し、段落の Portion コレクションに追加します。 +- 下付き文字を保持する新しい段落オブジェクトを作成し、ITextFrame の IParagraphs コレクションに追加します。 +- 新しい Portion オブジェクトを作成します。 +- 下付き文字を追加するために、Portion の Escapement プロパティを 0 から -100 の範囲で設定します。(0 は下付きなし) +- [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) にテキストを設定し、段落の Portion コレクションに追加します。 +- プレゼンテーションを PPTX ファイルとして保存します。 + +```javascript +// PPTX を表す Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + // スライドを取得 + var slide = pres.getSlides().get_Item(0); + // テキストボックスを作成 + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // 上付き文字用の段落を作成 + var superPar = new aspose.slides.Paragraph(); + // 通常テキストの Portion を作成 + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // 上付き文字の Portion を作成 + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // 下付き文字用の段落を作成 + var paragraph2 = new aspose.slides.Paragraph(); + // 通常テキストの Portion を作成 + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // 下付き文字の Portion を作成 + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // テキストボックスに段落を追加 + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**PDFや他の形式にエクスポートする際に、上付き文字と下付き文字は保持されますか?** + +はい、Aspose.Slides は PDF、PPT/PPTX、画像、その他のサポートされている形式へプレゼンテーションをエクスポートする際に、上付き文字および下付き文字の書式設定を適切に保持します。専門的な書式はすべての出力ファイルでそのまま残ります。 + +**上付き文字と下付き文字は、太字や斜体などの他の書式スタイルと組み合わせることができますか?** + +はい、Aspose.Slides は単一のテキスト Portion 内でさまざまなテキストスタイルを組み合わせることをサポートします。Bold、Italic、Underline を有効にし、同時に上付き文字または下付き文字を適用するには、[PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) の該当プロパティを設定します。 + +**テーブル、チャート、または SmartArt 内のテキストに対して、上付き文字と下付き文字の書式設定は機能しますか?** + +はい、Aspose.Slides はテーブルやチャート要素など、ほとんどのオブジェクト内での書式設定をサポートします。SmartArt を操作する場合は、適切な要素(例: [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/)) とそのテキスト コンテナにアクセスし、[PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) のプロパティを同様に設定する必要があります。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..7b638b7935 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,682 @@ +--- +title: JavaScriptでPowerPointテキストをフォーマットする +linktitle: テキスト書式設定 +type: docs +weight: 50 +url: /ja/nodejs-java/text-formatting/ +keywords: +- テキストのハイライト +- 正規表現 +- 段落の配置 +- テキストスタイル +- テキスト背景 +- テキスト透過性 +- 文字間隔 +- フォントプロパティ +- フォントファミリ +- テキスト回転 +- 回転角度 +- テキストフレーム +- 行間 +- 自動調整プロパティ +- テキストフレームアンカー +- テキストタブ設定 +- デフォルト言語 +- PowerPoint +- OpenDocument +- プレゼンテーション +- Node.js +- JavaScript +- Aspose.Slides +description: "Aspose.Slides for Node.js via Java を使用して、PowerPoint および OpenDocument プレゼンテーションのテキストをフォーマットおよびスタイル設定する方法を学びます。強力な JavaScript コード例を使ってフォント、色、配置などをカスタマイズできます。" +--- + +## **テキストのハイライト** + +Method [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-) が [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) クラスと [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) クラスに追加されました。 + +テキストサンプルを使用して背景色でテキストの一部をハイライトでき、PowerPoint 2019 のテキスト ハイライト カラー ツールに似ています。 + +以下のコードスニペットはこの機能の使用方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// すべての単語 'important' をハイライト + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// 個別の 'the' の出現をすべてハイライト + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Aspose はシンプルな、[無料のオンライン PowerPoint 編集サービス](https://products.aspose.app/slides/editor) を提供しています +{{% /alert %}} + +## **正規表現を使用したテキストのハイライト** + +Method [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-) が [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) クラスと [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) クラスに追加されました。 + +正規表現を使用して背景色でテキストの一部をハイライトでき、PowerPoint 2019 のテキスト ハイライト カラー ツールに似ています。 + +以下のコードスニペットはこの機能の使用方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// 10文字以上のすべての単語をハイライト + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキストの背景色の設定** + +Aspose.Slides を使用すると、テキストの背景色を好みの色に指定できます。 + +この JavaScript コードはテキスト全体の背景色を設定する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +この JavaScript コードはテキストの一部だけの背景色を設定する方法を示します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **テキスト段落の配置** + +テキストの書式設定は、あらゆる文書やプレゼンテーションを作成する際の重要な要素の一つです。Aspose.Slides for Node.js via Java がスライドへのテキスト追加をサポートしていることはよく知られていますが、本項ではスライド内のテキスト段落の配置を制御する方法を見ていきます。以下の手順に従って Aspose.Slides for Node.js via Java を使用してテキスト段落を配置してください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドの参照を取得します。 +3. スライドに存在するプレースホルダー シェイプにアクセスし、それらを [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) に型キャストします。 +4. [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) が提供する [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) から(配置する必要がある)段落を取得します。 +5. 段落を配置します。段落は右揃え、左揃え、中央揃え、または両端揃えに設定できます。 +6. 修正したプレゼンテーションを PPTX ファイルとして保存します。 + +上記手順の実装例を以下に示します。 +```javascript +// PPTX ファイルを表す Presentation オブジェクトをインスタンス化する +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // 最初のスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // スライド内の最初と2番目のプレースホルダーにアクセスし、AutoShape に型キャストする + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // 両方のプレースホルダーのテキストを変更する + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // プレースホルダーの最初の段落を取得する + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // テキスト段落を中央揃えにする + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // プレゼンテーションを PPTX ファイルとして書き出す + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキストの透過性の設定** + +この記事では、Aspose.Slides for Node.js via Java を使用して任意のテキスト シェイプの透過性プロパティを設定する方法を示します。テキストの透過性を設定するには、以下の手順に従ってください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. スライドの参照を取得します。 +3. 影の色を設定します。 +4. プレゼンテーションを PPTX ファイルとして保存します。 + +上記手順の実装例を以下に示します。 +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // 透明度を0%に設定する + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキストの文字間隔の設定** + +Aspose.Slides を使用すると、テキストボックス内の文字間のスペースを設定できます。この方法により、文字間隔を広げたり縮めたりして、行またはテキストブロックの視覚的密度を調整できます。 + +この JavaScript コードは、ある行の文字間隔を広げ、別の行の文字間隔を縮める方法を示します: +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// 拡張 +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// 縮小 +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **段落のフォントプロパティの管理** + +プレゼンテーションには通常、テキストと画像の両方が含まれます。テキストはさまざまな方法で書式設定でき、特定のセクションや単語を強調したり、企業スタイルに合わせたりできます。テキストの書式設定により、プレゼンテーション コンテンツの外観と感覚を変えることができます。本記事では、Aspose.Slides for Node.js via Java を使用してスライド上の段落テキストのフォントプロパティを構成する方法を示します。段落のフォントプロパティを管理する手順は以下の通りです: + +1. [Presentation] クラスのインスタンスを作成します。 +2. インデックスを使用してスライドの参照を取得します。 +3. スライド内のプレースホルダー シェイプにアクセスし、[AutoShape] に型キャストします。 +4. [AutoShape] が提供する [TextFrame] から [Paragraph] を取得します。 +5. 段落を両端揃えにします。 +6. 段落のテキスト Portion にアクセスします。 +7. FontData を使用してフォントを定義し、テキスト Portion のフォントを設定します。 + 1. フォントを太字に設定します。 + 2. フォントを斜体に設定します。 +8. [Portion] オブジェクトが提供する [getFillFormat] を使用してフォントカラーを設定します。 +9. 修正したプレゼンテーションを [PPTX] ファイルに保存します。 + +上記手順の実装例を以下に示します。装飾のないプレゼンテーションを取得し、1 つのスライドのフォントをフォーマットします。 +```javascript +// PPTX ファイルを表す Presentation オブジェクトをインスタンス化する +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // スライド位置を使用してスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // スライド内の最初と2番目のプレースホルダーにアクセスし、AutoShape に型キャストする + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // 最初の段落にアクセスする + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // 最初のポーションにアクセスする + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // 新しいフォントを定義する + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // ポーションに新しいフォントを割り当てる + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // フォントを太字に設定する + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // フォントを斜体に設定する + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // フォントの色を設定する + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // PPTX をディスクに保存する + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキストのフォントファミリの管理** + +Portion は段落内で同一の書式スタイルを持つテキストを保持するために使用されます。本記事では、Aspose.Slides for Node.js via Java を使用してテキスト ボックスを作成し、特定のフォントやフォントファミリに関するさまざまなプロパティを定義する方法を示します。テキスト ボックスを作成し、テキストのフォントプロパティを設定する手順は以下の通りです: + +1. [Presentation] クラスのインスタンスを作成します。 +2. インデックスを使用してスライドの参照を取得します。 +3. スライドにタイプが [Rectangle] の [AutoShape] を追加します。 +4. [AutoShape] に関連付けられた塗りつぶしスタイルを削除します。 +5. AutoShape の TextFrame にアクセスします。 +6. TextFrame にテキストを追加します。 +7. [TextFrame] に関連付けられた Portion オブジェクトにアクセスします。 +8. [Portion] に使用するフォントを定義します。 +9. Portion オブジェクトが提供する関連プロパティを使用して、太字、斜体、下線、色、サイズなどのフォントプロパティを設定します。 +10. 修正したプレゼンテーションを PPTX ファイルとして保存します。 + +上記手順の実装例を以下に示します。 +```javascript +// Presentation をインスタンス化する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得する + var sld = pres.getSlides().get_Item(0); + // Rectangle タイプの AutoShape を追加する + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // AutoShape に関連付けられた塗りつぶしスタイルを削除する + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // AutoShape に関連付けられた TextFrame にアクセスする + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // TextFrame に関連付けられた Portion にアクセスする + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // Portion のフォントを設定する + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // フォントの太字プロパティを設定する + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // フォントの斜体プロパティを設定する + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // フォントの下線プロパティを設定する + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // フォントの高さを設定する + port.getPortionFormat().setFontHeight(25); + // フォントの色を設定する + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // PPTX をディスクに書き込む + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **テキストのフォントサイズの設定** + +Aspose.Slides を使用すると、段落内の既存テキストや後から追加されるテキストの好みのフォントサイズを選択できます。 + +この JavaScript コードは、段落に含まれるテキストのフォントサイズを設定する方法を示します: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // 例として、最初のシェイプを取得します。 + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // 例として、最初の段落を取得します。 + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // 段落内のすべてのテキストポーションのデフォルトフォントサイズを 20 pt に設定します。 + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // 段落内の現在のテキストポーションのフォントサイズを 20 pt に設定します。 + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **テキストの回転設定** + +Aspose.Slides for Node.js via Java は、開発者がテキストを回転させることを可能にします。テキストは [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal)、[Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical)、[Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270)、[WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical)、[EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical)、[MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) または [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft) として表示できます。任意の TextFrame のテキストを回転させるには、以下の手順に従ってください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 最初のスライドにアクセスします。 +3. 任意の Shape をスライドに追加します。 +4. [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) にアクセスします。 +5. [Rotate the text](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-) を実行します。 +6. ファイルをディスクに保存します。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得する + var slide = pres.getSlides().get_Item(0); + // Rectangle タイプの AutoShape を追加する + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Rectangle に TextFrame を追加する + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // テキストフレームにアクセスする + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // テキストフレーム用の Paragraph オブジェクトを作成する + var para = txtFrame.getParagraphs().get_Item(0); + // Paragraph 用の Portion オブジェクトを作成する + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // プレゼンテーションを保存する + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **TextFrame のカスタム回転角度の設定** + +Aspose.Slides for Node.js via Java は、TextFrame のカスタム回転角度の設定をサポートしています。本項では、例を交えて RotationAngle プロパティの設定方法を示します。新しいメソッド [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) と [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--) が [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) と [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) クラスに追加され、TextFrame のカスタム回転角度を設定できるようになりました。RotationAngle を設定するには、以下の手順に従ってください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. スライドにチャートを追加します。 +3. [RotationAngle プロパティ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) を設定します。 +4. プレゼンテーションを PPTX ファイルとして保存します。 + +以下の例で RotationAngle プロパティを設定します。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得する + var slide = pres.getSlides().get_Item(0); + // Rectangle タイプの AutoShape を追加する + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Rectangle に TextFrame を追加する + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // テキストフレームにアクセスする + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // テキストフレーム用の Paragraph オブジェクトを作成する + var para = txtFrame.getParagraphs().get_Item(0); + // Paragraph 用の Portion オブジェクトを作成する + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // プレゼンテーションを保存する + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落の行間設定** + +`ParagraphFormat`([`SpaceAfter`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat), [`SpaceBefore`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat), [`SpaceWithin`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat))には、段落の行間を管理するプロパティがあります。使用方法は次のとおりです。 + +* パラグラフの行間をパーセンテージで指定するには、正の値を使用します。 +* パラグラフの行間をポイントで指定するには、負の値を使用します。 + +例として、`SpaceBefore` プロパティを -16 に設定すると、段落に 16pt の行間が適用されます。 + +このプロパティを特定の段落に設定する手順は次のとおりです: + +1. テキストを含む AutoShape があるプレゼンテーションをロードします。 +2. インデックスを使用してスライドの参照を取得します。 +3. TextFrame にアクセスします。 +4. Paragraph にアクセスします。 +5. Paragraph のプロパティを設定します。 +6. プレゼンテーションを保存します。 + +以下の JavaScript コードは段落の行間を指定する方法を示します: +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation("Fonts.pptx"); +try { + // インデックスでスライドの参照を取得する + var sld = pres.getSlides().get_Item(0); + // TextFrame にアクセスする + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // Paragraph にアクセスする + var para = tf1.getParagraphs().get_Item(0); + // Paragraph のプロパティを設定する + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // プレゼンテーションを保存する + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **TextFrame の AutofitType プロパティの設定** + +本項では、テキストフレームのさまざまな書式設定プロパティを検討します。この記事では、テキストフレームの AutofitType プロパティ、テキストのアンカー、プレゼンテーション内でのテキストの回転設定方法を紹介します。Aspose.Slides for Node.js via Java では、任意のテキストフレームの AutofitType プロパティを設定できます。AutofitType は [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) または [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape) に設定できます。[Normal] に設定するとシェイプはそのままでテキストだけが調整され、[Shape] に設定するとテキストが収まるようにシェイプが変更されます。TextFrame の AutofitType プロパティを設定する手順は以下の通りです: + +1. [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 最初のスライドにアクセスします。 +3. 任意の shape をスライドに追加します。 +4. [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) にアクセスします。 +5. [Set the AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-) を設定します。 +6. ファイルをディスクに保存します。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセスする + var slide = pres.getSlides().get_Item(0); + // Rectangle タイプの AutoShape を追加する + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // Rectangle に TextFrame を追加する + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // テキストフレームにアクセスする + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // テキストフレーム用の Paragraph オブジェクトを作成する + var para = txtFrame.getParagraphs().get_Item(0); + // Paragraph 用の Portion オブジェクトを作成する + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // プレゼンテーションを保存する + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **TextFrame のアンカー設定** + +Aspose.Slides for Node.js via Java は、任意の TextFrame のアンカー設定を可能にします。TextAnchorType はテキストがシェイプ内のどこに配置されるかを指定します。アンカーは [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top)、[Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center)、[Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom)、[Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) または [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed) に設定できます。TextFrame のアンカーを設定する手順は以下の通りです: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 最初のスライドにアクセスします。 +3. 任意の shape をスライドに追加します。 +4. [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) にアクセスします。 +5. [Set TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-) を設定します。 +6. ファイルをディスクに保存します。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得する + var slide = pres.getSlides().get_Item(0); + // Rectangle タイプの AutoShape を追加する + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Rectangle に TextFrame を追加する + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // テキストフレームにアクセスする + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // テキストフレーム用の Paragraph オブジェクトを作成する + var para = txtFrame.getParagraphs().get_Item(0); + // Paragraph 用の Portion オブジェクトを作成する + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // プレゼンテーションを保存する + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **プレゼンテーションのタブと EffectiveTabs** + +All text tabulations are given in pixels. + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**Figure: 2 Explicit Tabs and 2 Default Tabs**| + +- EffectiveTabs.ExplicitTabCount (2 in our case) property is equal to Tabs.Count. +- EffectiveTabs collection includes all tabs (from Tabs collection and default tabs). +- EffectiveTabs.ExplicitTabCount (2 in our case) property is equal to Tabs.Count. +- EffectiveTabs.DefaultTabSize (294) property shows distance between default tabs (3 and 4 in our example). +- EffectiveTabs.GetTabByIndex(index) with index = 0 will return first explicit tab (Position = 731), index = 1 - second tab (Position = 1241). If you try to get next tab with index = 2 it will return first default tab (Position = 1470) and etc. +- EffectiveTabs.GetTabAfterPosition(pos) used for getting next tabulation after some text. For example you have text: "Hello World!". To render such text you should know where to start draw "world!". At first, you should calculate length of "Hello" in pixels and call GetTabAfterPosition with this value. You will get next tab position to draw "world!". + +## **デフォルトテキストスタイルの設定** + +プレゼンテーション内のすべてのテキスト要素に同一のデフォルトテキスト書式を一度に適用する必要がある場合は、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスの `getDefaultTextStyle` メソッドを使用して好みの書式を設定できます。以下のコード例は、新規プレゼンテーションのすべてのスライドのテキストにデフォルトの太字フォント(14 pt)を設定する方法を示します。 +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // トップレベルの段落書式を取得します。 + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **All-Caps エフェクトでテキストを抽出** + +PowerPoint では **All Caps** フォント効果を適用すると、元が小文字で入力されていてもスライド上では大文字で表示されます。Aspose.Slides でそのようなテキスト Portion を取得すると、ライブラリは入力されたままのテキストを返します。これを処理するには、[TextCapType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textcaptype/) を確認し、`All` と示されている場合は、返された文字列を大文字に変換して、出力がスライド上の表示と一致するようにします。 + +サンプル2.pptx ファイルの最初のスライドに次のテキストボックスがあるとします。 + +![All Caps エフェクト](all_caps_effect.png) + +以下のコード例は **All Caps** 効果が適用されたテキストを抽出する方法を示します: +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +出力: +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **FAQ** + +**スライド上のテーブルのテキストを変更する方法は?** + +スライド上のテーブルのテキストを変更するには、[Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/) オブジェクトを使用する必要があります。テーブル内のすべてのセルを反復処理し、各セルの `TextFrame` と `ParagraphFormat` プロパティにアクセスしてテキストを変更できます。 + +**PowerPoint スライドのテキストにグラデーションカラーを適用する方法は?** + +グラデーションカラーをテキストに適用するには、[PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) の Fill Format プロパティを使用します。Fill Format を `Gradient` に設定し、開始色と終了色、方向や透過性などのプロパティを定義してテキストにグラデーション効果を作成します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..e2cecf6b81 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,364 @@ +--- +title: WordArt +type: docs +weight: 110 +url: /ja/nodejs-java/wordart/ +--- + +## **WordArtとは?** + +WordArt(または Word Art)は、テキストにさまざまな効果を適用して目立たせる機能です。たとえば、テキストの輪郭を付けたり、色(またはグラデーション)で塗りつぶしたり、3D 効果を追加したりできます。また、テキストの形状を傾けたり、曲げたり、伸ばしたりすることもできます。 + +{{% alert color="primary" %}} +WordArt は、テキストをグラフィック オブジェクトのように扱うことができます。一般に、WordArt はテキストをより魅力的または目立つようにするための効果や特殊な変更の集合です。 +{{% /alert %}} + +**Microsoft PowerPoint の WordArt** + +Microsoft PowerPoint で WordArt を使用するには、事前定義された WordArt テンプレートのいずれかを選択する必要があります。WordArt テンプレートは、テキストまたはそのシェイプに適用される効果のセットです。 + +**Aspose.Slides の WordArt** + +Aspose.Slides for Node.js via Java 20.10 で WordArt のサポートを実装し、以降のリリースで機能を改善しました。 + +Aspose.Slides for Node.js via Java を使用すると、JavaScript で独自の WordArt テンプレート(単一効果または効果の組み合わせ)を簡単に作成し、テキストに適用できます。 + +## **シンプルな WordArt テンプレートの作成とテキストへの適用** + +**Aspose.Slides を使用する場合** + +まず、次の JavaScript コードでシンプルなテキストを作成します: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +次に、次のコードでテキストのフォント高さを大きく設定し、効果をより目立たせます: +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**Microsoft PowerPoint を使用する場合** + +PowerPoint の WordArt 効果メニューへ移動します: + +![todo:image_alt_text](image-20200930113926-1.png) + +右側メニューから事前定義された WordArt 効果を選択できます。左側メニューから新しい WordArt の設定を指定できます。 + +利用可能なパラメータまたはオプションの例: + +![todo:image_alt_text](image-20200930114015-3.png) + +**Aspose.Slides を使用する場合** + +ここでは、テキストに [SmallGrid](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) パターンカラーを適用し、次のコードで幅 1 の黒いテキスト枠線を追加します: +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +結果のテキスト: + +![todo:image_alt_text](image-20200930114108-4.png) + +## **その他の WordArt 効果の適用** + +**Microsoft PowerPoint を使用する場合** + +プログラムのクラスから、テキスト、テキストブロック、シェイプ、または類似の要素に次の効果を適用できます: + +![todo:image_alt_text](image-20200930114129-5.png) + +たとえば、Shadow、Reflection、Glow 効果はテキストに、3D Format と 3D Rotation 効果はテキストブロックに、Soft Edges プロパティはシェイプ オブジェクトに適用できます(3D Format が設定されていなくても効果があります)。 + +### **Shadow 効果の適用** + +ここではテキストにのみ関連するプロパティを設定します。次の JavaScript コードでテキストに Shadow 効果を適用します: +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +Aspose.Slides API は、OuterShadow、InnerShadow、PresetShadow の 3 種類のシャドウをサポートしています。 + +PresetShadow を使用すると、プリセット値でテキストにシャドウを適用できます。 + +**Microsoft PowerPoint を使用する場合** + +PowerPoint では 1 種類のシャドウしか使用できません。以下は例です: + +![todo:image_alt_text](image-20200930114225-6.png) + +**Aspose.Slides を使用する場合** + +Aspose.Slides は、InnerShadow と PresetShadow の 2 種類のシャドウを同時に適用できます。 + +**注意点:** + +- OuterShadow と PresetShadow を同時に使用すると、OuterShadow 効果のみが適用されます。 +- OuterShadow と InnerShadow を同時に使用した場合、適用される効果は PowerPoint のバージョンに依存します。たとえば PowerPoint 2013 では効果が二重になりますが、PowerPoint 2007 では OuterShadow が適用されます。 + +### **Display 効果の適用** + +次の JavaScript サンプルでテキストに Display 効果を追加します: +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **Glow 効果の適用** + +次のコードでテキストに Glow 効果を適用し、光沢を出します: +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +操作結果: + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} +Shadow、Display、Glow のパラメータは個別に変更できます。効果のプロパティはテキストの各部分に別々に設定されます。 +{{% /alert %}} + +### **WordArt の変形(Transform)使用** + +次のコードでテキストブロック全体に適用される Transform プロパティを使用します: +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +結果: + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} +Microsoft PowerPoint と Aspose.Slides for Node.js via Java の両方で、事前定義された変形タイプが一定数提供されています。 +{{% /alert %}} + +**PowerPoint を使用する場合** + +事前定義された変形タイプにアクセスするには、**Format** → **TextEffect** → **Transform** をたどります。 + +**Aspose.Slides を使用する場合** + +変形タイプの選択には、TextShapeType 列挙体を使用します。 + +### **テキストとシェイプへの 3D 効果の適用** + +次のサンプルコードでテキストシェイプに 3D 効果を設定します: +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +結果のテキストとシェイプ: + +![todo:image_alt_text](image-20200930114816-9.png) + +次の JavaScript コードでテキストに 3D 効果を適用します: +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +操作結果: + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} +テキストまたはシェイプへの 3D 効果の適用および効果間の相互作用は、特定の規則に基づいています。テキストとそれを含むシェイプに対するシーンを考慮してください。3D 効果は 3D オブジェクトの表現と、オブジェクトが配置されたシーンを含みます。 + +- シーンがフィギュアとテキストの両方に設定されている場合、フィギュアのシーンが優先され、テキストのシーンは無視されます。 +- フィギュアに独自のシーンがなく 3D 表現がある場合、テキストのシーンが使用されます。 +- それ以外(シェイプに元々 3D 効果がない場合)では、シェイプは平面のままで、3D 効果はテキストのみに適用されます。 + +これらの説明は ThreeDFormat.getLightRig() および ThreeDFormat.getCamera() メソッドに関連しています。 +{{% /alert %}} + +## **テキストへの Outer Shadow 効果の適用** + +Aspose.Slides for Node.js via Java は、[**OuterShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) および [**InnerShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow) クラスを提供し、[TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame) に含まれるテキストにシャドウ効果を適用できます。手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを作成します。 +2. インデックスを使用してスライドの参照を取得します。 +3. スライドに矩形タイプの AutoShape を追加します。 +4. AutoShape に関連付けられた TextFrame にアクセスします。 +5. AutoShape の FillType を NoFill に設定します。 +6. OuterShadow クラスのインスタンスを生成します。 +7. シャドウの BlurRadius を設定します。 +8. シャドウの Direction を設定します。 +9. シャドウの Distance を設定します。 +10. RectanglelAlign を TopLeft に設定します。 +11. シャドウの PresetColor を Black に設定します。 +12. プレゼンテーションを [PPTX](https://docs.fileformat.com/presentation/pptx/) ファイルとして保存します。 + +上記手順を実装した Java のサンプルコードは、テキストへの外部シャドウ効果の適用方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // スライドの参照を取得します + var sld = pres.getSlides().get_Item(0); + // 矩形タイプの AutoShape を追加します + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // 矩形に TextFrame を追加します + ashp.addTextFrame("Aspose TextBox"); + // テキストの影を取得したい場合に備えてシェイプの塗りつぶしを無効にします + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 外部シャドウを追加し、すべての必要なパラメータを設定します + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // プレゼンテーションを書き出します + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **シェイプへの Inner Shadow 効果の適用** + +手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) クラスのインスタンスを作成します。 +2. スライドの参照を取得します。 +3. 矩形タイプの AutoShape を追加します。 +4. InnerShadowEffect を有効にします。 +5. 必要なすべてのパラメータを設定します。 +6. ColorType を Scheme に設定します。 +7. Scheme Color を設定します。 +8. プレゼンテーションを [PPTX](https://docs.fileformat.com/presentation/pptx/) ファイルとして保存します。 + +以下のサンプルコード(上記手順に基づく)は、JavaScript で 2 つのシェイプ間にコネクタを追加する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // スライドの参照を取得 + var slide = pres.getSlides().get_Item(0); + // 矩形タイプの AutoShape を追加 + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 矩形に TextFrame を追加 + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // InnerShadowEffect を有効化 + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // 必要なパラメータをすべて設定 + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // ColorType を Scheme に設定 + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // Scheme カラーを設定 + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // プレゼンテーションを保存 + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**異なるフォントやスクリプト(例:アラビア語、中国語)でも WordArt 効果は使用できますか?** + +はい。Aspose.Slides は Unicode をサポートし、主要なフォントとスクリプトすべてで動作します。Shadow、Fill、Outline などの WordArt 効果は言語に関係なく適用できますが、フォントの可用性やレンダリングはシステムにインストールされているフォントに依存する場合があります。 + +**スライドマスターの要素にも WordArt 効果を適用できますか?** + +はい。マスタースライド上のシェイプ(タイトルプレースホルダー、フッター、背景テキストなど)にも WordArt 効果を適用できます。マスターのレイアウトを変更すると、関連するすべてのスライドに反映されます。 + +**WordArt 効果はプレゼンテーションのファイルサイズに影響しますか?** + +若干影響します。シャドウ、グロー、グラデーション塗りなどの効果は、追加の書式設定メタデータを伴うためファイルサイズがわずかに増加しますが、差は通常は無視できる程度です。 + +**プレゼンテーションを保存せずに WordArt 効果の結果をプレビューできますか?** + +はい。`getImage` メソッド([Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) または [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) クラス)を使用して、WordArt を含むスライドを画像(PNG、JPEG など)としてレンダリングできます。これにより、保存やエクスポートの前にメモリ上または画面上で結果をプレビューできます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/ja/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..688b2046d6 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,538 @@ +--- +title: "ズームの管理" +type: docs +weight: 60 +url: /ja/nodejs-java/manage-zoom/ +keywords: "ズーム、ズームフレーム、ズームの追加、ズームフレームの書式設定、サマリズーム、PowerPoint プレゼンテーション、Java、Aspose.Slides for Node.js via Java" +description: "PowerPoint プレゼンテーションにズームまたはズームフレームを JavaScript で追加する" +--- + +## **概要** + +PowerPoint のズーム機能を使用すると、プレゼンテーション内の特定のスライド、セクション、または領域へジャンプしたり、そこから戻ったりできます。プレゼンテーション中に、コンテンツを素早くナビゲートできるこの機能は非常に便利です。 + +![overview_image](overview.png) + +* プレゼンテーション全体を 1 枚のスライドにまとめるには、[Summary Zoom](#Summary-Zoom) を使用します。 +* 選択したスライドのみを表示するには、[Slide Zoom](#Slide-Zoom) を使用します。 +* 単一のセクションのみを表示するには、[Section Zoom](#Section-Zoom) を使用します。 + +## **スライドズーム** + +スライドズームを使用すると、プレゼンテーションの流れを中断せずに、任意の順序でスライド間を自由にナビゲートできます。スライドズームは、セクションが少ない短いプレゼンテーションに最適ですが、さまざまなシナリオでも活用できます。 + +スライドズームを使用すると、単一のキャンバス上にいるかのように複数の情報にドリルダウンできます。 + +![overview_image](slidezoomsel.png) + +スライドズーム用オブジェクトについては、Aspose.Slides が [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType) 列挙、[ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) クラス、そして [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) クラスのいくつかのメソッドを提供します。 + +### **ズームフレームの作成** + +スライドにズームフレームを追加する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. ズームフレームをリンクしたい新規スライドを作成します。 +3. 作成したスライドに識別テキストと背景を追加します。 +4. 最初のスライドにズームフレーム(作成したスライドへの参照を含む)を追加します。 +5. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、スライドにズームフレームを作成する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // 2番目のスライドの背景を作成します + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // 2番目のスライドのテキストボックスを作成します + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // 3番目のスライドの背景を作成します + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // 3番目のスライドのテキストボックスを作成します + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // ZoomFrame オブジェクトを追加します + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **カスタム画像付きズームフレームの作成** + +Node.js 用 Aspose.Slides for Java を使用して、別のスライドプレビュー画像を持つズームフレームを作成する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. ズームフレームをリンクしたい新規スライドを作成します。 +3. スライドに識別テキストと背景を追加します。 +4. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) オブジェクトに関連付けられた Images コレクションに画像を追加してフレームを埋めます。 +5. 最初のスライドにズームフレーム(作成したスライドへの参照を含む)を追加します。 +6. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、別の画像を使用したズームフレームの作成方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // 2番目のスライドの背景を作成します + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // 3番目のスライドのテキストボックスを作成します + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // ズームオブジェクト用の新しい画像を作成します + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // ZoomFrame オブジェクトを追加します + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **ズームフレームの書式設定** + +前述のセクションではシンプルなズームフレームの作成方法を示しました。より複雑なズームフレームを作成するには、シンプルなフレームの書式を変更する必要があります。ズームフレームに適用できる書式設定オプションは多数あります。 + +スライド上でズームフレームの書式を制御する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. リンクしたい新規スライドを作成します。 +3. 作成したスライドに識別テキストと背景を追加します。 +4. 最初のスライドにズームフレーム(作成したスライドへの参照を含む)を追加します。 +5. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) に関連付けられた Images コレクションに画像を追加してフレームを埋めます。 +6. 最初のズームフレームオブジェクトにカスタム画像を設定します。 +7. 2 番目のズームフレームオブジェクトの線の書式を変更します。 +8. 2 番目のズームフレームオブジェクトの画像から背景を削除します。 +9. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、スライド上でズームフレームの書式を変更する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // 2番目のスライドの背景を作成します + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // 2番目のスライドのテキストボックスを作成します + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // 3番目のスライドの背景を作成します + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // 3番目のスライドのテキストボックスを作成します + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // ZoomFrame オブジェクトを追加します + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // ズームオブジェクト用の新しい画像を作成します + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // zoomFrame1 オブジェクトにカスタム画像を設定します + zoomFrame1.setImage(picture); + // zoomFrame2 オブジェクトのズームフレーム書式を設定します + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // zoomFrame2 オブジェクトの背景非表示設定 + zoomFrame2.setShowBackground(false); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **セクションズーム** + +セクションズームは、プレゼンテーション内の特定のセクションへのリンクです。重要なセクションに戻ったり、プレゼンテーションのつながりを強調したりするのに使用できます。 + +![overview_image](seczoomsel.png) + +セクションズーム用オブジェクトについては、Aspose.Slides が [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) クラスと、[ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) クラスのいくつかのメソッドを提供します。 + +### **セクションズームフレームの作成** + +スライドにセクションズームフレームを追加する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 新規スライドを作成します。 +3. 作成したスライドに識別用背景を追加します。 +4. ズームフレームをリンクしたい新規セクションを作成します。 +5. 最初のスライドにセクションズームフレーム(作成したセクションへの参照を含む)を追加します。 +6. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、スライドにセクションズームフレームを作成する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 1", slide); + // SectionZoomFrame オブジェクトを追加します + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **カスタム画像付きセクションズームフレームの作成** + +Node.js 用 Aspose.Slides for Java を使用して、別のスライドプレビュー画像を持つセクションズームフレームを作成する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 新規スライドを作成します。 +3. 作成したスライドに識別用背景を追加します。 +4. ズームフレームをリンクしたい新規セクションを作成します。 +5. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) に関連付けられた Images コレクションに画像を追加してフレームを埋めます。 +6. 最初のスライドにセクションズームフレーム(作成したセクションへの参照を含む)を追加します。 +7. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、別の画像を使用したセクションズームフレームの作成方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 1", slide); + // ズームオブジェクト用の新しい画像を作成します + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // SectionZoomFrame オブジェクトを追加します + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **セクションズームフレームの書式設定** + +より複雑なセクションズームフレームを作成するには、シンプルなフレームの書式を変更する必要があります。セクションズームフレームに適用できる書式設定オプションは多数あります。 + +スライド上でセクションズームフレームの書式を制御する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 新規スライドを作成します。 +3. 作成したスライドに識別用背景を追加します。 +4. ズームフレームをリンクしたい新規セクションを作成します。 +5. 最初のスライドにセクションズームフレーム(作成したセクションへの参照を含む)を追加します。 +6. 作成したセクションズームオブジェクトのサイズと位置を変更します。 +7. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) に関連付けられた Images コレクションに画像を追加してフレームを埋めます。 +8. 作成したセクションズームフレームオブジェクトにカスタム画像を設定します。 +9. *リンクされたセクションから元のスライドに戻る* 機能を設定します。 +10. セクションズームフレームオブジェクトの画像から背景を削除します。 +11. 2 番目のズームフレームオブジェクトの線の書式を変更します。 +12. トランジションの継続時間を変更します。 +13. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、セクションズームフレームの書式を変更する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 1", slide); + // SectionZoomFrame オブジェクトを追加します + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // SectionZoomFrame の書式設定 + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **サマリズーム** + +サマリズームは、プレゼンテーションの全体像を一度に表示できるランディングページのようなものです。プレゼンテーション中に、任意の順序でスライド間をジャンプしたり、前に戻ったり、スキップしたりして、流れを中断せずに内容を自由に操作できます。 + +![overview_image](sumzoomsel.png) + +サマリズーム用オブジェクトについては、Aspose.Slides が [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame)、[SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection)、[SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) クラスと、[ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) クラスのいくつかのメソッドを提供します。 + +### **サマリズームの作成** + +スライドにサマリズームフレームを追加する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 識別用背景と新規セクションを持つ新しいスライドを作成します。 +3. 最初のスライドにサマリズームフレームを追加します。 +4. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、スライドにサマリズームフレームを作成する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 1", slide); + // プレゼンテーションに新しいスライドを追加します + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 2", slide); + // プレゼンテーションに新しいスライドを追加します + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 3", slide); + // プレゼンテーションに新しいスライドを追加します + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 4", slide); + // SummaryZoomFrame オブジェクトを追加します + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **サマリズームセクションの追加と削除** + +サマリズームフレーム内のすべてのセクションは [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) オブジェクトで表され、[SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) オブジェクトに格納されます。セクションの追加または削除は、[SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) クラスを介して行います。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 識別用背景と新規セクションを持つ新しいスライドを作成します。 +3. 最初のスライドにサマリズームフレームを追加します。 +4. プレゼンテーションに新しいスライドとセクションを追加します。 +5. 作成したセクションをサマリズームフレームに追加します。 +6. サマリズームフレームから最初のセクションを削除します。 +7. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、サマリズームフレーム内のセクションを追加および削除する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 1", slide); + // プレゼンテーションに新しいスライドを追加します + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 2", slide); + // SummaryZoomFrame オブジェクトを追加します + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // プレゼンテーションに新しいスライドを追加します + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + var section3 = pres.getSections().addSection("Section 3", slide); + // Summary Zoom にセクションを追加します + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // Summary Zoom からセクションを削除します + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **サマリズームセクションの書式設定** + +より複雑なサマリズームセクションオブジェクトを作成するには、シンプルなフレームの書式を変更する必要があります。サマリズームセクションオブジェクトに適用できる書式設定オプションは多数あります。 + +サマリズームフレーム内のセクションオブジェクトの書式を制御する手順は次のとおりです。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. 識別用背景と新規セクションを持つ新しいスライドを作成します。 +3. 最初のスライドにサマリズームフレームを追加します。 +4. `ISummaryZoomSectionCollection` から最初のオブジェクトのサマリズームセクションを取得します。 +5. [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) オブジェクトを作成し、[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) に関連付けられた images コレクションに画像を追加してフレームを埋めます。 +6. 作成したセクションズームフレームオブジェクトにカスタム画像を設定します。 +7. *リンクされたセクションから元のスライドに戻る* 機能を設定します。 +8. 2 番目のズームフレームオブジェクトの線の書式を変更します。 +9. トランジションの継続時間を変更します。 +10. 変更したプレゼンテーションを PPTX ファイルとして書き出します。 + +この JavaScript コードは、サマリズームセクションオブジェクトの書式を変更する方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションに新しいスライドを追加します + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 1", slide); + // プレゼンテーションに新しいスライドを追加します + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // プレゼンテーションに新しいセクションを追加します + pres.getSections().addSection("Section 2", slide); + // SummaryZoomFrame オブジェクトを追加します + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // 最初の SummaryZoomSection オブジェクトを取得します + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // SummaryZoomSection オブジェクトの書式設定 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // プレゼンテーションを保存します + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**対象スライドを表示した後、親スライドに戻す制御は可能ですか?** + +はい。 [Zoom frame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/) または [section](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/) には `setReturnToParent` メソッドがあり、有効にすると閲覧者は対象コンテンツ閲覧後に元のスライドへ戻ります。 + +**ズーム遷移の「速度」や継続時間を調整できますか?** + +はい。Zoom には `setTransitionDuration` メソッドが用意されており、ジャンプアニメーションの長さを制御できます。 + +**プレゼンテーションに含められるズームオブジェクトの数に制限はありますか?** + +明確な API 上の上限はドキュメントに記載されていません。実際の制限はプレゼンテーション全体の複雑さや閲覧環境のパフォーマンスに依存します。多数のズームフレームを追加できますが、ファイルサイズや描画時間を考慮してください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/ja/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..8ba1c0dfbf --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,100 @@ +--- +title: タグとカスタムデータの管理 +type: docs +weight: 300 +url: /ja/nodejs-java/managing-tags-and-custom-data +--- + +## **プレゼンテーション ファイルのデータ ストレージ** + +PPTX ファイル(.pptx 拡張子のアイテム)は、Office Open XML 仕様の一部である PresentationML フォーマットで保存されます。Office Open XML フォーマットは、プレゼンテーションに含まれるデータの構造を定義します。 + +*スライド* はプレゼンテーションの要素の一つで、*スライド パート* は単一のスライドの内容を含みます。スライド パートは、ISO/IEC 29500 で定義されたユーザー定義タグなど、複数のパートへの明示的なリレーションシップを持つことができます。 + +カスタム データ(プレゼンテーション固有)やユーザーは、タグ([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection))や CustomXmlParts([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection))として存在できます。 + +{{% alert color="primary" %}} +タグは本質的に文字列キーのペア値です。 +{{% /alert %}} + +## **タグの値を取得する** + +スライドでは、タグは[DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) および[DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-) メソッドに対応しています。このサンプルコードは、Aspose.Slides for Node.js via Java を使用して[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) のタグの値を取得する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **プレゼンテーションへのタグの追加** + +Aspose.Slides を使用すると、プレゼンテーションにタグを追加できます。タグは通常、次の 2 つの項目で構成されます: + +- カスタム プロパティの名前 - `MyTag` +- カスタム プロパティの値 - `My Tag Value` + +特定のルールやプロパティに基づいてプレゼンテーションを分類する必要がある場合、タグを追加すると便利です。例えば、北米諸国のプレゼンテーションをまとめてカテゴリ分けしたい場合、北米タグを作成し、該当する国(米国、メキシコ、カナダ)を値として割り当てることができます。 + +このサンプルコードは、Aspose.Slides for Node.js via Java を使用して[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) にタグを追加する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +タグは[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) に対しても設定できます: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +あるいは個々の[Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) に対しても設定できます: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**プレゼンテーション、スライド、またはシェイプからすべてのタグを一括で削除できますか?** + +はい。[tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) は、すべてのキーと値のペアを一度に削除する[clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/) 操作をサポートしています。 + +**コレクション全体を走査せずに、名前で単一のタグを削除するにはどうすればよいですか?** + +[TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) の[remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/) 操作を使用して、キーでタグを削除します。 + +**分析やフィルタリングのために、タグ名の完全なリストを取得するにはどうすればよいですか?** + +[tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) で[getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/) を使用します。これにより、すべてのタグ名の配列が返されます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..4f5868c51e --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,179 @@ +--- +title: アニメーションチャート +type: docs +weight: 80 +url: /ja/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} + +Aspose.Slides for Node.js via Java は、チャート要素のアニメーションをサポートします。**Series**、**Categories**、**Series Elements**、**Categories Elements** は、[**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-) メソッドと、2つの列挙型 **EffectChartMajorGroupingType** と **EffectChartMinorGroupingType** を使用してアニメーション化できます。 + +{{% /alert %}} + +## **チャートシリーズ アニメーション** +チャートシリーズをアニメーション化したい場合は、以下の手順に従ってコードを記述してください: + +1. プレゼンテーションを読み込みます。 +1. チャートオブジェクトの参照を取得します。 +1. シリーズをアニメーション化します。 +1. プレゼンテーションファイルをディスクに書き出します。 + +以下の例では、チャートシリーズをアニメーション化しました。 +```javascript +// プレゼンテーションファイルを表す Presentation クラスのインスタンス化 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // チャートオブジェクトの参照を取得 + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // シリーズをアニメーション化 + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // 変更されたプレゼンテーションをディスクに書き込む + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **チャートカテゴリ アニメーション** +チャートカテゴリをアニメーション化したい場合は、以下の手順に従ってコードを記述してください: + +1. プレゼンテーションを読み込みます。 +1. チャートオブジェクトの参照を取得します。 +1. カテゴリをアニメーション化します。 +1. プレゼンテーションファイルをディスクに書き出します。 + +以下の例では、チャートカテゴリをアニメーション化しました。 +```javascript +// プレゼンテーションファイルを表す Presentation クラスをインスタンス化 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **シリーズ要素のアニメーション** +シリーズ要素をアニメーション化したい場合は、以下の手順に従ってコードを記述してください: + +1. プレゼンテーションを読み込みます。 +1. チャートオブジェクトの参照を取得します。 +1. シリーズ要素をアニメーション化します。 +1. プレゼンテーションファイルをディスクに書き出します。 + +以下の例では、シリーズ要素をアニメーション化しました。 +```javascript +// プレゼンテーションファイルを表す Presentation クラスのインスタンス化 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // チャートオブジェクトの参照を取得 + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // シリーズ要素をアニメーション化 + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // プレゼンテーションファイルを書き込み(ディスクに保存) + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カテゴリ要素のアニメーション** +カテゴリ要素をアニメーション化したい場合は、以下の手順に従ってコードを記述してください: + +1. プレゼンテーションを読み込みます。 +1. チャートオブジェクトの参照を取得します。 +1. カテゴリ要素をアニメーション化します。 +1. プレゼンテーションファイルをディスクに書き出します。 + +以下の例では、カテゴリ要素をアニメーション化しました。 +```javascript +// プレゼンテーションファイルを表す Presentation クラスをインスタンス化 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // チャートオブジェクトの参照を取得 + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // カテゴリ要素をアニメーション化 + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // プレゼンテーションファイルを書き込み(ディスクに保存) + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**チャートは通常の図形と同様に、異なる効果タイプ(例: 入場、強調、終了)をサポートしていますか?** + +はい。チャートは図形として扱われるため、入場、強調、終了を含む標準的なアニメーション効果タイプをサポートし、スライドのタイムラインとアニメーションシーケンスを通じて完全に制御できます。 + +**チャートアニメーションとスライド遷移を組み合わせることはできますか?** + +はい。[Transitions](/slides/ja/nodejs-java/slide-transition/) はスライドに適用され、アニメーション効果はスライド上のオブジェクトに適用されます。両方を同じプレゼンテーションで併用でき、個別に制御できます。 + +**PPTX に保存するとチャートアニメーションは保持されますか?** + +はい。[PPTX に保存](/slides/ja/nodejs-java/save-presentation/) すると、すべてのアニメーション効果とその順序が保持され、プレゼンテーションのネイティブアニメーションモデルの一部となります。 + +**プレゼンテーションから既存のチャートアニメーションを読み取り、変更できますか?** + +はい。API はスライドのタイムライン、シーケンス、エフェクトへのアクセスを提供し、既存のチャートアニメーションを検査し、最初から作り直すことなく調整できます。 + +**Aspose.Slides を使用してチャートアニメーションを含むビデオを作成できますか?** + +はい。[プレゼンテーションをビデオにエクスポート](/slides/ja/nodejs-java/convert-powerpoint-to-video/) すると、アニメーションを保持したままタイミングやその他のエクスポート設定を構成でき、結果のクリップがアニメーション再生を反映します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..4199b611a1 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: チャート計算 +type: docs +weight: 50 +url: /ja/nodejs-java/chart-calculations/ +--- + +## **チャート要素の実際の値を計算する** + +Aspose.Slides for Node.js via Java はこれらのプロパティを取得するためのシンプルな API を提供します。クラス [Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) のプロパティは軸チャート要素の実際の位置に関する情報を提供します([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--)、[Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--)、[Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--)、[Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--)、[Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--)、[Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--))。実際の値でプロパティを埋めるには、事前にメソッド [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) を呼び出す必要があります。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **親チャート要素の実際の位置を計算する** + +Aspose.Slides for Node.js via Java はこれらのプロパティを取得するためのシンプルな API を提供します。クラス [ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) のプロパティは親チャート要素の実際の位置に関する情報を提供します([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--)、[ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--)、[ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--)、[ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--))。実際の値でプロパティを埋めるには、事前にメソッド [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) を呼び出す必要があります。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **チャートから情報を非表示にする** + +このトピックはチャートから情報を非表示にする方法を理解するのに役立ちます。Aspose.Slides for Node.js via Java を使用すると、チャートから **タイトル、垂直軸、水平軸** および **グリッド線** を非表示にできます。以下のコード例はこれらのプロパティの使用方法を示しています。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // チャートタイトルを非表示にする + chart.setTitle(false); + // /値軸を非表示にする + chart.getAxes().getVerticalAxis().setVisible(false); + // カテゴリ軸の表示 + chart.getAxes().getHorizontalAxis().setVisible(false); + // 凡例を非表示にする + chart.setLegend(false); + // 主目盛り線を非表示にする + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // 系列の線の色を設定 + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**外部の Excel ワークブックをデータ ソースとして使用できますか?また、再計算にどのような影響がありますか?** + +はい。チャートは外部ワークブックを参照できます。外部ソースに接続または更新すると、数式と値がそのワークブックから取得され、開く/編集操作中にチャートが更新されます。API では [外部ワークブック](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) のパスを指定してリンクされたデータを管理できます。 + +**回帰分析を自分で実装せずにトレンドラインを計算・表示できますか?** + +はい。 [トレンドライン](/slides/ja/nodejs-java/trend-line/)(線形、指数など)は Aspose.Slides によって追加・更新され、パラメータはシリーズ データから自動的に再計算されるため、独自の計算を実装する必要はありません。 + +**プレゼンテーションに複数のチャートがあり、外部リンクがある場合、各チャートが使用するワークブックを個別に制御できますか?** + +はい。各チャートはそれぞれの [外部ワークブック](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) を指すことができ、またチャートごとに外部ワークブックを作成または置き換えることが他のチャートに影響しないように可能です。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..d4c257ba0b --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: コールアウト +type: docs +url: /ja/nodejs-java/callout/ +--- + +## **コールアウトの使用** + +新しいメソッド [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) と [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-) が [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) クラスに追加されました。これらのメソッドは、指定したチャートのデータラベルをデータコールアウトとして表示するか、データラベルとして表示するかを決定します。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ドーナツチャートのコールアウト設定** + +Aspose.Slides for Node.js via Java は、ドーナツチャートのシリーズ データラベル コールアウト シェイプの設定をサポートしています。以下にサンプル例を示します。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**プレゼンテーションを PDF、HTML5、SVG、または画像に変換したときに、コールアウトは保持されますか?** + +はい。コールアウトはチャートのレンダリングの一部であるため、[PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/)、[HTML5](/slides/ja/nodejs-java/export-to-html5/)、[SVG](/slides/ja/nodejs-java/render-a-slide-as-an-svg-image/)、または[ラスタ画像](/slides/ja/nodejs-java/convert-powerpoint-to-png/) にエクスポートする際、スライドの書式設定とともに保持されます。 + +**カスタム フォントはコールアウトで機能し、エクスポート時に外観を保持できますか?** + +はい。Aspose.Slides は、プレゼンテーションへの[フォント埋め込み](/slides/ja/nodejs-java/embedded-font/) をサポートしており、[PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/) などへのエクスポート時にフォント埋め込みを制御します。これにより、異なるシステム間でもコールアウトの外観が同じに保たれます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..61d323734c --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: チャート軸 +type: docs +url: /ja/nodejs-java/chart-axis/ +keywords: "PowerPoint チャート軸, プレゼンテーション チャート, Java, チャート軸の操作, チャート データ" +description: "JavaScript で PowerPoint のチャート軸を編集する方法" +--- + +## **チャートの縦軸の最大値の取得** + +Aspose.Slides for Node.js via Java を使用すると、縦軸の最小値と最大値を取得できます。次の手順を実行してください: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. 最初のスライドにアクセスします。 +1. デフォルトデータでチャートを追加します。 +1. 軸上の実際の最大値を取得します。 +1. 軸上の実際の最小値を取得します。 +1. 軸の実際の主要単位を取得します。 +1. 軸の実際の副単位を取得します。 +1. 軸の実際の主要単位スケールを取得します。 +1. 軸の実際の副単位スケールを取得します。 + +このサンプルコード(上記手順の実装)は、JavaScript で必要な値を取得する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // プレゼンテーションを保存します + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **軸間のデータの入れ替え** + +Aspose.Slides を使用すると、軸間のデータを簡単に入れ替えることができます。縦軸(y 軸)のデータが横軸(x 軸)に移動し、その逆も同様です。 + +この JavaScript コードは、チャートの軸間でデータの入れ替えを実行する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // 行と列を入れ替えます + chart.getChartData().switchRowColumn(); + // プレゼンテーションを保存します + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **折れ線グラフの縦軸を無効化** + +この JavaScript コードは、折れ線グラフの縦軸を非表示にする方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **折れ線グラフの横軸を無効化** + +このコードは、折れ線グラフの横軸を非表示にする方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カテゴリ軸の変更** + +**CategoryAxisType** プロパティを使用すると、希望するカテゴリ軸のタイプ(**date** または **text**)を指定できます。この JavaScript のコードは、その操作を示しています: +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **カテゴリ軸値の日付形式の設定** + +Aspose.Slides for Node.js via Java を使用すると、カテゴリ軸の値の日付形式を設定できます。この操作は、以下の JavaScript コードで示されています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **チャート軸タイトルの回転角度の設定** + +Aspose.Slides for Node.js via Java を使用すると、チャート軸タイトルの回転角度を設定できます。この JavaScript コードは、その操作を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カテゴリ軸または値軸での位置軸の設定** + +Aspose.Slides for Node.js via Java を使用すると、カテゴリ軸または値軸で位置軸を設定できます。この JavaScript コードは、タスクの実行方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **チャート値軸に表示単位ラベルを有効化** + +Aspose.Slides for Node.js via Java を使用すると、チャートの値軸に単位ラベルを表示するよう構成できます。この JavaScript コードは、その操作を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**軸が他方と交差する位置(軸交差)を設定するにはどうすればよいですか?** + +軸は [crossing setting](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/) を提供しており、0、最大カテゴリ/値、または特定の数値で交差させることができます。これは X 軸を上下に移動したり、ベースラインを強調したりするのに便利です。 + +**目盛ラベルを軸に対してどの位置に配置できますか(横、外側、内側)?** + +[label position](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/) を "cross"、"outside"、または "inside" に設定します。これにより可読性が向上し、特に小さなチャートでスペースの節約に役立ちます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..a144874145 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: チャート データラベル +type: docs +url: /ja/nodejs-java/chart-data-label/ +keywords: "チャート データラベル,ラベル距離, Java, Aspose.Slides for Node.js via Java" +description: "PowerPointチャートのデータラベルと距離をJavaScriptで設定する" +--- + +チャートのデータラベルは、チャートのデータ系列や個々のデータポイントに関する詳細を示します。読者はデータ系列をすばやく識別でき、チャートの理解もしやすくなります。 + +## **チャート データラベルのデータ精度を設定する** + +この JavaScript コードは、チャート データラベルのデータ精度を設定する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ラベルとしてパーセンテージを表示する** + +Aspose.Slides for Node.js via Java を使用すると、表示されたチャートにパーセンテージラベルを設定できます。この JavaScript コードはその操作を示しています: +```javascript +// Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドを取得します + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // チャートを含むプレゼンテーションを保存します + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **チャート データラベルにパーセンテージ記号を設定する** + +この JavaScript コードは、チャート データラベルにパーセンテージ記号を設定する方法を示しています: +```javascript +// Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // インデックスでスライドの参照を取得します + var slide = pres.getSlides().get_Item(0); + // スライド上に PercentsStackedColumn チャートを作成します + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // NumberFormatLinkedToSource を false に設定します + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // チャート データのワークシートを取得します + var workbook = chart.getChartData().getChartDataWorkbook(); + // 新しい系列を追加します + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // 系列の塗りつぶし色を設定します + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // LabelFormat のプロパティを設定します + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // 新しい系列を追加します + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // 塗りつぶしタイプと色を設定します + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // プレゼンテーションをディスクに保存します + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **軸からのラベル距離を設定する** + +この JavaScript コードは、軸から描画されたチャートでカテゴリ軸からのラベル距離を設定する方法を示しています: +```javascript +// Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // スライドの参照を取得します + var sld = pres.getSlides().get_Item(0); + // スライド上にチャートを作成します + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // 軸からラベル間隔を設定します + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // プレゼンテーションをディスクに保存します + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **ラベル位置を調整する** + +円グラフのように軸に依存しないチャートを作成すると、チャートのデータラベルがエッジに近すぎることがあります。そのような場合、データラベルの位置を調整して、リーダー線が明確に表示されるようにする必要があります。 + +この JavaScript コードは、円グラフのラベル位置を調整する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **よくある質問** + +**密集したチャートでデータラベルが重なるのを防ぐにはどうすればよいですか?** + +自動ラベル配置、リーダー線、フォントサイズの縮小を組み合わせます。必要に応じて、いくつかのフィールド(例: カテゴリ)を非表示にするか、極端なポイントや重要なポイントのラベルのみを表示します。 + +**ゼロ、負の値、または空の値に対してのみラベルを無効にするにはどうすればよいですか?** + +ラベルを有効にする前にデータポイントをフィルタリングし、0、負の値、または欠損値に対しては定義されたルールに従って表示をオフにします。 + +**PDF/画像にエクスポートする際に一貫したラベルスタイルを確保するにはどうすればよいですか?** + +フォント(ファミリ、サイズ)を明示的に設定し、フォントがレンダリング側で利用可能か確認してフォールバックが起きないようにします。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..35664e957c --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: チャート データ マーカー +type: docs +url: /ja/nodejs-java/chart-data-marker/ +--- + +## **チャート マーカー オプションの設定** + +マーカーは特定の系列のチャート データ ポイントに設定できます。チャート マーカー オプションを設定するには、以下の手順に従ってください。 + +- Presentation クラスをインスタンス化します。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) +- デフォルトのチャートを作成します。 +- 画像を設定します。 +- 最初のチャート系列を取得します。 +- 新しいデータ ポイントを追加します。 +- プレゼンテーションを書き込みます。 + +以下の例では、データ ポイント レベルでチャート マーカー オプションを設定しています。 +```javascript +// 空のプレゼンテーションを作成 +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセス + var slide = pres.getSlides().get_Item(0); + // デフォルトのチャートを作成 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // デフォルトのチャート データ ワークシート インデックスを取得 + var defaultWorksheetIndex = 0; + // チャート データ ワークシートを取得 + var fact = chart.getChartData().getChartDataWorkbook(); + // デモシリーズを削除 + chart.getChartData().getSeries().clear(); + // 新しいシリーズを追加 + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // 画像 1 をロード + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // 画像 2 をロード + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // 最初のチャートシリーズを取得 + var series = chart.getChartData().getSeries().get_Item(0); + // そこに新しいポイント (1:3) を追加. + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // チャートシリーズのマーカーを変更 + series.getMarker().setSize(15); + // チャート付きプレゼンテーションを保存 + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**利用可能な標準マーカー形状は何ですか?** + +標準の形状が利用可能です(円、四角、ダイヤモンド、三角形など)。一覧は[MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/)列挙型で定義されています。非標準の形状が必要な場合は、画像塗りつぶしのマーカーを使用してカスタム ビジュアルをエミュレートしてください。 + +**チャートを画像または SVG にエクスポートするときにマーカーは保持されますか?** + +はい。チャートを[raster formats](/slides/ja/nodejs-java/convert-powerpoint-to-png/)にレンダリングする場合や、[shapes as SVG](/slides/ja/nodejs-java/render-a-slide-as-an-svg-image/)として保存する場合、マーカーはサイズ、塗り、輪郭などの外観と設定を保持します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..455ef9f02f --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: チャート データテーブル +type: docs +url: /ja/nodejs-java/chart-data-table/ +--- + +## **チャート データテーブルのフォント プロパティの設定** + +Aspose.Slides for Node.js via Java は、シリーズのカテゴリの色を変更する機能をサポートしています。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラス オブジェクトをインスタンス化します。 +1. スライドにチャートを追加します。 +1. チャート テーブルを設定します。 +1. フォントの高さを設定します。 +1. 変更されたプレゼンテーションを保存します。 + +以下にサンプル例が示されています。 +```javascript +// 空のプレゼンテーションを作成 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**チャートのデータテーブルの値の横に小さな凡例キーを表示できますか?** + +はい。データテーブルは[legend keys](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/) をサポートしており、オンまたはオフに切り替えることができます。 + +**プレゼンテーションを PDF、HTML、または画像にエクスポートしたときにデータテーブルは保持されますか?** + +はい。Aspose.Slides はチャートをスライドの一部としてレンダリングするため、エクスポートされた[PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/ja/nodejs-java/convert-powerpoint-to-html/)/[image](/slides/ja/nodejs-java/convert-powerpoint-to-png/) にはデータテーブルを含むチャートが含まれます。 + +**テンプレート ファイルから取得したチャートでもデータテーブルはサポートされていますか?** + +はい。既存のプレゼンテーションまたはテンプレートから読み込まれたチャートについては、チャートのプロパティを使用してデータテーブルが[is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) を確認し、変更できます。 + +**ファイル内のどのチャートでデータテーブルが有効になっているかをすばやく見つけるにはどうすればよいですか?** + +データテーブルが[is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/) を示す各チャートのプロパティを確認し、スライドを順に走査して有効になっているチャートを特定します。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..60a99cdcc5 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,113 @@ +--- +title: チャート凡例 +type: docs +url: /ja/nodejs-java/chart-legend/ +--- + +## **凡例の位置指定** + +凡例のプロパティを設定するには、以下の手順に従ってください。 + +- Presentation クラスのインスタンスを作成します。 +- スライドの参照を取得します。 +- スライドにチャートを追加します。 +- 凡例のプロパティを設定します。 +- プレゼンテーションを PPTX ファイルとして書き出します。 + +以下の例では、チャートの凡例の位置とサイズを設定しています。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + // スライドの参照を取得する + var slide = pres.getSlides().get_Item(0); + // スライドにクラスター化された縦棒チャートを追加する + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // 凡例のプロパティを設定する + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // プレゼンテーションをディスクに保存する + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **凡例のフォントサイズを設定** + +Aspose.Slides for Node.js via Java を使用すると、開発者は凡例のフォントサイズを設定できます。以下の手順に従ってください。 + +- Presentation クラスのインスタンスを生成します。 +- デフォルトのチャートを作成します。 +- フォントサイズを設定します。 +- 最小軸値を設定します。 +- 最大軸値を設定します。 +- プレゼンテーションをディスクに書き出します。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **個別凡例エントリのフォントサイズを設定** + +Aspose.Slides for Node.js via Java を使用すると、開発者は個別の凡例エントリのフォントサイズを設定できます。以下の手順に従ってください。 + +- Presentation クラスのインスタンスを生成します。 +- デフォルトのチャートを作成します。 +- 凡例エントリにアクセスします。 +- フォントサイズを設定します。 +- 最小軸値を設定します。 +- 最大軸値を設定します。 +- プレゼンテーションをディスクに書き出します。 +```javascript +// Presentation クラスのインスタンスを作成する +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**凡例を有効にして、チャートが凡例の上に重ねるのではなく自動的に領域を確保するようにできますか?** + +はい。非オーバーレイモード([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/))を使用します。この場合、プロット領域が縮小して凡例を収めるようになります。 + +**凡例ラベルを複数行にすることはできますか?** + +はい。スペースが不足している場合、長いラベルは自動的に折り返されます。改行文字をシリーズ名に入れることで、強制的に改行することも可能です。 + +**凡例をプレゼンテーションテーマの配色に合わせるにはどうすればよいですか?** + +凡例やそのテキストに明示的な色・塗りつぶし・フォントを設定しないでください。そうすればテーマから継承され、デザインが変更された際にも正しく更新されます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..ab7185418c --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: チャート プロット領域 +type: docs +url: /ja/nodejs-java/chart-plot-area/ +--- + +## **Chartプロット領域の幅と高さを取得する** + +Aspose.Slides for Node.js via Java はシンプルな API を提供します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成する。 +1. 最初のスライドにアクセスする。 +1. デフォルトデータでチャートを追加する。 +1. 実際の値を取得する前にメソッド[Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--)を呼び出す。 +1. チャート要素の左上隅に対する実際の X 位置(左)を取得する。 +1. チャート要素の左上隅に対する実際の上位置を取得する。 +1. チャート要素の実際の幅を取得する。 +1. チャート要素の実際の高さを取得する。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Chartプロット領域のレイアウトモードを設定する** + +Aspose.Slides for Node.js via Java は、チャートプロット領域のレイアウトモードを設定するシンプルな API を提供します。[**setLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#setLayoutTargetType-int-) および [**getLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#getLayoutTargetType--) メソッドが [**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea) クラスに追加されました。プロット領域のレイアウトが手動で定義されている場合、このプロパティはプロット領域を内部(軸や軸ラベルを含まない)でレイアウトするか外部(軸や軸ラベルを含む)でレイアウトするかを指定します。可能な値は [**LayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType) 列挙型で定義されています。 + +- [**LayoutTargetType.Inner**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Inner) – 軸目盛りや軸ラベルを含まないプロット領域サイズがプロット領域サイズを決定することを指定します。 +- [**LayoutTargetType.Outer**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Outer) – 軸目盛りと軸ラベルを含むプロット領域サイズがプロット領域サイズを決定することを指定します。 + +サンプルコードは以下です。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**実際の X、実際の Y、実際の幅、実際の高さはどの単位で返されますか?** + +ポイント単位です。1 インチ = 72 ポイント。これは Aspose.Slides の座標単位です。 + +**プロット領域は内容的にチャート領域とどう違いますか?** + +プロット領域はデータ描画領域(系列、グリッドライン、トレンドラインなど)です。チャート領域はタイトルや凡例などの周囲要素を含みます。3D チャートの場合、プロット領域には壁・床と軸も含まれます。 + +**レイアウトが手動の場合、プロット領域の X、Y、幅、高さはどのように解釈されますか?** + +チャート全体サイズに対する割合(0–1)として解釈されます。このモードでは自動配置が無効になり、設定した割合が使用されます。 + +**凡例を追加/移動した後にプロット領域の位置が変わったのはなぜですか?** + +凡例はプロット領域の外側にあるチャート領域に配置されますが、レイアウトと利用可能スペースに影響を与えるため、自動配置が有効な場合はプロット領域がシフトすることがあります。これは PowerPoint のチャートで標準的な動作です。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..be47874982 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,327 @@ +--- +title: チャートシリーズ +type: docs +url: /ja/nodejs-java/chart-series/ +keywords: "チャートシリーズ, シリーズカラー, PowerPointプレゼンテーション, Java, Aspose.Slides for Node.js via Java" +description: "JavaScriptでのPowerPointプレゼンテーションにおけるチャートシリーズ" +--- + +シリーズとは、チャートにプロットされた数値の行または列のことです。 + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **チャートシリーズの重なりの設定** + +[ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap) メソッドを使用すると、2D チャートでバーや列がどの程度重なるかを指定できます(範囲: -100 から 100)。このプロパティは親シリーズグループのすべてのシリーズに適用されます: 適切なグループプロパティの投影です。そのため、このプロパティは読み取り専用です。 + +`ParentSeriesGroup.getOverlap` の読み書き可能なプロパティを使用して、`Overlap` の希望の値を設定します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. スライドにクラスタ化列チャートを追加します。 +1. 最初のチャートシリーズにアクセスします。 +1. チャートシリーズの `ParentSeriesGroup` にアクセスし、シリーズの希望の重なり値を設定します。 +1. 変更されたプレゼンテーションを PPTX ファイルに書き出します。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // チャートを追加します + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // シリーズの重なりを設定します + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // プレゼンテーションファイルを書き込みます + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **シリーズの色の変更** + +Aspose.Slides for Node.js via Java を使用すると、シリーズの色を次のように変更できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. スライドにチャートを追加します。 +1. 色を変更したいシリーズにアクセスします。 +1. 任意の塗りつぶしタイプと塗りつぶし色を設定します。 +1. 変更されたプレゼンテーションを保存します。 + +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **シリーズカテゴリの色の変更** + +Aspose.Slides for Node.js via Java を使用すると、シリーズカテゴリの色を次のように変更できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. スライドにチャートを追加します。 +1. 色を変更したいシリーズカテゴリにアクセスします。 +1. 任意の塗りつぶしタイプと塗りつぶし色を設定します。 +1. 変更されたプレゼンテーションを保存します。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **シリーズ名の変更** + +デフォルトでは、チャートの凡例名は各列または行の上にあるセルの内容です。 + +サンプル画像の例では、 +* 列は *Series 1, Series 2,* と *Series 3* です; +* 行は *Category 1, Category 2, Category 3,* と *Category 4* です。 + +Aspose.Slides for Node.js via Java を使用すると、チャートデータおよび凡例内のシリーズ名を更新または変更できます。 + +この JavaScript コードは、チャートデータ `ChartDataWorkbook` 内のシリーズ名を変更する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +この JavaScript コードは、`Series` を介して凡例内のシリーズ名を変更する方法を示しています: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **チャートシリーズの塗りつぶし色の設定** + +Aspose.Slides for Node.js via Java を使用すると、プロット領域内のチャートシリーズの自動塗りつぶし色を次のように設定できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. インデックスでスライドの参照を取得します。 +1. 好みのタイプに基づくデフォルトデータでチャートを追加します(例では `ChartType.ClusteredColumn` を使用)。 +1. チャートシリーズにアクセスし、塗りつぶし色を Automatic に設定します。 +1. プレゼンテーションを PPTX ファイルに保存します。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // クラスタ化列チャートを作成します + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // シリーズの塗りつぶし形式を自動に設定します + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // プレゼンテーションファイルを書き込みます + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **チャートシリーズの反転塗りつぶし色の設定** + +Aspose.Slides を使用すると、プロット領域内のチャートシリーズの反転塗りつぶし色を次のように設定できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. インデックスでスライドの参照を取得します。 +1. 好みのタイプに基づくデフォルトデータでチャートを追加します(例では `ChartType.ClusteredColumn` を使用)。 +1. チャートシリーズにアクセスし、塗りつぶし色を invert に設定します。 +1. プレゼンテーションを PPTX ファイルに保存します。 + +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // 新しいシリーズとカテゴリを追加します + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // 最初のチャートシリーズを取得し、シリーズデータを設定します。 + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **値が負の場合にシリーズを反転させる設定** + +Aspose.Slides は `ChartDataPoint.setInvertIfNegative` メソッドを通じて反転を設定できます。プロパティを使用して反転を設定すると、データポイントが負の値を取ったときに色が反転します。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **特定のデータポイントのデータをクリア** + +Aspose.Slides for Node.js via Java を使用すると、特定のチャートシリーズの `DataPoints` データを次のようにクリアできます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +2. インデックスでスライドの参照を取得します。 +3. インデックスでチャートの参照を取得します。 +4. すべてのチャート `DataPoints` を反復処理し、`XValue` と `YValue` を null に設定します。 +5. 特定のチャートシリーズのすべての`DataPoints`をクリアします。 +6. 変更されたプレゼンテーションを PPTX ファイルに書き出します。 + +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **シリーズのギャップ幅の設定** + +Aspose.Slides for Node.js via Java を使用すると、**`GapWidth`** プロパティを介してシリーズのギャップ幅を次のように設定できます。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. 最初のスライドにアクセスします。 +1. デフォルトデータでチャートを追加します。 +1. 任意のチャートシリーズにアクセスします。 +1. `GapWidth` プロパティを設定します。 +1. 変更されたプレゼンテーションを PPTX ファイルに書き出します。 + +```javascript +// 空のプレゼンテーションを作成します +var pres = new aspose.slides.Presentation(); +try { + // プレゼンテーションの最初のスライドにアクセスします + var slide = pres.getSlides().get_Item(0); + // デフォルトデータでチャートを追加します + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // チャートデータシートのインデックスを設定します + var defaultWorksheetIndex = 0; + // チャートデータワークシートを取得します + var fact = chart.getChartData().getChartDataWorkbook(); + // シリーズを追加します + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // カテゴリを追加します + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // 2番目のチャートシリーズを取得します + var series = chart.getChartData().getSeries().get_Item(1); + // シリーズのデータを設定します + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // GapWidth の値を設定します + series.getParentSeriesGroup().setGapWidth(50); + // プレゼンテーションをディスクに保存します + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**単一のチャートが保持できるシリーズ数に上限はありますか?** + +Aspose.Slides にはシリーズ数の固定上限はありません。実際の上限はチャートの可読性と、アプリケーションで利用可能なメモリによって決まります。 + +**クラスタ内の列が近すぎる、または離れすぎる場合はどうすればよいですか?** + +そのシリーズ(または親シリーズグループ)のギャップ幅設定を調整します。値を大きくすると列間のスペースが広がり、値を小さくすると列が近づきます。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..2f66b1aa01 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: エラーバー +type: docs +url: /ja/nodejs-java/error-bar/ +--- + +## **エラーバーを追加** + +Aspose.Slides for Node.js via Java はエラーバーの値を管理するためのシンプルな API を提供します。サンプルコードはカスタム値タイプを使用する場合に適用されます。値を指定するには、シリーズの [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) コレクション内の特定のデータポイントの **ErrorBarCustomValues** プロパティを使用します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. 任意のスライドにバブルチャートを追加します。 +1. 最初のチャート系列にアクセスし、エラーバー X の書式を設定します。 +1. 最初のチャート系列にアクセスし、エラーバー Y の書式を設定します。 +1. バーの値と書式を設定します。 +1. 変更されたプレゼンテーションを PPTX ファイルに書き出します。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + // バブルチャートを作成 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // エラーバーを追加し、書式を設定 + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // プレゼンテーションを保存 + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタムエラーバー値の追加** + +Aspose.Slides for Node.js via Java はカスタムエラーバー値を管理するためのシンプルな API を提供します。サンプルコードは [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) プロパティが **Custom** に等しい場合に適用されます。値を指定するには、シリーズの [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) コレクション内の特定のデータポイントの **ErrorBarCustomValues** プロパティを使用します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. 任意のスライドにバブルチャートを追加します。 +1. 最初のチャート系列にアクセスし、エラーバー X の書式を設定します。 +1. 最初のチャート系列にアクセスし、エラーバー Y の書式を設定します。 +1. チャート系列の個々のデータポイントにアクセスし、個々の系列データポイントのエラーバー値を設定します。 +1. バーの値と書式を設定します。 +1. 変更されたプレゼンテーションを PPTX ファイルに書き出します。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + // バブルチャートを作成 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // カスタムエラーバーを追加し、その書式を設定 + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // チャート系列のデータポイントにアクセスし、エラーバーの値を設定 + // 個々のポイント + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // チャート系列のポイントにエラーバーを設定 + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // プレゼンテーションを保存 + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**プレゼンテーションを PDF や画像にエクスポートするとエラーバーはどうなりますか?** + +エラーバーはチャートの一部として描画され、変換時にもチャートの書式設定とともに保持されます(互換性のあるバージョンまたはレンダラーを使用した場合)。 + +**エラーバーをマーカーやデータ ラベルと組み合わせることはできますか?** + +はい。エラーバーは別個の要素であり、マーカーやデータ ラベルと併用できます。要素が重なる場合は、書式を調整する必要があることがあります。 + +**API でエラーバーを操作するためのプロパティや列挙体の一覧はどこで確認できますか?** + +API リファレンスで確認できます:[ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) クラスと関連列挙体 [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) および [ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/)。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..d2732a4ed1 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: トレンドライン +type: docs +url: /ja/nodejs-java/trend-line/ +--- + +## **トレンドラインを追加** + +Aspose.Slides for Node.js via Java は、さまざまなチャートのトレンドラインを管理するためのシンプルな API を提供します: + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します。 +1. インデックスでスライドの参照を取得します。 +1. デフォルト データと任意のタイプ (この例では ChartType.ClusteredColumn) のチャートを追加します。 +1. シリーズ 1 のチャートに指数トレンドラインを追加します。 +1. シリーズ 1 のチャートに線形トレンドラインを追加します。 +1. シリーズ 2 のチャートに対数トレンドラインを追加します。 +1. シリーズ 2 のチャートに移動平均トレンドラインを追加します。 +1. シリーズ 3 のチャートに多項式トレンドラインを追加します。 +1. シリーズ 3 のチャートに冪トレンドラインを追加します。 +1. 変更されたプレゼンテーションを PPTX ファイルに書き込みます。 + +以下のコードはトレンドライン付きチャートを作成するために使用されます。 +```javascript +// Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + // クラスタ化カラムチャートを作成しています + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // チャート系列 1 に指数トレンドラインを追加しています + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // チャート系列 1 に線形トレンドラインを追加しています + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // チャート系列 2 に対数トレンドラインを追加しています + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // チャート系列 2 に移動平均トレンドラインを追加しています + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // チャート系列 3 に多項式トレンドラインを追加しています + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // チャート系列 3 にべき乗トレンドラインを追加しています + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // プレゼンテーションを保存しています + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **カスタムラインを追加** + +Aspose.Slides for Node.js via Java は、チャートにカスタムラインを追加するためのシンプルな API を提供します。プレゼンテーションの対象スライドにシンプルな直線を追加するには、以下の手順に従ってください: + +- [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) クラスのインスタンスを作成します +- インデックスを使用してスライドの参照を取得します +- Shapes オブジェクトが公開する AddChart メソッドで新しいチャートを作成します +- Shapes オブジェクトが公開する AddAutoShape メソッドでラインタイプの AutoShape を追加します +- 図形の線の色を設定します +- 変更されたプレゼンテーションを PPTX ファイルとして書き込みます + +以下のコードはカスタムライン付きチャートを作成するために使用されます。 +```javascript +// Presentation クラスのインスタンスを作成します +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**トレンドラインにおける「前方」および「後方」とは何ですか?** + +トレンドラインを前方/後方に投影した長さです: 散布図 (XY) チャートの場合は軸の単位、散布図以外のチャートの場合はカテゴリの数で表されます。負の値は許可されません。 + +**トレンドラインは PDF、SVG にエクスポートしたり、スライドを画像にレンダリングしたりしたときに保持されますか?** + +はい。Aspose.Slides はプレゼンテーションを [PDF](/slides/ja/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/ja/nodejs-java/render-a-slide-as-an-svg-image/) に変換し、チャートを画像にレンダリングします。チャートの一部であるトレンドラインはこれらの操作中に保持されます。また、[チャートの画像をエクスポート](/slides/ja/nodejs-java/create-shape-thumbnails/) するメソッドも利用可能です。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..367704c6b1 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,328 @@ +--- +title: チャート書式設定 +type: docs +weight: 60 +url: /ja/nodejs-java/chart-formatting/ +--- + +## **チャートエンティティの書式設定** + +Aspose.Slides for Node.js via Java では、開発者はスライドにカスタムチャートをゼロから追加できます。本記事では、チャートのカテゴリ軸と値軸を含むさまざまなチャートエンティティの書式設定方法を説明します。 + +Aspose.Slides for Node.js via Java は、さまざまなチャートエンティティを管理し、カスタム値で書式設定するためのシンプルな API を提供します。 + +1. **Presentation** クラスのインスタンスを作成します。 +2. インデックスでスライドの参照を取得します。 +3. デフォルト データと任意のタイプ(この例では ChartType.LineWithMarkers)でチャートを追加します。 +4. チャートの 値軸 にアクセスし、次のプロパティを設定します。 + 1. 値軸 主グリッド線の **Line format** を設定 + 2. 値軸 副グリッド線の **Line format** を設定 + 3. 値軸の **Number Format** を設定 + 4. 値軸の **Min, Max, Major and Minor units** を設定 + 5. 値軸データの **Text Properties** を設定 + 6. 値軸の **Title** を設定 + 7. 値軸の **Line Format** を設定 +5. チャートの カテゴリ軸 にアクセスし、次のプロパティを設定します。 + 1. カテゴリ軸 主グリッド線の **Line format** を設定 + 2. カテゴリ軸 副グリッド線の **Line format** を設定 + 3. カテゴリ軸データの **Text Properties** を設定 + 4. カテゴリ軸の **Title** を設定 + 5. カテゴリ軸の **Label Positioning** を設定 + 6. カテゴリ軸ラベルの **Rotation Angle** を設定 +6. チャートの 凡例 にアクセスし、**Text Properties** を設定します。 +7. 凡例が重ならないようにチャート凡例の表示を設定します。 +8. チャートの **Secondary Value Axis** にアクセスし、次のプロパティを設定します。 + 1. 二次 **Value Axis** を有効化 + 2. 二次値軸の **Line Format** を設定 + 3. 二次値軸の **Number Format** を設定 + 4. 二次値軸の **Min, Max, Major and Minor units** を設定 +9. 最初のチャート シリーズを二次値軸にプロットします。 +10. チャートの背面壁の塗りつぶし色を設定します。 +11. チャートのプロット領域の塗りつぶし色を設定します。 +12. 変更されたプレゼンテーションを PPTX ファイルに書き込みます。 +```javascript + // Presentation クラスのインスタンスを作成 + var pres = new aspose.slides.Presentation(); + try { + // 最初のスライドにアクセス + var slide = pres.getSlides().get_Item(0); + // サンプルチャートを追加 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // チャートのタイトルを設定 + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // 値軸の主要グリッド線の書式を設定 + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // 値軸の副グリッド線の書式を設定 + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // 値軸の数値書式を設定 + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // チャートの最大値・最小値を設定 + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // 値軸のテキストプロパティを設定 + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // 値軸のタイトルを設定 + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // カテゴリ軸の主要グリッド線の書式を設定 + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // カテゴリ軸の副グリッド線の書式を設定 + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // カテゴリ軸のテキストプロパティを設定 + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // カテゴリのタイトルを設定 + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // カテゴリ軸ラベルの位置を設定 + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // カテゴリ軸ラベルの回転角度を設定 + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // 凡例のテキストプロパティを設定 + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // チャートが重ならないように凡例を表示設定 + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // 二次値軸を設定 + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // 二次値軸の数値書式を設定 + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // チャートの最大値・最小値を設定 + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // チャートの背面壁の色を設定 + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // プロット領域の色を設定 + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // プレゼンテーションを保存 + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **チャートのフォント プロパティを設定** + +Aspose.Slides for Node.js via Java は、チャートのフォント関連プロパティを設定する機能を提供します。以下の手順に従ってチャートのフォント プロパティを設定してください。 + +- **Presentation** クラスのオブジェクトをインスタンス化します。 +- スライドにチャートを追加します。 +- フォントの高さを設定します。 +- 変更されたプレゼンテーションを保存します。 + +以下にサンプル例が示されています。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **数値の書式設定** + +Aspose.Slides for Node.js via Java は、チャート データの書式を管理するシンプルな API を提供します。 + +1. **Presentation** クラスのインスタンスを作成します。 +2. インデックスでスライドの参照を取得します。 +3. デフォルト データと任意のタイプ(この例では **ChartType.ClusteredColumn**)でチャートを追加します。 +4. 可能なプリセット値から事前設定の数値書式を設定します。 +5. 各チャート シリーズのデータセルを走査し、チャート データの数値書式を設定します。 +6. プレゼンテーションを保存します。 +7. カスタム数値書式を設定します。 +8. 各チャート シリーズ内のデータセルを走査し、異なる数値書式を設定します。 +9. プレゼンテーションを保存します。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + // 最初のプレゼンテーション スライドにアクセス + var slide = pres.getSlides().get_Item(0); + // デフォルトのクラスター カラム チャートを追加 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // チャートのシリーズ コレクションにアクセス + var series = chart.getChartData().getSeries(); + // すべてのチャート シリーズを走査 + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // シリーズ内のすべてのデータ セルを走査 + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // 数値書式を設定 + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // プレゼンテーションを保存 + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +使用できる可能なプリセット数値書式値とそのインデックスは以下のとおりです。 + +|**0**|General| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **チャート領域の角丸枠を設定** + +Aspose.Slides for Node.js via Java は、チャート領域の設定をサポートします。メソッド **hasRoundedCorners** と **setRoundedCorners** が **Chart** クラスに追加されました。 + +1. **Presentation** クラスのオブジェクトをインスタンス化します。 +2. スライドにチャートを追加します。 +3. チャートの塗りつぶしタイプと塗りつぶし色を設定します。 +4. 角丸プロパティを **True** に設定します。 +5. 変更されたプレゼンテーションを保存します。 + +以下にサンプル例が示されています。 +```javascript +// Presentation クラスのインスタンスを作成 +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**列/領域に半透明塗りつぶしを設定し、枠線は不透明に保つことはできますか?** + +はい。塗りつぶしの透明度と輪郭は別々に設定できます。これにより、グリッドやデータが密集した可視化において読みやすさが向上します。 + +**ラベルが重なったときの対処方法は?** + +フォントサイズを小さくする、重要でないラベル要素(例: カテゴリ)を無効にする、ラベルのオフセット/位置を設定する、必要に応じて選択したポイントのみラベルを表示する、または「値 + 凡例」形式に切り替えるなどの方法があります。 + +**系列にグラデーションまたはパターン塗りつぶしを適用できますか?** + +はい。単色塗りつぶしと同様に、グラデーションやパターン塗りつぶしも利用可能です。実務ではグラデーションの使用は控えめにし、グリッドやテキストとのコントラストが低下しない組み合わせを避けてください。 \ No newline at end of file diff --git a/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..faf318b9e7 --- /dev/null +++ b/ja/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: 3Dチャート +type: docs +url: /ja/nodejs-java/3d-chart/ +--- + +## **3DチャートのRotationX、RotationY、DepthPercentsプロパティの設定** + +Aspose.Slides for Node.js via Java は、これらのプロパティを設定するためのシンプルな API を提供します。この記事では、**X、Y 回転、DepthPercents** などのさまざまなプロパティの設定方法を説明します。サンプルコードは、上記のプロパティの設定を実行します。 + +1. [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) クラスのインスタンスを作成します。 +1. 最初のスライドにアクセスします。 +1. デフォルトデータでチャートを追加します。 +1. Rotation3D プロパティを設定します。 +1. 変更されたプレゼンテーションを PPTX ファイルに書き出します。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 最初のスライドにアクセス + var slide = pres.getSlides().get_Item(0); + // デフォルトデータでチャートを追加 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // チャート データシートのインデックスを設定 + var defaultWorksheetIndex = 0; + // チャート データ ワークシートを取得 + var fact = chart.getChartData().getChartDataWorkbook(); + // 系列を追加 + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // カテゴリを追加 + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Rotation3D プロパティを設定 + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // 2 番目のチャート系列を取得 + var series = chart.getChartData().getSeries().get_Item(1); + // 系列データを設定中 + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // OverLap 値を設定 + series.getParentSeriesGroup().setOverlap(100); + // プレゼンテーションをディスクに保存 + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **よくある質問** + +**Aspose.Slides で 3D モードをサポートするチャートタイプはどれですか?** + +Aspose.Slides は、Column 3D、Clustered Column 3D、Stacked Column 3D、100% Stacked Column 3D などの 3D バリアントの縦棒チャートをサポートし、[ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) 列挙体で公開される関連 3D タイプも含まれます。正確で最新の一覧については、インストールされているバージョンの API リファレンスにある [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) メンバーをご確認ください。 + +**レポートや Web 用に 3D チャートのラスタ画像を取得できますか?** + +はい。チャートを画像にエクスポートするには [chart API](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage) を使用するか、[スライド全体をレンダリング](/slides/ja/nodejs-java/convert-powerpoint-to-png/)して PNG や JPEG 形式に変換できます。ピクセル単位で正確なプレビューが必要な場合や、PowerPoint を使用せずにチャートをドキュメント、ダッシュボード、Web ページに埋め込む場合に便利です。 + +**大規模な 3D チャートの作成とレンダリングのパフォーマンスはどの程度ですか?** + +パフォーマンスはデータ量とビジュアルの複雑さに依存します。ベストな結果を得るには、3D エフェクトは最小限に抑え、壁やプロット領域に重いテクスチャを使用しないようにし、可能であれば系列ごとのデータ点数を制限し、対象の表示や印刷要件に合わせた適切な解像度とサイズで出力をレンダリングしてください。 \ No newline at end of file diff --git a/ja/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ja/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 6ec7597b2f..4daec206b7 100644 --- a/ja/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/ja/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,6 +1,6 @@ --- title: Pythonでプレゼンテーションのローカリゼーションを自動化 -linktitle: プレゼンテーションローカリゼーション +linktitle: プレゼンテーション ローカリゼーション type: docs weight: 100 url: /ja/python-net/presentation-localization/ @@ -16,14 +16,14 @@ description: "Python と Aspose.Slides を使用して、PowerPoint および Op --- ## **プレゼンテーションとシェイプのテキストの言語を変更する** -- [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/) クラスのインスタンスを作成します。 +- Presentation クラスのインスタンスを作成します。 - インデックスを使用してスライドの参照を取得します。 - スライドに矩形タイプの AutoShape を追加します。 - TextFrame にテキストを追加します。 - テキストに Language Id を設定します。 -- プレゼンテーションを PPTX ファイルとして保存します。 +- プレゼンテーションを PPTX ファイルとして書き出します。 -The implementation of the above steps is demonstrated below in an example. +上記の手順の実装例は以下のサンプルで示しています。 ```py import aspose.slides as slides @@ -38,14 +38,14 @@ with slides.Presentation("pres.pptx") as pres: ## **FAQ** -**language_id は自動テキスト翻訳をトリガーしますか?** +**Does language ID trigger automatic text translation?** -No. Aspose.Slides の language_id はスペルチェックと文法校正のための言語情報を保持しますが、テキストを翻訳したり内容を変更したりはしません。これは PowerPoint が校正のために理解するメタデータです。 +いいえ。Aspose.Slides の [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) はスペルチェックや文法校正のための言語情報を保持しますが、テキストの内容を翻訳したり変更したりはしません。これは PowerPoint が校正用に理解するメタデータです。 -**language_id はレンダリング時のハイフネーションや改行に影響しますか?** +**Does language ID affect hyphenation and line breaks during rendering?** -Aspose.Slides では language_id は校正用です。ハイフネーションの品質や改行は主に適切なフォントの有無や、文字体系に応じたレイアウト/改行設定に依存します。正しくレンダリングするには、必要なフォントを利用可能にし、[font substitution rules](/slides/ja/python-net/font-substitution/) を構成するか、[embed fonts](/slides/ja/python-net/embedded-font/) をプレゼンテーションに埋め込んでください。 +Aspose.Slides では、[language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) は校正のために使用されます。ハイフネーションの品質や改行は主に、[proper fonts](/slides/ja/python-net/powerpoint-fonts/) の有無や、書記体系に応じたレイアウト/改行設定に依存します。正しいレンダリングを確保するには、必要なフォントを利用可能にし、[font substitution rules](/slides/ja/python-net/font-substitution/) を構成するか、またはプレゼンテーションに[embed fonts](/slides/ja/python-net/embedded-font/) を埋め込んでください。 -**単一の段落内で異なる言語を設定できますか?** +**Can I set different languages within a single paragraph?** -はい。language_id はテキストの段落レベルで適用されるため、単一の段落内で複数の言語を混在させ、それぞれ異なる校正設定を持たせることができます。 \ No newline at end of file +はい。[language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) はテキスト部分レベルで適用されるため、単一の段落内で複数の言語を異なる校正設定で混在させることができます。 diff --git a/ru/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ru/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index a8a2dc8967..7be2012e83 100644 --- a/ru/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/ru/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,21 +1,21 @@ --- -title: Локализация презентации +title: Локализация презентаций type: docs weight: 100 url: /ru/net/presentation-localization/ -keywords: "Изменить язык, Проверка орфографии, Проверка орфографии, Проверка орфографии, Презентация PowerPoint, C#, Csharp, Aspose.Slides for .NET" -description: "Изменить или проверить язык в презентации PowerPoint. Проверка орфографии текста в C# или .NET" +keywords: "Смена языка, Проверка орфографии, Проверка правописания, Орфографический проверщик, Презентация PowerPoint, C#, Csharp, Aspose.Slides for .NET" +description: "Смена или проверка языка в презентации PowerPoint. Проверка орфографии текста на C# или .NET" --- -## **Изменить язык текста презентации и фигуры** -- Создать экземпляр класса [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation). -- Получить ссылку на слайд, используя его Index. -- Добавить AutoShape типа Rectangle на слайд. -- Добавить некоторый текст в TextFrame. -- Установить LanguageId для текста. -- Записать презентацию в файл PPTX. +## **Изменение языка текста в презентации и форме** +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation). +- Получите ссылку на слайд, используя его индекс. +- Добавьте AutoShape типа Rectangle на слайд. +- Добавьте текст в TextFrame. +- Установите Language Id для текста. +- Сохраните презентацию в файл PPTX. -Реализация вышеуказанных шагов демонстрируется ниже в примере. +Реализация указанных шагов продемонстрирована ниже в примере. ```c# using (Presentation pres = new Presentation("test0.pptx")) { @@ -28,16 +28,16 @@ using (Presentation pres = new Presentation("test0.pptx")) ``` -## **Часто задаваемые вопросы** +## **FAQ** -**Вызывает ли language_id автоматический перевод текста?** +**Влияет ли Language ID на автоматический перевод текста?** -Нет. [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) в Aspose.Slides хранит язык для проверки орфографии и грамматики, но не переводит и не изменяет содержимое текста. Это метаданные, которые PowerPoint понимает для проверки. +Нет. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) в Aspose.Slides хранит язык для проверки орфографии и грамматики, но не переводит и не изменяет содержимое текста. Это метаданные, которые PowerPoint понимает для проверки. -**Влияет ли language_id на переносы слов и разрывы строк при рендеринге?** +**Влияет ли Language ID на переносы и разбиение строк при рендеринге?** -В Aspose.Slides [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) используется для проверки правописания. Качество переноса слов и разрыва строк в основном зависит от наличия [соответствующих шрифтов](/slides/ru/net/powerpoint-fonts/) и настроек разметки/переноса строк для системы письма. Чтобы обеспечить корректный рендеринг, сделайте необходимые шрифты доступными, настройте [правила замены шрифтов](/slides/ru/net/font-substitution/) и/или [встроить шрифты](/slides/ru/net/embedded-font/) в презентацию. +В Aspose.Slides [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) используется для проверки. Качество переносов и разбиения строк в основном зависит от наличия подходящих шрифтов и параметров разметки/разбиения строк для системы письма. Чтобы обеспечить правильный рендеринг, обеспечьте доступность необходимых шрифтов, настройте [font substitution rules](/slides/ru/net/font-substitution/), и/или [embed fonts](/slides/ru/net/embedded-font/) в презентацию. -**Могу ли я задать разные языки в одном абзаце?** +**Можно ли задать разные языки в пределах одного абзаца?** -Да. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) применяется на уровне части текста, поэтому в одном абзаце можно смешивать несколько языков с различными настройками проверки. \ No newline at end of file +Да. [LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) применяется на уровне части текста, поэтому в одном абзаце можно смешивать несколько языков с разными настройками проверки. diff --git a/ru/nodejs-java/developer-guide/3d-presentation/_index.md b/ru/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..d37d6c5dcc --- /dev/null +++ b/ru/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,225 @@ +--- +title: 3D презентация +type: docs +weight: 232 +url: /ru/nodejs-java/3d-presentation/ +--- + +## **Обзор** + +Начиная с Aspose.Slides for Java 20.9, возможно создавать 3D в презентациях. PowerPoint 3D — это способ оживить презентации. Показать реальные объекты в 3D‑презентации, продемонстрировать 3D‑модель вашего будущего бизнес‑проекта, 3D‑модель здания или его интерьера, 3D‑модель игрового персонажа или просто 3D‑представление ваших данных. + +3D‑модели PowerPoint можно создавать из 2D‑форм, применяя к ним такие эффекты: 3D‑поворот, 3D‑глубина и экструдирование, 3D‑градиент, 3D‑текст и т.д. Список 3D‑функций, применяемых к фигурам, можно найти в классе **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. Экземпляр класса можно получить с помощью: + +- **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** метод для создания 3D‑модели PowerPoint. +- **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** метод для создания 3D‑текста (WordArt). + +Все эффекты, реализованные в **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**, могут использоваться как для фигур, так и для текста. Давайте быстро рассмотрим основные методы класса **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)**. В следующем примере мы создаём прямоугольную 2D‑фигуру с текстом. Получив камеру для фигуры, мы изменяем её поворот, чтобы она выглядела как 3D‑модель. Установка плоского освещения и направление его к верху 3D‑модели добавляют объём модели. Изменённые материалы, высота экструдирования и цвет делают 3D‑модель более живой. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Вот получившаяся 3D‑модель: + +![todo:image_alt_text](img_01_01.png) + +## **3D‑поворот** + +Поворот 3D‑модели в PowerPoint можно выполнить через меню: + +![todo:image_alt_text](img_02_01.png) + +Чтобы повернуть 3D‑модель с помощью API Aspose.Slides, используйте метод **[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)**, задающий вращение камеры относительно 3D‑фигуры: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... задать другие параметры 3D-сцены +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **3D‑глубина и экструдирование** + +Методы **[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** и **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** используются для создания экструдирования фигуры: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); +// ... задать другие параметры 3D-сцены +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +В PowerPoint глубина фигуры задаётся через: + +![todo:image_alt_text](img_02_02.png) + +## **3D‑градиент** + +3D‑градиент может добавить объём 3D‑фигуре PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Вот как это выглядит: + +![todo:image_alt_text](img_02_03.png) + +Вы также можете создать градиент изображения: +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. настройка 3D: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* свойства +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +Вот результат: + +![todo:image_alt_text](img_02_04.png) + +## **3D‑текст (WordArt)** + +Чтобы создать 3D‑текст (WordArt), выполните следующее: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // настройка эффекта трансформации WordArt "Arch Up" + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Вот результат: + +![todo:image_alt_text](img_02_05.png) + +## **Часто задаваемые вопросы** + +**Сохранятся ли 3D‑эффекты при экспорте презентации в изображения/PDF/HTML?** + +Да. Движок Slides 3D рендерит 3D‑эффекты при экспорте в поддерживаемые форматы ([images](/slides/ru/nodejs-java/convert-powerpoint-to-png/), [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/), [HTML](/slides/ru/nodejs-java/convert-powerpoint-to-html/), и т.п.). + +**Могу ли я получить «эффективные» (окончательные) значения 3D‑параметров, учитывающие темы, наследование и т.д.?** + +Да. Slides предоставляет API для [читать эффективные значения](/slides/ru/nodejs-java/shape-effective-properties/) (включая 3D‑освещение, фаски и т.д.), чтобы вы могли увидеть окончательные применённые настройки. + +**Работают ли 3D‑эффекты при конвертации презентации в видео?** + +Да. При [генерации кадров для видео](/slides/ru/nodejs-java/convert-powerpoint-to-video/) 3D‑эффекты рендерятся так же, как и для [экспортированных изображений](/slides/ru/nodejs-java/convert-powerpoint-to-png/). \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..27fbcafc68 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: Конвертировать OpenOffice ODP +type: docs +weight: 10 +url: /ru/nodejs-java/convert-openoffice-odp/ +keywords: "Конвертировать ODP в PDF, ODP в HTML, ODP в TIFF в JavaScript" +description: "Конвертировать ODP в PDF, ODP в PPT, ODP в PPTX, ODP в HTML в JavaScript" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) позволяет конвертировать презентации OpenOffice ODP в множество форматов. API для конвертации ODP в другие типы такой же, как и для форматов PowerPoint. Вы можете использовать следующие примеры для конвертации ODP, просто заменив исходный файл на файл презентации ODP: + +- [Конвертировать ODP в HTML](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [Конвертировать ODP в PDF](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [Конвертировать ODP в TIFF](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [Конвертировать ODP в SWF Flash](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [Конвертировать ODP в XPS](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [Конвертировать ODP в PDF с примечаниями](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [Конвертировать ODP в TIFF с примечаниями](/slides/ru/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **FAQ** + +**Что делать, если форматирование моего файла ODP изменилось после конвертации?** + +ODP и PowerPoint используют разные модели презентаций, и некоторые элементы — такие как таблицы, пользовательские шрифты или стили заливки — могут отображаться не совсем одинаково. Рекомендуется проверить результат и при необходимости скорректировать макет или форматирование в коде. + +**Нужен ли установленный OpenOffice или LibreOffice для конвертации ODP?** + +Нет, Aspose.Slides — это автономная библиотека, и она не требует установки OpenOffice или LibreOffice на вашей системе. + +**Могу ли я настроить формат вывода при конвертации ODP (например, задать параметры PDF)?** + +Да, Aspose.Slides предоставляет широкие возможности настройки вывода. Например, при сохранении в PDF вы можете управлять сжатием, качеством изображений, рендерингом текста и многим другим через класс [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/). + +**Подходит ли Aspose.Slides для серверной или облачной обработки ODP?** + +Абсолютно. Aspose.Slides разработан для работы как в настольных, так и в серверных средах, включая облачные платформы, такие как Azure, AWS и контейнеры Docker, без каких-либо зависимостей от пользовательского интерфейса. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..b1cd2b89bf --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: Конвертировать ODP в PPTX +type: docs +weight: 10 +url: /ru/nodejs-java/convert-odp-to-pptx/ +--- + +## **Конвертировать ODP в презентацию PPTX/PPT** +Aspose.Slides for Node.js via Java предлагает класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), который представляет файл презентации. Класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) теперь также может получать доступ к ODP через конструктор [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) при создании объекта. Следующий пример показывает, как преобразовать презентацию ODP в презентацию PPTX. +```javascript +// Открыть файл ODP +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// Сохранение презентации ODP в формат PPTX +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Рабочий пример** +Вы можете посетить [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) веб‑приложение, которое построено с использованием **Aspose.Slides API**. Приложение демонстрирует, как можно реализовать конвертацию ODP в PPTX с помощью Aspose.Slides API. + +## **Часто задаваемые вопросы** + +**Нужен ли мне Microsoft PowerPoint или LibreOffice для конвертации ODP в PPTX?** + +Нет. Aspose.Slides работает автономно и не требует сторонних приложений для чтения или записи ODP/PPTX. + +**Сохраняются ли master‑slides, макеты и темы при конвертации?** + +Да. Библиотека использует полную модель объектов презентации и сохраняет структуру, включая master‑slides и макеты, поэтому дизайн остаётся корректным после конвертации. + +**Могу ли я конвертировать защищённые паролем файлы ODP?** + +Да. Aspose.Slides поддерживает обнаружение защиты, открытие и работу с [protected presentations](/slides/ru/nodejs-java/password-protected-presentation/) (включая ODP), когда вы предоставляете пароль, а также настройку шифрования и доступ к свойствам документа. + +**Подходит ли Aspose.Slides для облачных или REST‑ориентированных сервисов конвертации?** + +Да. Вы можете использовать локальную библиотеку в своём бэкенде или [Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/) (REST API); оба варианта поддерживают конвертацию ODP → PPTX. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..d26da99d25 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,63 @@ +--- +title: Конвертировать презентации в режиме раздаточного листа в JavaScript +type: docs +weight: 150 +url: /ru/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- конвертировать PowerPoint +- режим раздаточного листа +- раздаточный лист +- PowerPoint +- PPT +- PPTX +- презентация +- Node.js +- JavaScript +- Aspose.Slides +description: "Конвертировать презентации в режиме раздаточного листа на JavaScript" +--- + +## **Экспорт в режиме раздаточного листа** + +Aspose.Slides предоставляет возможность конвертировать презентации в различные форматы, включая создание раздаточных листов для печати в режиме раздаточного листа. Этот режим позволяет настроить, как несколько слайдов отображаются на одной странице, что полезно для конференций, семинаров и других мероприятий. Вы можете включить этот режим, установив метод `setSlidesLayoutOptions` в классах [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) и [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). + +Чтобы настроить режим раздаточного листа, используйте объект [HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/), который определяет, сколько слайдов размещается на одной странице, и другие параметры отображения. + +Ниже приведён пример кода, показывающий, как конвертировать презентацию в PDF в режиме раздаточного листа. +```js +// Загружаем презентацию. +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// Устанавливаем параметры экспорта. +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 4 слайда на странице по горизонтали +slidesLayoutOptions.setPrintSlideNumbers(true); // печатать номера слайдов +slidesLayoutOptions.setPrintFrameSlide(true); // печатать рамку вокруг слайдов +slidesLayoutOptions.setPrintComments(false); // без комментариев + +let pdfOptions = new asposeSlides.PdfOptions(); +pdfOptions.setSlidesLayoutOptions(slidesLayoutOptions); + +// Экспортируем презентацию в PDF с выбранным макетом. +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} +Имейте в виду, что метод `setSlidesLayoutOptions` доступен только для некоторых форматов вывода, таких как PDF, HTML, TIFF, а также при рендеринге в виде изображений. +{{% /alert %}} + +## **Часто задаваемые вопросы** + +**Каково максимальное количество миниатюр слайдов на странице в режиме раздаточного листа?** + +Aspose.Slides поддерживает [presets](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) до 9 миниатюр на странице с горизонтальным или вертикальным расположением: 1, 2, 3, 4 (горизонтальное/вертикальное), 6 (горизонтальное/вертикальное) и 9 (горизонтальное/вертикальное). + +**Могу ли я задать пользовательскую сетку, например 5 или 8 слайдов на страницу?** + +Нет. Количество и порядок миниатюр строго контролируются перечислением [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/); произвольные макеты не поддерживаются. + +**Могу ли я включить скрытые слайды в вывод раздаточного листа?** + +Да. Используйте метод `setShowHiddenSlides` в настройках экспорта для целевого формата, такого как [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) или [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..3b92f47d9d --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,66 @@ +--- +title: Конвертировать PowerPoint в анимированный GIF +type: docs +weight: 65 +url: /ru/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "Конвертировать PowerPoint в анимированный GIF, PPT в GIF, PPTX в GIF" +description: "Конвертировать PowerPoint в анимированный GIF: PPT в GIF, PPTX в GIF, с помощью API Aspose.Slides." +--- + +## **Преобразование презентаций в анимированный GIF с настройками по умолчанию** + +Этот пример кода на JavaScript показывает, как преобразовать презентацию в анимированный GIF, используя стандартные настройки: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Анимированный GIF будет создан с параметрами по умолчанию. + +{{% alert title="TIP" color="primary" %}} + +Если вы предпочитаете настроить параметры GIF, можете использовать класс [GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions). См. пример кода ниже. + +{{% /alert %}} + +## **Преобразование презентаций в анимированный GIF с пользовательскими настройками** + +Этот пример кода показывает, как преобразовать презентацию в анимированный GIF, используя пользовательские настройки в JavaScript: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// размер полученного GIF + gifOptions.setDefaultDelay(2000);// как долго каждый слайд будет отображаться, пока не будет переключён на следующий + gifOptions.setTransitionFps(35);// увеличить FPS для лучшего качества анимации перехода + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} + +Возможно, вам будет интересно попробовать бесплатный конвертер [Text to GIF](https://products.aspose.app/slides/text-to-gif) от Aspose. + +{{% /alert %}} + +## **FAQ** + +**Что делать, если шрифты, использованные в презентации, не установлены на системе?** + +Установите недостающие шрифты или [настроить резервные шрифты](/slides/ru/nodejs-java/powerpoint-fonts/). Aspose.Slides заменит их, но внешний вид может отличаться. Для брендинга всегда убедитесь, что необходимые шрифты явно доступны. + +**Могу ли я наложить водяной знак на кадры GIF?** + +Да. [Добавить полупрозрачный объект/логотип](/slides/ru/nodejs-java/watermark/) на главный слайд или отдельные слайды перед экспортом — водяной знак появится на каждом кадре. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..762981e351 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,419 @@ +--- +title: Преобразовать PowerPoint в HTML с помощью JavaScript +linktitle: Преобразовать PowerPoint в HTML +type: docs +weight: 30 +url: /ru/nodejs-java/convert-powerpoint-to-html/ +keywords: "Java PowerPoint в HTML, Преобразовать презентацию PowerPoint, PPTX, PPT, PPT в HTML, PPTX в HTML, PowerPoint в HTML, Сохранить PowerPoint как HTML, Сохранить PPT как HTML, Сохранить PPTX как HTML, Java, Aspose.Slides, экспорт HTML" +description: "Преобразовать PowerPoint в HTML с помощью JavaScript. Сохранить PPTX или PPT как HTML в JavaScript. Сохранить слайды как HTML в JavaScript" +--- + +## **Обзор** + +В этой статье объясняется, как преобразовать презентацию PowerPoint в формат HTML с помощью JavaScript. Рассматриваются следующие темы. + +- Преобразовать PowerPoint в HTML с помощью JavaScript +- Преобразовать PPT в HTML с помощью JavaScript +- Преобразовать PPTX в HTML с помощью JavaScript +- Преобразовать ODP в HTML с помощью JavaScript +- Преобразовать слайд PowerPoint в HTML с помощью JavaScript + +## **Java PowerPoint в HTML** + +Для примера кода JavaScript, преобразующего PowerPoint в HTML, см. раздел ниже, а именно [Convert PowerPoint to HTML](#convert-powerpoint-to-html). Код может загружать различные форматы, такие как PPT, PPTX и ODP, в объект Presentation и сохранять их в формат HTML. + +## **О преобразовании PowerPoint в HTML** + +С помощью [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), приложения и разработчики могут преобразовать презентацию PowerPoint в HTML: **PPTX в HTML** или **PPT в HTML**. + +**Aspose.Slides** предоставляет множество параметров (в основном из класса [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions)), определяющих процесс преобразования PowerPoint в HTML: + +* Преобразовать всю презентацию PowerPoint в HTML. +* Преобразовать конкретный слайд презентации PowerPoint в HTML. +* Преобразовать медиа презентации (изображения, видео и т.д.) в HTML. +* Преобразовать презентацию PowerPoint в адаптивный HTML. +* Преобразовать презентацию PowerPoint в HTML с включёнными или исключёнными заметками выступающего. +* Преобразовать презентацию PowerPoint в HTML с включёнными или исключёнными комментариями. +* Преобразовать презентацию PowerPoint в HTML с оригинальными или встроенными шрифтами. +* Преобразовать презентацию PowerPoint в HTML, используя новый стиль CSS. + +{{% alert color="primary" %}} + +С помощью собственного API Aspose разработала бесплатные конвертеры [presentation to HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html): [PPT to HTML](https://products.aspose.app/slides/conversion/ppt-to-html), [PPTX to HTML](https://products.aspose.app/slides/conversion/pptx-to-html), [ODP to HTML](https://products.aspose.app/slides/conversion/odp-to-html) и т.д. + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +Возможно, вам будет интересно ознакомиться с другими [бесплатными конвертерами от Aspose](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +Помимо описанных здесь процессов преобразования, Aspose.Slides также поддерживает следующие операции преобразования, связанные с форматом HTML: + +* [HTML в изображение](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML в JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML в XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML в TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + +## **Преобразовать PowerPoint в HTML** + +С помощью Aspose.Slides вы можете преобразовать всю презентацию PowerPoint в HTML следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Вызовите метод [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) для сохранения объекта в виде HTML‑файла. + +Этот код показывает, как преобразовать PowerPoint в HTML с помощью JavaScript: +```javascript +// Создать объект Presentation, представляющий файл презентации +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // Сохранение презентации в HTML + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать PowerPoint в адаптивный HTML** + +Aspose.Slides предоставляет класс [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController), который позволяет генерировать адаптивные HTML‑файлы. Этот код показывает, как преобразовать презентацию PowerPoint в адаптивный HTML с помощью JavaScript: +```javascript +// Создать объект Presentation, который представляет файл презентации +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // Сохранение презентации в HTML + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать PowerPoint в HTML с заметками** + +Этот код показывает, как преобразовать PowerPoint в HTML с заметками с помощью JavaScript: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Сохранение страниц заметок + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать PowerPoint в HTML с оригинальными шрифтами** + +Aspose.Slides предоставляет класс [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController), который позволяет внедрять все шрифты презентации при её преобразовании в HTML. + +Чтобы предотвратить встраивание некоторых шрифтов, вы можете передать массив имён шрифтов в параметризованный конструктор класса [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController). Популярные шрифты, такие как Calibri или Arial, используемые в презентации, не требуют встраивания, поскольку большинство систем уже содержат эти шрифты. Если такие шрифты будут встроены, полученный HTML‑документ станет избыточно большим. + +Класс [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) поддерживает наследование и предоставляет метод [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-), предназначенный для переопределения. +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // исключить шрифты презентации по умолчанию + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать PowerPoint в HTML с изображениями высокого качества** + +По умолчанию при преобразовании PowerPoint в HTML Aspose.Slides создает небольшие HTML‑файлы с изображениями 72 DPI и удалёнными обрезанными областями. Чтобы получить HTML‑файлы с изображениями более высокого качества, необходимо передать значение `96` в метод `setPicturesCompression` класса `HtmlOptions` (т.е. `PicturesCompression.Dpi96`) или более высокие [значения](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PicturesCompression). + +Этот код JavaScript показывает, как преобразовать презентацию PowerPoint в HTML, получая изображения высокого качества с разрешением 150 DPI (т.е. `PicturesCompression.Dpi150`): +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Этот код JavaScript показывает, как вывести HTML с изображениями полного качества: +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать слайд в HTML** + +Чтобы преобразовать конкретный слайд PowerPoint в HTML, необходимо создать экземпляр того же класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) (используемого для преобразования всей презентации в HTML), а затем вызвать метод [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) для сохранения файла в формате HTML. Класс [HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) можно использовать для указания дополнительных параметров преобразования: +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // Сохранение файла + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **Сохранить CSS и изображения при экспорте в HTML** + +С помощью новых файлов стилей CSS вы можете легко изменить стиль HTML‑файла, полученного в результате преобразования PowerPoint в HTML. + +Код JavaScript в этом примере показывает, как использовать переопределяемые методы для создания пользовательского HTML‑документа со ссылкой на файл CSS: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Вам потребуется реализовать CustomHeaderAndFontsController в Java, скомпилировать его и добавить в каталог модуля \aspose.slides.via.java\lib\. + +Этот код Java показывает, как реализован `CustomHeaderAndFontsController`: +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // Пользовательский шаблон заголовка + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **Связать все шрифты при преобразовании презентации в HTML** + +Если вы не хотите встраивать шрифты (чтобы избежать увеличения размера получаемого HTML), вы можете связать все шрифты, реализовав собственную версию `LinkAllFontsHtmlController`. + +Этот код JavaScript показывает, как преобразовать PowerPoint в HTML, связывая все шрифты и исключая "Calibri" и "Arial" (поскольку они уже присутствуют в системе): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Исключить шрифты презентации по умолчанию + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Вам потребуется реализовать LinkAllFontsHtmlController в Java, скомпилировать его и добавить в каталог модуля \aspose.slides.via.java\lib\. + +Этот код Java показывает, как реализован `LinkAllFontsHtmlController`: +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // может потребоваться очистка пути + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **Преобразовать PowerPoint в адаптивный HTML** + +Этот код JavaScript показывает, как преобразовать презентацию PowerPoint в адаптивный HTML: +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Экспортировать медиа‑файлы в HTML** + +С помощью Aspose.Slides for Node.js via Java вы можете экспортировать медиа‑файлы следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд. +3. Добавьте видео на слайд. +4. Запишите презентацию в виде HTML‑файла. + +Этот код JavaScript показывает, как добавить видео в презентацию и затем сохранить её как HTML: +```javascript +// Загрузка презентации +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // Установка параметров HTML + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // Сохранение файла + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Вопросы и ответы** + +**Какова производительность Aspose.Slides при преобразовании нескольких презентаций в HTML?** + +Производительность зависит от размера и сложности презентаций. Aspose.Slides обладает высокой эффективностью и масштабируемостью для пакетных операций. Чтобы достичь оптимальной производительности при преобразовании большого количества презентаций, рекомендуется использовать многопоточность или параллельную обработку, когда это возможно. + +**Поддерживает ли Aspose.Slides экспорт гиперссылок в HTML?** + +Да, Aspose.Slides полностью поддерживает экспорт встроенных гиперссылок в HTML. При преобразовании презентаций в формат HTML гиперссылки автоматически сохраняются и остаются кликабельными. + +**Существует ли ограничение на количество слайдов при преобразовании презентаций в HTML?** + +При использовании Aspose.Slides нет ограничения на количество слайдов. Вы можете преобразовать презентации любого объёма. Однако для презентаций с очень большим числом слайдов производительность может зависеть от доступных ресурсов вашего сервера или системы. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..eafd4d6ff3 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,146 @@ +--- +title: Преобразовать PowerPoint в JPG +type: docs +weight: 60 +url: /ru/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "Преобразовать PowerPoint в JPG, PPTX в JPEG, PPT в JPEG" +description: "Преобразовать PowerPoint в JPG: PPT в JPG, PPTX в JPG на JavaScript" +--- + +## **О конвертации PowerPoint в JPG** +С помощью [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) вы можете конвертировать презентацию PowerPoint PPT или PPTX в изображение JPG. Также возможно преобразовать PPT/PPTX в JPEG, PNG или SVG. Благодаря этим возможностям легко реализовать собственный просмотрщик презентаций, создать миниатюру для каждого слайда. Это может быть полезно, если вы хотите защитить слайды презентации от копирования, продемонстрировать презентацию в режиме только для чтения. Aspose.Slides позволяет конвертировать всю презентацию или отдельный слайд в форматы изображений. + +{{% alert color="primary" %}} + +Чтобы увидеть, как Aspose.Slides преобразует PowerPoint в изображения JPG, вы можете попробовать эти бесплатные онлайн‑конвертеры: PowerPoint [PPTX to JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) и [PPT to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg). + +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **Конвертировать PowerPoint PPT/PPTX в JPG** +Ниже перечислены шаги для преобразования PPT/PPTX в JPG: + +1. Создайте экземпляр типа [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите объект слайда типа [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) из коллекции [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--). +3. Создайте миниатюру каждого слайда и затем преобразуйте её в JPG. Метод [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) используется для получения миниатюры слайда, он возвращает объект [Imagess](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images). Метод [getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) должен вызываться у нужного слайда типа [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide), в метод передаются масштабы получаемой миниатюры. +4. После получения миниатюры слайда вызовите метод [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) у объекта миниатюры. Передайте в него полученное имя файла и формат изображения. + +{{% alert color="primary" %}} + +**Примечание**: Конвертация PPT/PPTX в JPG отличается от конвертации в другие типы в Aspose.Slides API. Для других типов обычно используется метод [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-), но здесь необходимо использовать метод [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)). + +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Создает изображение полного масштаба + var slideImage = sld.getImage(1.0, 1.0); + // Сохраняет изображение на диск в формате JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Конвертировать PowerPoint PPT/PPTX в JPG с пользовательскими размерами** +Чтобы изменить размеры получаемой миниатюры и JPG‑изображения, вы можете установить значения *ScaleX* и *ScaleY*, передавая их в методы [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-). + +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // Определяет размеры + var desiredX = 1200; + var desiredY = 800; + // Получает масштабированные значения X и Y + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // Создает изображение полного масштаба + var slideImage = sld.getImage(ScaleX, ScaleY); + // Сохраняет изображение на диск в формате JPEG + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Отображать комментарии при сохранении презентации в изображение** +Aspose.Slides for Node.js via Java предоставляет возможность отображать комментарии в слайдах презентации при их конвертации в изображения. Этот JavaScript‑код демонстрирует работу: + +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose предоставляет [БЕСПЛАТНОЕ веб‑приложение Collage](https://products.aspose.app/slides/collage). С помощью этого онлайн‑сервиса вы можете объединять изображения [JPG в JPG](https://products.aspose.app/slides/collage/jpg) или PNG в PNG, создавать [фото‑решётки](https://products.aspose.app/slides/collage/photo-grid) и т.д. + +Используя те же принципы, описанные в этой статье, вы можете конвертировать изображения из одного формата в другой. Для получения дополнительной информации см. эти страницы: конвертировать [image to JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); конвертировать [JPG to image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); конвертировать [JPG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), конвертировать [PNG to JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); конвертировать [PNG to SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), конвертировать [SVG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +## **Смотрите также** + +Посмотрите другие варианты конвертации PPT/PPTX в изображение, такие как: + +- [Конвертация PPT/PPTX в SVG](/slides/ru/nodejs-java/render-a-slide-as-an-svg-image/). + +## **FAQ** + +**Поддерживает ли этот метод пакетную конвертацию?** + +Да, Aspose.Slides позволяет выполнять пакетную конвертацию нескольких слайдов в JPG за одну операцию. + +**Поддерживает ли конвертация SmartArt, диаграммы и другие сложные объекты?** + +Да, Aspose.Slides рендерит всё содержание, включая SmartArt, диаграммы, таблицы, фигуры и др. Однако точность рендеринга может немного отличаться от PowerPoint, особенно при использовании пользовательских или отсутствующих шрифтов. + +**Есть ли ограничения на количество обрабатываемых слайдов?** + +Сам Aspose.Slides не накладывает строгих ограничений на количество обрабатываемых слайдов. Однако при работе с большими презентациями или изображениями высокого разрешения может возникнуть ошибка нехватки памяти. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..1f042f9cfa --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,120 @@ +--- +title: Конвертировать PowerPoint в Markdown на JavaScript +type: docs +weight: 140 +url: /ru/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "Конвертировать PowerPoint в Markdown, Конвертировать ppt в md, PowerPoint, PPT, PPTX, Презентация, Markdown, Java, Aspose.Slides for Node.js via Java" +description: "Конвертировать PowerPoint в Markdown на JavaScript" +--- + +{{% alert color="info" %}} + +Поддержка конвертации PowerPoint в markdown реализована в [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/). + +{{% /alert %}} + +{{% alert color="warning" %}} + +Экспорт PowerPoint в markdown **по умолчанию без изображений**. Если нужно экспортировать документ PowerPoint с изображениями, вызовите `markdownSaveOptions.setExportType(MarkdownExportType.Visual)` и также задайте `BasePath`, куда будут сохраняться изображения, используемые в markdown‑документе. + +{{% /alert %}} + +## **Конвертация PowerPoint в Markdown** + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) для представления объекта презентации. +2. Используйте метод [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) для сохранения объекта в файл markdown. + +Этот JavaScript‑код демонстрирует, как конвертировать PowerPoint в markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Конвертация PowerPoint в различные варианты markdown** + +Aspose.Slides позволяет конвертировать PowerPoint в markdown (с базовым синтаксисом), CommonMark, GitHub‑flavored markdown, Trello, XWiki, GitLab и ещё 17 вариантов markdown. + +Этот JavaScript‑код показывает, как конвертировать PowerPoint в CommonMark: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +23 поддерживаемых варианта markdown перечислены в [перечислении Flavor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) класса [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/). + +## **Конвертация презентации с изображениями в Markdown** + +Класс [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) предоставляет свойства и перечисления, позволяющие задать параметры для результирующего markdown‑файла. Перечисление [MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/) может принимать значения, определяющие способ обработки изображений: `Sequential`, `TextOnly`, `Visual`. + +### **Последовательная конвертация изображений** + +Если требуется, чтобы изображения появлялись по одному в результирующем markdown, выберите вариант `Sequential`. Этот JavaScript‑код демонстрирует, как конвертировать презентацию с изображениями в markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Визуальная конвертация изображений** + +Если нужно, чтобы изображения отображались вместе в результирующем markdown, выберите вариант `Visual`. В этом случае изображения сохраняются в текущий каталог приложения (и в markdown‑документе будет построен относительный путь), либо можно указать свой путь и имя папки. + +Этот JavaScript‑код демонстрирует процесс: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Сохраняются ли гиперссылки при экспорте в Markdown?** + +Да. Текстовые [гиперссылки](/slides/ru/nodejs-java/manage-hyperlinks/) сохраняются как обычные ссылки Markdown. [Переходы](/slides/ru/nodejs-java/slide-transition/) и [анимации](/slides/ru/nodejs-java/powerpoint-animation/) слайдов не конвертируются. + +**Можно ли ускорить конвертацию, запустив её в нескольких потоках?** + +Можно выполнять параллельную обработку файлов, но [не следует делить](/slides/ru/nodejs-java/multithreading/) один и тот же объект [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) между потоками. Используйте отдельные экземпляры или процессы для каждого файла, чтобы избежать конфликтов. + +**Что происходит с изображениями — где они сохраняются и являются ли пути относительными?** + +[Изображения](/slides/ru/nodejs-java/image/) экспортируются в отдельную папку, а markdown‑файл по умолчанию ссылается на них относительными путями. Можно настроить базовый путь вывода и имя папки ресурсов, чтобы обеспечить предсказуемую структуру репозитория. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..c2c4adb866 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,331 @@ +--- +title: Конвертировать PPT и PPTX в PDF на JavaScript [Включены расширенные функции] +linktitle: Конвертировать PPT и PPTX в PDF +type: docs +weight: 40 +url: /ru/nodejs-java/convert-powerpoint-to-pdf/ +keywords: + - конвертировать PowerPoint + - конвертировать презентацию + - PowerPoint в PDF + - презентация в PDF + - PPT в PDF + - конвертировать PPT в PDF + - PPTX в PDF + - конвертировать PPTX в PDF + - ODP в PDF + - конвертировать ODP в PDF + - сохранить PowerPoint как PDF + - PDF/A1a + - PDF/A1b + - PDF/UA + - JavaScript + - Node.js + - Aspose.Slides for Node.js via Java +description: "Узнайте, как конвертировать презентации PPT, PPTX и ODP в PDF на JavaScript с помощью Aspose.Slides. Реализуйте расширенные функции, такие как защита паролем, стандарты соответствия и пользовательские параметры для создания высококачественных доступных PDF-документов." +--- + +## **Обзор** + +Преобразование презентаций PowerPoint и OpenDocument (PPT, PPTX, ODP и др.) в формат PDF с помощью JavaScript предоставляет несколько преимуществ, включая совместимость на различных устройствах и сохранение макета и форматирования вашей презентации. В этом руководстве демонстрируется, как конвертировать презентации в документы PDF, использовать различные параметры для контроля качества изображений, включать скрытые слайды, защищать PDF паролем, обнаруживать замену шрифтов, выбирать определённые слайды для конвертации и применять стандарты соответствия к результирующим документам. + +## **Конвертация PowerPoint в PDF** + +С помощью Aspose.Slides вы можете преобразовать презентации следующих форматов в PDF: + +* **PPT** +* **PPTX** +* **ODP** + +Чтобы преобразовать презентацию в PDF, передайте имя файла в качестве аргумента классу [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) и затем сохраните презентацию как PDF, используя метод `save`. Класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) предоставляет метод `save`, который обычно используется для конвертации презентации в PDF. + +{{% alert title="NOTE" color="warning" %}} + +Aspose.Slides for Node.js via Java вставляет информацию о своей API и номер версии в выходные документы. Например, при конвертации презентации в PDF Aspose.Slides заполняет поле Application значением "*Aspose.Slides*", а поле PDF Producer значением в формате "*Aspose.Slides v XX.XX*". **Примечание**: вы не можете заставить Aspose.Slides изменить или удалить эту информацию из выходных документов. + +{{% /alert %}} + +Aspose.Slides позволяет вам конвертировать: + +* Полные презентации в PDF +* Определённые слайды из презентации в PDF + +Aspose.Slides экспортирует презентации в PDF, обеспечивая тесное соответствие полученных PDF оригинальным презентациям. Элементы и атрибуты отображаются точно при конвертации, включая: + +* Изображения +* Текстовые поля и фигуры +* Форматирование текста +* Форматирование абзацев +* Гиперссылки +* Колонтитулы +* Маркеры +* Таблицы + +## **Конвертировать PowerPoint в PDF** + +Стандартный процесс конвертации PowerPoint в PDF использует параметры по умолчанию. В этом случае Aspose.Slides пытается преобразовать предоставленную презентацию в PDF, используя оптимальные настройки с максимальными уровнями качества. + +Этот код демонстрирует, как конвертировать презентацию (PPT, PPTX, ODP и др.) в PDF: +```js +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // Сохраните презентацию в формате PDF. + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} + +Aspose предлагает бесплатный онлайн [**конвертер PowerPoint в PDF**](https://products.aspose.app/slides/conversion/ppt-to-pdf), который демонстрирует процесс конвертации презентации в PDF. Вы можете выполнить тест с этим конвертером для живой реализации описанной здесь процедуры. + +{{% /alert %}} + +## **Конвертировать PowerPoint в PDF с параметрами** + +Aspose.Slides предоставляет пользовательские параметры — свойства класса [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/), которые позволяют настроить полученный PDF, защитить PDF паролем или указать, как должен выполняться процесс конвертации. + +### **Конвертировать PowerPoint в PDF с пользовательскими параметрами** + +Используя пользовательские параметры конвертации, вы можете задать предпочтительные настройки качества растровых изображений, указать способ обработки метафайлов, установить уровень сжатия текста, настроить DPI для изображений и многое другое. + +Пример кода ниже демонстрирует, как конвертировать презентацию PowerPoint в PDF с несколькими пользовательскими параметрами. +```js +// Создайте экземпляр класса PdfOptions. +let pdfOptions = new aspose.slides.PdfOptions(); + +// Установите качество JPG‑изображений. +pdfOptions.setJpegQuality(java.newByte(90)); + +// Установите DPI для изображений. +pdfOptions.setSufficientResolution(300); + +// Установите поведение для метафайлов. +pdfOptions.setSaveMetafilesAsPng(true); + +// Установите уровень сжатия текста для текстового содержания. +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// Определите режим соответствия PDF. +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Сохраните презентацию как PDF‑документ. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Конвертировать PowerPoint в PDF с учётом скрытых слайдов** + +Если презентация содержит скрытые слайды, вы можете использовать метод [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) класса [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), чтобы включить скрытые слайды в качестве страниц в результирующий PDF. + +Этот JavaScript код показывает, как конвертировать презентацию PowerPoint в PDF с включёнными скрытыми слайдами: +```js +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Создайте экземпляр класса PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Добавьте скрытые слайды. + pdfOptions.setShowHiddenSlides(true); + + // Сохраните презентацию как PDF. + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Конвертировать PowerPoint в PDF, защищённый паролем** + +Этот JavaScript код демонстрирует, как конвертировать презентацию PowerPoint в PDF, защищённый паролем, используя параметры защиты из класса [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions): +```js +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Создайте экземпляр класса PdfOptions. + let pdfOptions = new aspose.slides.PdfOptions(); + + // Установите пароль PDF и разрешения доступа. + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // Сохраните презентацию как PDF. + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **Обнаружение замены шрифтов** + +Aspose.Slides предоставляет метод [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) в классе [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), позволяющий обнаруживать замену шрифтов во время процесса конвертации презентации в PDF. + +Этот JavaScript код показывает, как обнаружить замену шрифтов: +```js +// Установите обратный вызов предупреждений в параметрах PDF. +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// Сохраните презентацию как PDF. +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} + +Для получения дополнительной информации о получении обратных вызовов при замене шрифтов во время процесса рендеринга см. [Получение обратных вызовов при замене шрифтов](/slides/ru/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/). + +Для получения более подробной информации о замене шрифтов см. статью [Font Substitution](/slides/ru/nodejs-java/font-substitution/). + +{{% /alert %}} + +## **Конвертировать выбранные слайды PowerPoint в PDF** + +Этот JavaScript код демонстрирует, как конвертировать только определённые слайды из презентации PowerPoint в PDF: +```js +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // Установите массив номеров слайдов. + let slides = java.newArray("int", [1, 3]); + + // Сохраните презентацию как PDF. + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **Конвертировать PowerPoint в PDF с пользовательским размером слайда** + +Этот JavaScript код демонстрирует, как конвертировать презентацию PowerPoint в PDF с заданным размером слайда: +```js +const slideWidth = 612; +const slideHeight = 792; + +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// Создайте новую презентацию с изменённым размером слайда. +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // Установите пользовательский размер слайда. + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // Клонируйте первый слайд из исходной презентации. + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // Сохраните изменённую презентацию в PDF с заметками. + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **Конвертировать PowerPoint в PDF в режиме слайдов заметок** + +Этот JavaScript код демонстрирует, как конвертировать презентацию PowerPoint в PDF, включающий заметки: +```js +// Создайте экземпляр класса Presentation, который представляет файл PowerPoint или OpenDocument. +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // Настройте параметры PDF с разметкой заметок. + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // Сохраните презентацию в PDF с заметками. + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Стандарты доступности и соответствия PDF** + +Aspose.Slides позволяет использовать процедуру конвертации, соответствующую [Руководствам по доступности веб‑контента (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html). Вы можете экспортировать документ PowerPoint в PDF, используя любые из этих стандартов соответствия: **PDF/A1a**, **PDF/A1b** и **PDF/UA**. + +Этот JavaScript код демонстрирует процесс конвертации PowerPoint в PDF, который создаёт несколько PDF‑файлов в соответствии с различными стандартами соответствия: +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Note" color="warning" %}} + +Aspose.Slides поддерживает операции конвертации PDF, позволяя преобразовывать файлы PDF в популярные форматы. Вы можете выполнить конвертации [PDF в HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/), [PDF в JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/), и [PDF в PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/). Другие операции конвертации PDF в специализированные форматы — [PDF в SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/), [PDF в TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/) — также поддерживаются. + +{{% /alert %}} + +## **FAQ** + +**Можно ли конвертировать несколько файлов PowerPoint в PDF пакетно?** + +Да, Aspose.Slides поддерживает пакетную конвертацию нескольких файлов PPT или PPTX в PDF. Вы можете перебрать ваши файлы и программно применить процесс конвертации. + +**Можно ли защитить полученный PDF паролем?** + +Конечно. Используйте класс [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), чтобы установить пароль и определить разрешения доступа во время процесса конвертации. + +**Как включить скрытые слайды в PDF?** + +Используйте метод `setShowHiddenSlides` в классе [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), чтобы включить скрытые слайды в результирующий PDF. + +**Может ли Aspose.Slides сохранять высокое качество изображений в PDF?** + +Да, вы можете контролировать качество изображений, используя методы, такие как `setJpegQuality` и `setSufficientResolution`, в классе [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions), чтобы обеспечить высококачественные изображения в вашем PDF. + +**Поддерживает ли Aspose.Slides стандарты соответствия PDF/A?** + +Да, Aspose.Slides позволяет экспортировать PDF, соответствующие различным стандартам, включая PDF/A1a, PDF/A1b и PDF/UA, гарантируя, что ваши документы соответствуют требованиям доступности и архивирования. + +## **Дополнительные ресурсы** + +- [Документация Aspose.Slides для Node.js через Java](/slides/ru/nodejs-java/) +- [Справочник API Aspose.Slides для Node.js через Java](https://reference.aspose.com/slides/nodejs-java/) +- [Бесплатные онлайн‑конвертеры Aspose](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..f51ea511c4 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,119 @@ +--- +title: Преобразовать PowerPoint в PNG +type: docs +weight: 30 +url: /ru/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint to PNG, PPT to PNG, PPTX to PNG, java, Aspose.Slides для Node.js через Java +description: Преобразовать презентацию PowerPoint в PNG +--- + +## **О преобразовании PowerPoint в PNG** + +Формат PNG (Portable Network Graphics) не так популярен, как JPEG (Joint Photographic Experts Group), но всё равно очень популярен. + +**Случай использования:** Когда у вас сложное изображение и размер не имеет значения, PNG — лучший формат изображения, чем JPEG. + +{{% alert title="Tip" color="primary" %}} Возможно, вам стоит взглянуть на бесплатные конвертеры Aspose **PowerPoint в PNG**: [PPTX to PNG](https://products.aspose.app/slides/conversion/pptx-to-png) и [PPT to PNG](https://products.aspose.app/slides/conversion/ppt-to-png). Это живой пример реализации процесса, описанного на этой странице. {{% /alert %}} + +## **Преобразовать PowerPoint в PNG** + +Пройдите следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите объект слайда из коллекции, возвращаемой методом [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) класса [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide). +3. Воспользуйтесь методом [Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) для получения миниатюры каждого слайда. +4. Используйте метод [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) для сохранения миниатюры слайда в формате PNG. + +Этот код на JavaScript демонстрирует, как конвертировать презентацию PowerPoint в PNG: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать PowerPoint в PNG с пользовательскими размерами** + +Если вы хотите получить PNG‑файлы определённого масштаба, вы можете задать значения `desiredX` и `desiredY`, которые определяют размеры получаемой миниатюры. + +Этот код на JavaScript демонстрирует описанную операцию: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразовать PowerPoint в PNG с пользовательским размером** + +Если вы хотите получить PNG‑файлы определённого размера, вы можете передать желаемые аргументы `width` и `height` для `ImageSize`. + +Этот код показывает, как конвертировать PowerPoint в PNG, задавая размер изображений: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Как экспортировать только конкретную форму (например, диаграмму или изображение), а не весь слайд?** + +Aspose.Slides поддерживает [создание миниатюр отдельных фигур](/slides/ru/nodejs-java/create-shape-thumbnails/); вы можете отобразить форму в PNG‑изображение. + +**Поддерживается ли параллельное преобразование на сервере?** + +Да, но [не следует совместно использовать](/slides/ru/nodejs-java/multithreading/) один экземпляр презентации между потоками. Используйте отдельный экземпляр для каждого потока или процесса. + +**Каковы ограничения пробной версии при экспорте в PNG?** + +В режиме оценки к экспортируемым изображениям добавляется водяной знак, а также применяются [другие ограничения](/slides/ru/nodejs-java/licensing/) до установки лицензии. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..92a7376439 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,44 @@ +--- +title: Конвертировать PowerPoint в SWF Flash +type: docs +weight: 80 +url: /ru/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT, PPTX в SWF" +description: "Конвертировать PowerPoint PPT, PPTX в SWF в JavaScript" +--- + +## **Конвертировать PPT(X) в SWF** +Метод [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) может использоваться для преобразования всей презентации в документ **SWF**. В следующем примере показано, как конвертировать презентацию в документ **SWF**, используя параметры, предоставляемые классом [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions). Вы также можете включать комментарии в генерируемый SWF, используя класс [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) и класс [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions). +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // Сохранение презентации + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Можно ли включать скрытые слайды в SWF?** + +Да. Используйте метод [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) в классе [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/). По умолчанию скрытые слайды не экспортируются. + +**Как я могу контролировать сжатие и итоговый размер SWF?** + +Используйте метод [setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) и [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/), чтобы сбалансировать размер файла и качество изображений. + +**Для чего предназначен 'setViewerIncluded' и когда его следует использовать?** + +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) добавляет встроенный пользовательский интерфейс плеера (элементы навигации, панели, поиск). Используйте его, если планируете использовать свой собственный плеер или вам нужен чистый кадр SWF без UI. + +**Что происходит, если исходный шрифт отсутствует на машине экспорта?** + +Aspose.Slides заменит шрифт, указанный через [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) в классе [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/), чтобы избежать непреднамеренного отката. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..9237121ce5 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,92 @@ +--- +title: Преобразовать PowerPoint в TIFF с примечаниями в JavaScript +linktitle: PowerPoint в TIFF с примечаниями +type: docs +weight: 100 +url: /ru/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- преобразовать PowerPoint в TIFF +- преобразовать презентацию в TIFF +- преобразовать слайд в TIFF +- преобразовать PPT в TIFF +- преобразовать PPTX в TIFF +- преобразовать ODP в TIFF +- PowerPoint в TIFF +- презентация в TIFF +- слайд в TIFF +- PPT в TIFF +- PPTX в TIFF +- ODP в TIFF +- PowerPoint с примечаниями +- презентация с примечаниями +- слайд с примечаниями +- PPT с примечаниями +- PPTX с примечаниями +- ODP с примечаниями +- TIFF с примечаниями +- Node.js +- JavaScript +- Aspose.Slides +description: "Преобразуйте презентации PowerPoint и OpenDocument в TIFF с примечаниями с помощью Aspose.Slides для Node.js через Java. Узнайте, как эффективно экспортировать слайды с заметками докладчика." +--- + +## **Обзор** + +Aspose.Slides for Node.js via Java предоставляет простое решение для преобразования презентаций PowerPoint и OpenDocument (PPT, PPTX и ODP) с примечаниями в формат TIFF. Этот формат широко используется для хранения изображений высокого качества, печати и архивирования документов. С Aspose.Slides вы можете не только экспортировать целые презентации с заметками докладчика, но и создавать миниатюры слайдов в представлении Notes Slide. Процесс конвертации прост и эффективен, используя метод `save` класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) для преобразования всей презентации в серию TIFF‑изображений с сохранением примечаний и компоновки. + +## **Преобразовать презентацию в TIFF с примечаниями** + +Сохранение презентации PowerPoint или OpenDocument в TIFF с примечаниями с помощью Aspose.Slides for Node.js via Java включает следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/): загрузите файл PowerPoint или OpenDocument. +1. Настройте параметры компоновки вывода: используйте класс [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/) для указания того, как должны отображаться примечания и комментарии. +1. Сохраните презентацию в TIFF: передайте настроенные параметры методу [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save). + +Допустим, у нас есть файл "speaker_notes.pptx" со следующим слайдом: + +![Слайд презентации с примечаниями докладчика](slide_with_notes.png) + +Приведенный ниже фрагмент кода демонстрирует, как преобразовать презентацию в TIFF‑изображение в режиме Notes Slide с использованием метода [setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions). + +```js +// Создать экземпляр класса Presentation, который представляет файл презентации. +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // Отображать примечания под слайдом. + + // Настроить параметры TIFF с компоновкой заметок. + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Сохранить презентацию в TIFF с примечаниями докладчика. + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +Результат: + +![TIFF‑изображение с примечаниями докладчика](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} +Посмотрите бесплатный конвертер Aspose [Free PowerPoint to Poster Converter](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online). +{{% /alert %}} + +## **FAQ** + +**Могу ли я управлять положением области примечаний в полученном TIFF?** + +Да. Используйте [настройки компоновки заметок](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions), чтобы выбрать один из вариантов, таких как `None`, `BottomTruncated` или `BottomFull`, которые соответственно скрывают заметки, помещают их на одну страницу или позволяют им переноситься на дополнительные страницы. + +**Как уменьшить размер TIFF‑файла с примечаниями без заметной потери качества?** + +Выберите [эффективное сжатие](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/) (например, `LZW` или `RLE`), установите разумное значение DPI и, если приемлемо, используйте более низкий [формат пикселей](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/) (например, 8 bpp или 1 bpp для монохромных изображений). Незначительное уменьшение [размеров изображения](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) также может помочь, не заметно ухудшая читаемость. + +**Влияет ли шрифт в примечаниях на результат, если оригинальные шрифты отсутствуют в системе?** + +Да. Отсутствующие шрифты вызывают [замену](/slides/ru/nodejs-java/font-selection-sequence/), что может изменить метрики и внешний вид текста. Чтобы избежать этого, [предоставьте необходимые шрифты](/slides/ru/nodejs-java/custom-font/) или задайте шрифт‑запасной вариант [fallback font](/slides/ru/nodejs-java/fallback-font/), чтобы использовались требуемые типы шрифтов. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..a0f3a0434e --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,160 @@ +--- +title: Преобразование презентаций PowerPoint в TIFF на JavaScript +titlelink: PowerPoint в TIFF +type: docs +weight: 90 +url: /ru/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- конвертировать PowerPoint +- конвертировать OpenDocument +- конвертировать презентацию +- конвертировать слайд +- PowerPoint в TIFF +- OpenDocument в TIFF +- презентация в TIFF +- слайд в TIFF +- PPT в TIFF +- PPTX в TIFF +- ODP в TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "Узнайте, как легко преобразовать презентации PowerPoint (PPT, PPTX) и OpenDocument (ODP) в изображения высокого качества TIFF, используя Aspose.Slides для Node.js через Java. Пошаговое руководство с примерами кода." +--- + +## **Обзор** + +TIFF (**Tagged Image File Format**) — это широко используемый без потерь растровый формат изображений, известный своим исключительным качеством и детальным сохранением графики. Дизайнеры, фотографы и настольные издатели часто выбирают TIFF для сохранения слоёв, точности цветов и оригинальных настроек изображений. + +С помощью Aspose.Slides вы можете без труда преобразовать свои презентации PowerPoint (PPT, PPTX) и слайды OpenDocument (ODP) непосредственно в изображения TIFF высокого качества, обеспечивая максимальное сохранение визуальной точности ваших презентаций. + +## **Преобразование презентации в TIFF** + +Используя метод [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-) , предоставленный классом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) , вы можете быстро преобразовать всю презентацию PowerPoint в TIFF. Полученные изображения TIFF соответствуют размеру слайда по умолчанию. + +```js +// Создайте экземпляр класса Presentation, представляющего файл презентации (PPT, PPTX, ODP и т.д.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // Сохраните презентацию в формате TIFF. + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **Конвертация презентации в черно‑белый TIFF** + +Метод [setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) в классе [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) позволяет задать алгоритм, используемый при преобразовании цветного слайда или изображения в черно‑белый TIFF. Обратите внимание, что эта настройка применяется только тогда, когда метод [setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) установлен в значение `CCITT4` или `CCITT3`. + +Предположим, у нас есть файл "sample.pptx" со следующим слайдом: + +![Слайд презентации](slide_black_and_white.png) + +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +Результат: + +![Черно‑белый TIFF](TIFF_black_and_white.png) + +## **Преобразование презентации в TIFF с пользовательским размером** + +Если вам требуется изображение TIFF с определёнными размерами, вы можете задать нужные значения с помощью методов, доступных в классе [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/). Например, метод [setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize) позволяет определить размер получаемого изображения. + +```js +// Создайте экземпляр класса Presentation, представляющего файл презентации (PPT, PPTX, ODP и т.д.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // Установите тип компрессии. + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + Типы компрессии: + Default - Указывает схему компрессии по умолчанию (LZW). + None - Не использует компрессию. + CCITT3 + CCITT4 + LZW + RLE + */ + + // Глубина зависит от типа компрессии и не может быть задана вручную. + + // Установите DPI изображения. + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // Установите размер изображения. + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // Сохраните презентацию в формате TIFF с указанным размером. + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **Преобразование презентации в TIFF с пользовательским форматом пикселей изображения** + +С помощью метода [setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) класса [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) вы можете указать предпочтительный формат пикселей для получаемого изображения TIFF. + +```js +// Создайте экземпляр класса Presentation, представляющего файл презентации (PPT, PPTX, ODP и т.д.). +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat содержит следующие значения (как указано в документации): + Format1bppIndexed - 1 бит на пиксель, индексированный. + Format4bppIndexed - 4 бита на пиксель, индексированный. + Format8bppIndexed - 8 бит на пиксель, индексированный. + Format24bppRgb - 24 бита на пиксель, RGB. + Format32bppArgb - 32 бита на пиксель, ARGB. + */ + + /// Сохраните презентацию в формате TIFF с указанным размером изображения. + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Tip" color="primary" %}} +Ознакомьтесь с [БЕСПЛАТНЫМ конвертером PowerPoint в постер](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online) от Aspose. +{{% /alert %}} + +## **FAQ** + +**Могу ли я конвертировать отдельный слайд, а не всю презентацию PowerPoint, в TIFF?** + +Да. Aspose.Slides позволяет конвертировать отдельные слайды из презентаций PowerPoint и OpenDocument в изображения TIFF отдельно. + +**Есть ли ограничение на количество слайдов при конвертации презентации в TIFF?** + +Нет, Aspose.Slides не накладывает ограничений на количество слайдов. Вы можете конвертировать презентации любого объёма в формат TIFF. + +**Сохраняются ли анимации и переходы PowerPoint при конвертации слайдов в TIFF?** + +Нет, TIFF — статический формат изображения. Поэтому анимации и эффекты переходов не сохраняются; экспортируются только статические снимки слайдов. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..3fd87b7b48 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,270 @@ +--- +title: Преобразовать PowerPoint в видео +type: docs +weight: 130 +url: /ru/nodejs-java/convert-powerpoint-to-video/ +keywords: "Конвертировать PowerPoint, PPT, PPTX, Презентация, Видео, MP4, PPT в видео, PPT в MP4, Java, Aspose.Slides" +description: "Конвертировать PowerPoint в видео с помощью JavaScript" +--- + +Преобразуя вашу презентацию PowerPoint в видео, вы получаете + +* **Повышение доступности:** Все устройства (независимо от платформы) по умолчанию оснащены видеоплеерами, в отличие от приложений для открытия презентаций, поэтому пользователям проще открывать или воспроизводить видео. +* **Больший охват:** С помощью видео вы можете достичь широкой аудитории и предоставить им информацию, которая иначе могла бы показаться скучной в презентации. Большинство опросов и статистических данных свидетельствуют, что люди смотрят и потребляют видео чаще, чем другие формы контента, и обычно предпочитают такой контент. + +{{% alert color="primary" %}} + +Возможно, вам стоит ознакомиться с нашим [**Онлайн-конвертером PowerPoint в видео**](https://products.aspose.app/slides/conversion/ppt-to-word), так как это живой и эффективный пример реализации описанного процесса. + +{{% /alert %}} + +## **Преобразование PowerPoint в видео в Aspose.Slides** + +В [Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/) мы внедрили поддержку преобразования презентаций в видео. + +* Используйте **Aspose.Slides** для генерации набора кадров (из слайдов презентации), соответствующих определённому FPS (кадров в секунду) +* Используйте стороннюю утилиту, такую как **ffmpeg** ([для java](https://github.com/bramp/ffmpeg-cli-wrapper)), чтобы создать видео на основе этих кадров. + +### **Преобразовать PowerPoint в видео** + +1. Скачайте ffmpeg [здесь](https://ffmpeg.org/download.html). +2. Запустите JavaScript‑код преобразования PowerPoint в видео. + +Этот JavaScript‑код демонстрирует, как преобразовать презентацию (с рисунком и двумя эффектами анимации) в видео: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Добавляет форму улыбки и затем анимирует её + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // Настройте папку с бинарниками ffmpeg. См. эту страницу: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **Эффекты видео** + +Вы можете применять анимацию к объектам на слайдах и использовать переходы между слайдами. + +{{% alert color="primary" %}} + +Вам может быть интересно ознакомиться со следующими статьями: [PowerPoint Animation](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/), [Shape Animation](https://docs.aspose.com/slides/nodejs-java/shape-animation/), и [Shape Effect](https://docs.aspose.com/slides/nodejs-java/shape-effect/). + +{{% /alert %}} + +Анимации и переходы делают презентации более увлекательными и интересными — и то же самое происходит с видео. Добавим ещё один слайд и переход в код предыдущей презентации: +```javascript +// Добавляет форму улыбки и анимирует её +// ... +// Добавляет новый слайд и анимированный переход +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +## **Классы преобразования видео** + +Для выполнения задач по преобразованию PowerPoint в видео Aspose.Slides предоставляет классы [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) и [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). + +[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) позволяет задать размер кадра для будущего видео через конструктор. Если передать экземпляр презентации, будет использован `Presentation.getSlideSize`, и он генерирует анимации, которые использует [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). + +При генерации анимаций для каждой последующей анимации создаётся событие `NewAnimation`, которому передаётся параметр [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/). Последний представляет собой класс, отвечающий за воспроизведение отдельной анимации. + +Для работы с [PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/) используются метод [getDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#getDuration--) (полная продолжительность анимации) и метод [setTimePosition](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#setTimePosition-double-). Позиция каждой анимации задаётся в диапазоне от *0 до duration*, после чего метод `getFrame` возвращает BufferedImage, соответствующее состоянию анимации в данный момент: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Добавляет форму улыбки и анимирует её + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// начальное состояние анимации + try { + // битмап начального состояния анимации + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// конечное состояние анимации + try { + // последний кадр анимации + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Чтобы все анимации в презентации воспроизводились одновременно, используется класс [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/). Этот класс принимает экземпляр [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) и FPS для эффектов в конструкторе, а затем вызывает событие `FrameTick` для всех анимаций, чтобы они запустились: +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Затем сгенерированные кадры могут быть скомпилированы в видео. См. раздел [Convert PowerPoint to Video](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video). + +## **Поддерживаемые анимации и эффекты** + +**Вход**: + +| Тип анимации | Aspose.Slides | PowerPoint | +|---|---|---| +| **Appear** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Fade** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Fly In** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Float In** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Split** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Wipe** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Shape** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Wheel** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Random Bars** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Grow & Turn** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Zoom** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Swivel** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Bounce** | ![поддерживается](v.png) | ![поддерживается](v.png) | + +**Акцент**: + +| Тип анимации | Aspose.Slides | PowerPoint | +|---|---|---| +| **Pulse** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Color Pulse** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Teeter** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Spin** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Grow/Shrink** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Desaturate** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Darken** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Lighten** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Transparency** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Object Color** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Complementary Color** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Line Color** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Fill Color** | ![не поддерживается](x.png) | ![поддерживается](v.png) | + +**Выход**: + +| Тип анимации | Aspose.Slides | PowerPoint | +|---|---|---| +| **Disappear** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Fade** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Fly Out** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Float Out** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Split** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Wipe** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Shape** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Random Bars** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Shrink & Turn** | ![не поддерживается](x.png) | ![поддерживается](v.png) | +| **Zoom** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Swivel** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Bounce** | ![поддерживается](v.png) | ![поддерживается](v.png) | + +**Пути движения:** + +| Тип анимации | Aspose.Slides | PowerPoint | +|---|---|---| +| **Lines** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Arcs** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Turns** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Shapes** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Loops** | ![поддерживается](v.png) | ![поддерживается](v.png) | +| **Custom Path** | ![поддерживается](v.png) | ![поддерживается](v.png) | + +## **Часто задаваемые вопросы** + +**Можно ли конвертировать презентации, защищённые паролем?** + +Да, Aspose.Slides поддерживает работу с презентациями, защищёнными паролем. При обработке таких файлов необходимо указать правильный пароль, чтобы библиотека могла получить доступ к содержимому презентации. + +**Поддерживает ли Aspose.Slides использование в облачных решениях?** + +Да, Aspose.Slides можно интегрировать в облачные приложения и сервисы. Библиотека разработана для работы в серверных средах, обеспечивая высокую производительность и масштабируемость при пакетной обработке файлов. + +**Есть ли ограничения по размеру презентаций при конвертации?** + +Aspose.Slides способен обрабатывать презентации практически любого размера. Тем не менее, при работе с очень большими файлами могут потребоваться дополнительные системные ресурсы, и иногда рекомендуется оптимизировать презентацию для повышения производительности. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..8f7c305e2a --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,94 @@ +--- +title: Конвертировать PowerPoint в XPS +type: docs +weight: 70 +url: /ru/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX в XPS" +description: "Конвертировать PowerPoint PPT(X) в XPS на JavaScript" +--- + +## **О XPS** + +Microsoft разработала [XPS](https://docs.fileformat.com/page-description-language/xps/) как альтернативу [PDF](https://docs.fileformat.com/pdf/). Он позволяет печатать контент, выводя файл, очень похожий на PDF. Формат XPS основан на XML. Макет или структура файла XPS остаются одинаковыми на всех операционных системах и принтерах. + +## **Когда использовать формат Microsoft XPS** + +{{% alert color="primary" %}} + +Чтобы увидеть, как Aspose.Slides преобразует презентацию PPT или PPTX в формат XPS, вы можете посмотреть [это бесплатное онлайн‑приложение конвертера](https://products.aspose.app/slides/conversion). + +{{% /alert %}} + +Если вы хотите сократить затраты на хранение, вы можете преобразовать вашу презентацию Microsoft PowerPoint в формат XPS. Так вам будет проще сохранять, делиться и печатать документы. + +Microsoft продолжает активно поддерживать XPS в Windows (даже в Windows 10), поэтому вам может быть полезно сохранять файлы в этом формате. Если вы работаете с Windows 8.1, Windows 8, Windows 7 и Windows Vista, то XPS может быть лучшим вариантом для некоторых операций. + +- **Windows 8** использует формат OXPS (Open XPS) для файлов XPS. OXPS — стандартизированная версия оригинального формата XPS. Windows 8 обеспечивает лучшую поддержку файлов XPS, чем файлов PDF. + - **XPS:** Встроенный просмотрщик/читалка XPS и возможность печати в XPS доступны. + - **PDF**: Доступен PDF‑просмотрщик, но нет функции печати в PDF. + +- **Windows 7 и Windows Vista** используют оригинальный формат XPS. Эти операционные системы также обеспечивают лучшую поддержку файлов XPS, чем PDF. + - **XPS**: Встроенный просмотрщик XPS и возможность печати в XPS доступны. + - **PDF**: Нет PDF‑просмотрщика. Нет функции печати в PDF. + +|

**Ввод PPT(X):

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**Вывод XPS:

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| +| :- | :- | + +Microsoft со временем реализовала поддержку печати в PDF через функцию Печать в PDF в Windows 10. Ранее пользователи могли печатать документы только через формат XPS. + +## **Преобразование XPS с помощью Aspose.Slides** + +В [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) вы можете использовать метод [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-), предоставляемый классом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), чтобы преобразовать всю презентацию в документ XPS. + +При преобразовании презентации в XPS необходимо сохранять презентацию, используя один из следующих вариантов настроек: + +- Настройки по умолчанию (без [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) +- Пользовательские настройки (с [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) + +### **Преобразование презентаций в XPS с использованием настроек по умолчанию** + +Этот пример кода на JavaScript демонстрирует, как преобразовать презентацию в документ XPS, используя стандартные настройки: +```javascript +// Создать объект Presentation, который представляет файл презентации +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // Сохранение презентации в документ XPS + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Преобразование презентаций в XPS с использованием пользовательских настроек** + +Этот пример кода показывает, как преобразовать презентацию в документ XPS, используя пользовательские настройки в JavaScript: +```javascript +// Создать объект Presentation, который представляет файл презентации +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // Создать объект класса XpsOptions + var options = new aspose.slides.XpsOptions(); + // Сохранить метафайлы как PNG + options.setSaveMetafilesAsPng(true); + // Сохранить презентацию в документ XPS + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Можно ли сохранять XPS в поток вместо файла?** + +Да — Aspose.Slides позволяет экспортировать напрямую в поток, что идеально подходит для веб‑API, серверных конвейеров или любых сценариев, где требуется передать XPS без обращения к файловой системе. + +**Переносятся ли скрытые слайды в XPS и можно ли их исключить?** + +По умолчанию рендерятся только обычные (видимые) слайды. Вы можете [включать или исключать скрытые слайды](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/) через [настройки экспорта](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/) перед сохранением в XPS, гарантируя, что результат будет содержать именно те страницы, которые вы планируете. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..7ba107212d --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,101 @@ +--- +title: Преобразовать PPT в PPTX в JavaScript +linktitle: Преобразовать PPT в PPTX +type: docs +weight: 20 +url: /ru/nodejs-java/convert-ppt-to-pptx/ +keywords: "Java преобразование PPT в PPTX, PowerPoint PPT в PPTX на JavaScript" +description: "Конвертировать PowerPoint PPT в PPTX с помощью JavaScript." +--- + +## **Обзор** + +Эта статья объясняет, как преобразовать презентацию PowerPoint в формате PPT в формат PPTX с использованием JavaScript и онлайн‑приложения для конвертации PPT в PPTX. Рассмотрены следующие темы. + +- Convert PPT to PPTX in JavaScript + +## **Java Convert PPT to PPTX** + +Для примера кода JavaScript, преобразующего PPT в PPTX, смотрите раздел ниже, а именно [Convert PPT to PPTX](#convert-ppt-to-pptx). Он просто загружает файл PPT и сохраняет в формате PPTX. Указывая различные форматы сохранения, вы также можете сохранять файл PPT в многих других форматах, таких как PDF, XPS, ODP, HTML и т.д., как обсуждается в этих статьях. + +- [Java Convert PPT to PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java Convert PPT to XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java Convert PPT to HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java Convert PPT to ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java Convert PPT to Image](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **About PPT to PPTX Conversion** +Преобразуйте старый формат PPT в PPTX с помощью Aspose.Slides API. Если вам необходимо конвертировать тысячи презентаций PPT в формат PPTX, лучшим решением будет программный подход. С Aspose.Slides API это можно сделать всего в несколько строк кода. API поддерживает полную совместимость при конвертации презентаций PPT в PPTX и позволяет: + +- Преобразовывать сложные структуры шаблонов, макетов и слайдов. +- Преобразовывать презентацию с диаграммами. +- Преобразовывать презентацию с групповыми фигурами, автофигурой (например, прямоугольниками и эллипсами), фигурами с пользовательской геометрией. +- Преобразовывать презентацию с текстурами и изображениями, используемыми для заливки автофигур. +- Преобразовывать презентацию с заполнителями, текстовыми кадрами и текстовыми объектами. + +{{% alert color="primary" %}} + +Посмотрите приложение **Aspose.Slides PPT to PPTX Conversion**: + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +Это приложение построено на основе **Aspose.Slides API**, поэтому вы можете увидеть работающий пример базовых возможностей конвертации PPT в PPTX. Aspose.Slides Conversion — веб‑приложение, позволяющее перетащить файл презентации в формате PPT и загрузить его после конвертации в PPTX. + +Найдите другие живые **Aspose.Slides Conversion** примеры. +{{% /alert %}} + +## **Convert PPT to PPTX** +Aspose.Slides for Node.js via Java теперь позволяет разработчикам получать доступ к PPT с помощью [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) класса и преобразовывать его в соответствующий [PPTX](https://docs.fileformat.com/presentation/pptx/) формат. В настоящее время поддерживается частичная конвертация [PPT](https://docs.fileformat.com/presentation/ppt/) в PPTX. Для получения более подробной информации о поддерживаемых и неподдерживаемых функциях конвертации PPT в PPTX перейдите к этой документации [link](/slides/ru/nodejs-java/ppt-to-pptx-conversion/). + +Aspose.Slides for Node.js via Java предлагает класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation), который представляет файл презентации **PPTX**. Класс Presentation теперь также может получать доступ к **PPT** через Presentation при создании объекта. В следующем примере показано, как преобразовать презентацию PPT в PPTX Presentation. +```javascript +// Создать объект Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // Сохранение презентации PPTX в формате PPTX + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**Рисунок: Исходная презентация PPT**| + +The above code snippet generated the following PPTX presentation after conversion + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**Рисунок: Сгенерированная презентация PPTX после конвертации**| + +## **FAQ** + +**What is the difference between PPT and PPTX formats?** +**В чем разница между форматами PPT и PPTX?** +PPT — это старый двоичный формат файлов, используемый Microsoft PowerPoint, тогда как PPTX — более современный XML‑основанный формат, появившийся в Microsoft Office 2007. Файлы PPTX обеспечивают лучшую производительность, меньший размер и более эффективное восстановление данных. + +**Does Aspose.Slides support batch conversion of multiple PPT files to PPTX?** +**Поддерживает ли Aspose.Slides пакетную конвертацию нескольких файлов PPT в PPTX?** +Да, вы можете использовать Aspose.Slides в цикле для программной конвертации множества файлов PPT в PPTX, что делает его подходящим для пакетных сценариев. + +**Will the content and formatting be preserved after conversion?** +**Сохранится ли содержимое и форматирование после конвертации?** +Aspose.Slides сохраняет высокую точность при конвертации презентаций. Макеты слайдов, анимация, фигуры, диаграммы и другие элементы дизайна остаются неизменными при преобразовании PPT в PPTX. + +**Can I convert other formats like PDF or HTML from PPT files?** +**Могу ли я конвертировать другие форматы, такие как PDF или HTML, из файлов PPT?** +Да, Aspose.Slides поддерживает конвертацию файлов PPT в различные форматы, включая PDF, XPS, HTML, ODP и графические форматы, такие как PNG и JPEG. + +**Is it possible to convert PPT to PPTX without Microsoft PowerPoint installed?** +**Можно ли конвертировать PPT в PPTX без установленного Microsoft PowerPoint?** +Да, Aspose.Slides — это автономный API, который не требует установки Microsoft PowerPoint или стороннего программного обеспечения для выполнения конвертации. + +**Is there an online tool available for PPT to PPTX conversion?** +**Существует ли онлайн‑инструмент для конвертации PPT в PPTX?** +Да, вы можете использовать бесплатное веб‑приложение [Aspose.Slides PPT to PPTX Converter](https://products.aspose.app/slides/conversion/ppt-to-pptx) для выполнения конвертации прямо в браузере без написания кода. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..14e254650d --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: Конвертировать PPTX в PPT на JavaScript +linktitle: Конвертировать PPTX в PPT +type: docs +weight: 21 +url: /ru/nodejs-java/convert-pptx-to-ppt/ +keywords: "Java Конвертировать PPTX в PPT, Конвертировать презентацию PowerPoint, PPTX в PPT, Java, Aspose.Slides" +description: "Конвертировать PowerPoint PPTX в PPT на JavaScript" +--- + +## **Обзор** + +В этой статье объясняется, как с помощью JavaScript преобразовать презентацию PowerPoint в формате PPTX в формат PPT. Рассматривается следующая тема. + +- Конвертировать PPTX в PPT с помощью JavaScript + +## **Java Конвертировать PPTX в PPT** + +Для примера кода JavaScript, который конвертирует PPTX в PPT, см. раздел ниже [Convert PPTX to PPT](#convert-pptx-to-ppt). Он просто загружает файл PPTX и сохраняет его в формате PPT. Указывая различные форматы сохранения, вы также можете сохранить файл PPTX в many other formats like PDF, XPS, ODP, HTML etc. as discussed in these articles. + +- [Java Конвертировать PPTX в PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java Конвертировать PPTX в XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java Конвертировать PPTX в HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java Конвертировать PPTX в ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java Конвертировать PPTX в Image](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **Конвертировать PPTX в PPT** + +Чтобы конвертировать PPTX в PPT, просто передайте имя файла и формат сохранения методу **Save** класса [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). Пример кода JavaScript ниже конвертирует презентацию из PPTX в PPT, используя параметры по умолчанию. +```javascript +// создайте объект Presentation, который представляет файл PPTX +var presentation = new aspose.slides.Presentation("template.pptx"); +// сохраните презентацию в формате PPT +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **Часто задаваемые вопросы** + +**Все ли эффекты и функции PPTX сохраняются при сохранении в устаревший формат PPT (97–2003)?** + +Не всегда. Формат PPT не поддерживает некоторые новейшие возможности (например, определённые эффекты, объекты и поведения), поэтому функции могут быть упрощены или растрированы при конвертации. + +**Могу ли я конвертировать только выбранные слайды в PPT вместо всей презентации?** + +Прямое сохранение охватывает всю презентацию. Чтобы конвертировать определённые слайды, создайте новую презентацию, содержащую только эти слайды, и сохраните её как PPT; либо используйте сервис/API, поддерживающий параметры конвертации по отдельным слайдам. + +**Поддерживаются ли презентации, защищённые паролем?** + +Да. Вы можете определить, защищён ли файл паролем, открыть его с паролем и также [настроить параметры защиты/шифрования](/slides/ru/nodejs-java/password-protected-presentation/) для сохраняемого PPT. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..b1a210d151 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,63 @@ +--- +title: PPT vs PPTX +type: docs +weight: 10 +url: /ru/nodejs-java/ppt-vs-pptx/ +keywords: "PPT vs PPTX" +description: "Читайте о различиях между PPT и PPTX в Aspose.Slides." +--- + +## **Что такое PPT?** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) — это бинарный файловый формат, t.e. невозможно просмотреть его содержимое без специальных средств. Первые версии PowerPoint 97-2003 работали с форматом PPT, однако его расширяемость ограничена. + +## **Что такое PPTX?** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) — новый формат файлов презентаций, основанный на стандарте Office Open XML (ISO 29500:2008-2016, ECMA-376). PPTX представляет собой архивный набор XML-файлов и медиа-файлов. Формат PPTX легко расширяется. Например, легко добавить поддержку нового типа диаграмм или фигур, не изменяя формат PPTX в каждой новой версии PowerPoint. Формат PPTX используется, начиная с PowerPoint 2007. + +## **PPT vs PPTX** + +Хотя PPTX предоставляет гораздо более широкий набор функций, PPT остаётся довольно популярным. Необходимость конвертации из PPT в PPTX и обратно сильно востребована. + +Однако конвертация между старым форматом PPT и новым форматом PPTX является самой сложной задачей среди других форматов Microsoft Office. Несмотря на то, что спецификация формата PPT открыта, с ним трудно работать. PowerPoint может создавать специальные части (MetroBlob) в файлах PPT для хранения информации из PPTX, которая не поддерживается форматом PPT и не может быть отображена в старых версиях PowerPoint. Эта информация может быть восстановлена, когда файл PPT открывается в современной версии PowerPoint или конвертируется в формат PPTX. + +Aspose.Slides предоставляет общий класс для работы со всеми форматами презентаций. Он позволяет конвертировать из PPT в PPTX и из PPTX в PPT простым способом. Aspose.Slides полностью поддерживает конвертацию из PPT в PPTX, а также поддерживает конвертацию из PPTX в PPT с некоторыми ограничениями. Мы рекомендуем использовать формат PPTX, где это возможно. + +{{% alert color="primary" %}} +Проверьте качество конвертации PPT в PPTX и PPTX в PPT с помощью онлайн‑приложения [**Aspose.Slides Conversion app**](https://products.aspose.app/slides/conversion/). +{{% /alert %}} +```javascript +// Создать объект Presentation, который представляет файл PPT +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // Сохранение PPT-презентации в формат PPTX + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Подробнее [**Как конвертировать презентации PPT в PPTX**.](/slides/ru/nodejs-java/convert-ppt-to-pptx/) +{{% /alert %}} + +## **Вопросы и ответы** + +**Есть ли смысл сохранять старые презентации в PPT, если они открываются без ошибок?** + +Если презентация открывается стабильно и не требует совместной работы или новых функций, её можно оставлять в PPT. Однако для будущей совместимости и расширяемости лучше [конвертировать в PPTX](/slides/ru/nodejs-java/convert-ppt-to-pptx/): формат основан на открытом стандарте OOXML и легче поддерживается современными инструментами. + +**Как решить, какие файлы в первую очередь критически необходимо конвертировать в PPTX?** + +Сначала конвертируйте те презентации, которые: редактируются несколькими людьми; содержат сложные [диаграммы](/slides/ru/nodejs-java/create-chart/)/[фигуры](/slides/ru/nodejs-java/shape-manipulations/); используются во внешних коммуникациях; или вызывают предупреждения при [открытии](/slides/ru/nodejs-java/open-presentation/). + +**Будет ли сохранена защита паролем при конвертации из PPT в PPTX и обратно?** + +Пароль сохраняется только при правильной конвертации и поддержке шифрования в используемом инструменте. Надёжнее [снять защиту](/slides/ru/nodejs-java/password-protected-presentation/), [конвертировать](/slides/ru/nodejs-java/convert-ppt-to-pptx/), а затем вновь применить защиту в соответствии с вашей политикой безопасности. + +**Почему некоторые эффекты исчезают или упрощаются при конвертации PPTX обратно в PPT?** + +Потому что PPT не поддерживает некоторые новые объекты/свойства. PowerPoint и инструменты могут сохранять «следы» этой информации в специальных блоках для последующего восстановления, но старые версии PowerPoint не отобразят их. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..d18f3fb5e9 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,63 @@ +--- +title: Рендерировать слайд как изображение SVG +type: docs +weight: 50 +url: /ru/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **Формат SVG** + +SVG — аббревиатура от Scalable Vector Graphics — это стандартный тип графики или формат, используемый для отображения двумерных изображений. SVG сохраняет изображения как векторы в XML с деталями, определяющими их поведение или внешний вид. + +SVG — один из немногих форматов изображений, отвечающих очень высоким требованиям в следующих областях: масштабируемость, интерактивность, производительность, доступность, программируемость и др. По этим причинам он широко используется в веб‑разработке. + +Возможно, вам понадобится использовать файлы SVG, когда требуется + +- **распечатать вашу презентацию в *очень большом формате*.** Изображения SVG могут масштабироваться до любой разрешающей способности или уровня. Вы можете изменять размер SVG‑изображений столько раз, сколько необходимо, без потери качества. +- **использовать диаграммы и графики из ваших слайдов в *разных носителях или платформах*.** Большинство просмотровщиков могут интерпретировать файлы SVG. +- **использовать *наименьшие возможные размеры изображений*.** Файлы SVG обычно меньше их высокоразрешённых аналогов в других форматах, особенно в форматах, основанных на растровой графике (JPEG или PNG). + +## **Экспортировать слайды как изображения SVG** + +Aspose.Slides for Node.js via Java позволяет экспортировать слайды ваших презентаций в виде изображений SVG. Выполните следующие шаги для создания изображений SVG: + +1. Создайте экземпляр класса Presentation. +2. Пройдитесь по всем слайдам в презентации. +3. Запишите каждый слайд в отдельный SVG‑файл с помощью FileOutputStream. + +{{% alert color="primary" %}} +Возможно, вы захотите опробовать наше [бесплатное веб‑приложение](https://products.aspose.app/slides/conversion/ppt-to-svg), в котором мы реализовали функцию преобразования PPT в SVG из Aspose.Slides for Node.js via Java. +{{% /alert %}} + +Этот пример кода на JavaScript показывает, как преобразовать PPT в SVG с помощью Aspose.Slides: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Почему полученный SVG может выглядеть по‑разному в разных браузерах?** +Поддержка конкретных функций SVG реализуется по‑разному движками браузеров. Параметры [SVGOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) помогают сгладить несовместимости. + +**Можно ли экспортировать не только слайды, но и отдельные фигуры в SVG?** +Да. Любая [фигура может быть сохранена как отдельный SVG](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/), что удобно для иконок, пиктограмм и повторного использования графики. + +**Можно ли объединить несколько слайдов в один SVG (полоска/документ)?** +Стандартный сценарий — один слайд → один SVG. Объединение нескольких слайдов в один SVG‑канвас — это шаг постобработки, выполняемый на уровне приложения. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..78158bae38 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,154 @@ +--- +title: Экспорт в HTML5 +type: docs +weight: 40 +url: /ru/nodejs-java/export-to-html5/ +keywords: +- PowerPoint в HTML +- слайды в HTML +- HTML5 +- Экспорт HTML +- экспорт презентации +- преобразование презентации +- преобразование слайдов +- Java +- Aspose.Slides для Node.js через Java +description: "Экспорт PowerPoint в HTML5 на JavaScript" +--- + +{{% alert title="Информация" color="info" %}} + +В [Aspose.Slides 21.9](/slides/ru/nodejs-java/aspose-slides-for-java-21-9-release-notes/) мы реализовали поддержку экспорта в HTML5. + +{{% /alert %}} + +Процесс экспорта в HTML5 позволяет преобразовать PowerPoint в HTML без веб‑расширений и зависимостей. Таким образом, используя собственные шаблоны, вы можете задавать гибкие параметры, определяющие процесс экспорта и полученные HTML, CSS, JavaScript и атрибуты анимации. + +## **Экспорт PowerPoint в HTML5** + +Этот JavaScript‑код показывает, как экспортировать презентацию в HTML5 без веб‑расширений и зависимостей: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +В этом случае вы получаете чистый HTML. + +{{% /alert %}} + +Вы можете задать настройки анимаций фигур и переходов между слайдами следующим образом: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Экспорт PowerPoint в HTML** + +Этот JavaScript демонстрирует стандартный процесс экспорта PowerPoint в HTML: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +В этом случае содержимое презентации отображается через SVG в виде: +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="Примечание" color="warning" %}} + +При использовании этого метода экспорта PowerPoint в HTML из‑за рендеринга SVG вы не сможете применять стили или анимировать отдельные элементы. + +{{% /alert %}} + +## **Экспорт PowerPoint в режим просмотра слайдов HTML5** + +**Aspose.Slides** позволяет преобразовать презентацию PowerPoint в документ HTML5, в котором слайды представлены в режиме просмотра слайдов. В этом случае, открывая полученный файл HTML5 в браузере, вы видите презентацию в режиме просмотра слайдов на веб‑странице. + +Этот JavaScript‑код демонстрирует процесс экспорта PowerPoint в режим просмотра слайдов HTML5: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразование презентации в документ HTML5 с комментариями** + +Комментарии в PowerPoint — это инструмент, позволяющий пользователям оставлять заметки или отзывы к слайдам презентации. Они особенно полезны в совместных проектах, где несколько человек могут добавлять свои предложения или замечания к конкретным элементам слайда, не изменяя основное содержание. Каждый комментарий отображает имя автора, что упрощает отслеживание, кто оставил замечание. + +Предположим, у нас есть следующая презентация PowerPoint, сохранённая в файле «sample.pptx». + +![Two comments on the presentation slide](two_comments_pptx.png) + +При преобразовании презентации PowerPoint в документ HTML5 вы можете указать, включать ли комментарии из презентации в выходной документ. Для этого необходимо задать параметры отображения комментариев в свойстве `notes_comments_layouting` класса [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/). + +Следующий пример кода преобразует презентацию в документ HTML5 с комментариями, отображаемыми справа от слайдов. +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +Документ «output.html» показан на изображении ниже. + +![The comments in the output HTML5 document](two_comments_html5.png) + +## **FAQ** + +**Могу ли я управлять тем, будут ли анимации объектов и переходы между слайдами воспроизводиться в HTML5?** + +Да, в HTML5 есть отдельные параметры для включения или отключения [анимаций фигур](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) и [переходов между слайдами](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/). + +**Поддерживается ли вывод комментариев и где их можно разместить относительно слайда?** + +Да, комментарии могут быть добавлены в HTML5 и размещены (например, справа от слайда) с помощью [настроек размещения](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) для заметок и комментариев. + +**Можно ли отключить ссылки, вызывающие JavaScript, по соображениям безопасности или CSP?** + +Да, существует [параметр](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks), позволяющий пропускать гиперссылки с вызовами JavaScript при сохранении. Это помогает соответствовать строгим политикам безопасности. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..039415c31a --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,68 @@ +--- +title: Экспорт в XAML +type: docs +weight: 30 +url: /ru/nodejs-java/export-to-xaml/ +--- + +## **Экспорт презентаций в XAML** + +{{% alert color="primary" %}} + +В [Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/) мы реализовали поддержку экспорта в XAML. Теперь вы можете экспортировать свои презентации в XAML. + +{{% /alert %}} + +## **О XAML** + +XAML — описательный язык программирования, позволяющий создавать или писать пользовательские классы для приложений, особенно тех, которые используют WPF (Windows Presentation Foundation), UWP (Universal Windows Platform) и Xamarin Forms. + +XAML, являющийся XML‑основанным языком, — вариант Microsoft для описания графического интерфейса. Обычно вы используете дизайнер для работы с файлами XAML, но при этом можете писать и редактировать интерфейс вручную. + +## **Экспорт презентаций в XAML с параметрами по умолчанию** + +Этот код JavaScript показывает, как экспортировать презентацию в XAML с настройками по умолчанию: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Экспорт презентаций в XAML с пользовательскими параметрами** + +Вы можете выбрать параметры из класса [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions), которые управляют процессом экспорта и определяют, как Aspose.Slides экспортирует вашу презентацию в XAML. + +Например, если вы хотите, чтобы Aspose.Slides добавлял скрытые слайды из вашей презентации при экспорте в XAML, вы можете установить метод [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-) в значение true. См. пример кода JavaScript: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Как гарантировать предсказуемый шрифт, если оригинальный шрифт недоступен на машине?** + +Используйте [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) в [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — он используется как запасной шрифт, когда оригинальный недоступен. Это помогает избежать неожиданных замен. + +**Экспортированный XAML предназначен только для WPF или его можно использовать и в других стэках XAML?** + +XAML — общий язык разметки пользовательского интерфейса, используемый в WPF, UWP и Xamarin.Forms. Экспорт нацелен на совместимость со стеками Microsoft XAML; точное поведение и поддержка конкретных конструкций зависят от целевой платформы. Проверьте разметку в своей среде. + +**Поддерживаются ли скрытые слайды и как можно предотвратить их экспорт по умолчанию?** + +По умолчанию скрытые слайды не включаются. Вы можете управлять этим поведением с помощью [setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/) в [XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/) — оставьте его отключённым, если экспорт скрытых слайдов не нужен. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..f3f835a963 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,74 @@ +--- +title: Создание презентации PowerPoint на JavaScript +linktitle: Создать презентацию +type: docs +weight: 10 +url: /ru/nodejs-java/create-presentation/ +keywords: создать ppt java, создать ppt презентацию, создать pptx java +description: Узнайте, как создавать презентации PowerPoint, например PPT, PPTX, с помощью JavaScript с нуля. +--- + +## **Создание презентации PowerPoint** + +Чтобы добавить простую прямую линию на выбранный слайд презентации, выполните следующие шаги: + +1. Создайте экземпляр класса Presentation. +1. Получите ссылку на слайд, используя его индекс. +1. Добавьте AutoShape типа Line, используя метод addAutoShape, предоставляемый объектом Shapes. +1. Запишите изменённую презентацию в файл PPTX. + +В приведённом ниже примере мы добавили линию на первый слайд презентации. +```javascript +// Создайте объект Presentation, представляющий файл презентации +var pres = new aspose.slides.Presentation(); +try { + // Получите первый слайд + var slide = pres.getSlides().get_Item(0); + // Добавьте автоконтур типа линия + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**В какие форматы я могу сохранить новую презентацию?** + +Вы можете сохранять в [PPTX, PPT, and ODP](/slides/ru/nodejs-java/save-presentation/), а также экспортировать в [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/), [XPS](/slides/ru/nodejs-java/convert-powerpoint-to-xps/), [HTML](/slides/ru/nodejs-java/convert-powerpoint-to-html/), [SVG](/slides/ru/nodejs-java/convert-powerpoint-to-png/), и [images](/slides/ru/nodejs-java/convert-powerpoint-to-png/), среди прочих. + +**Могу ли я начать с шаблона (POTX/POTM) и сохранить как обычный PPTX?** + +Да. Загрузите шаблон и сохраните в нужный формат; форматы POTX/POTM/PPTM и аналогичные [поддерживаются](/slides/ru/nodejs-java/supported-file-formats/). + +**Как контролировать размер/соотношение сторон слайдов при создании презентации?** + +Установите [slide size](/slides/ru/nodejs-java/slide-size/) (включая предустановки, такие как 4:3 и 16:9, или пользовательские размеры) и выберите, как должен масштабироваться контент. + +**В каких единицах измеряются размеры и координаты?** + +В пунктах: 1 дюйм соответствует 72 единицам. + +**Как работать с очень большими презентациями (с множеством медиафайлов), чтобы снизить использование памяти?** + +Используйте [BLOB management strategies](/slides/ru/nodejs-java/manage-blob/), ограничьте хранение в памяти, используя временные файлы, и предпочитайте файловые рабочие процессы вместо чисто потоковых решений в памяти. + +**Могу ли я создавать/сохранять презентации параллельно?** + +Вы не можете работать с тем же экземпляром [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) из [multiple threads](/slides/ru/nodejs-java/multithreading/). Запускайте отдельные, изолированные экземпляры для каждого потока или процесса. + +**Как удалить водяной знак пробной версии и ограничения?** + +[Apply a license](/slides/ru/nodejs-java/licensing/) один раз на процесс. XML лицензии должен оставаться неизменным, а настройка лицензии должна синхронизироваться, если задействовано несколько потоков. + +**Могу ли я цифрово подписать созданный PPTX?** + +Да. [Digital signatures](/slides/ru/nodejs-java/digital-signature-in-powerpoint/) (добавление и проверка) поддерживаются для презентаций. + +**Поддерживаются ли макросы (VBA) в созданных презентациях?** + +Да. Вы можете [create/edit VBA projects](/slides/ru/nodejs-java/presentation-via-vba/) и сохранять файлы с поддержкой макросов, такие как PPTM/PPSM. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..dbe7d3ccd4 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,110 @@ +--- +title: Изучить презентацию +type: docs +weight: 30 +url: /ru/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- презентация +- формат презентации +- свойства презентации +- свойства документа +- получить свойства +- прочитать свойства +- изменить свойства +- модифицировать свойства +- PPTX +- PPT +- JavaScript +- Node +description: "Чтение и изменение свойств презентации PowerPoint в Node" +--- + +Aspose.Slides for Node.js via Java позволяет исследовать презентацию, чтобы узнать её свойства и понять её поведение. + +{{% alert title="Info" color="info" %}} +Классы [PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) и [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) содержат свойства и методы, используемые в операциях здесь. +{{% /alert %}} + +## **Проверка формата презентации** + +Прежде чем работать с презентацией, возможно, вы захотите узнать, в каком формате (PPT, PPTX, ODP и других) она находится в данный момент. + +Вы можете проверить формат презентации без её загрузки. Смотрите этот JavaScript‑код: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP +``` + + +## **Получение свойств презентации** + +Этот JavaScript‑код показывает, как получить свойства презентации (информацию о презентации): +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +Возможно, вам понадобится посмотреть [свойства в классе DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--) . + +## **Обновление свойств презентации** + +Aspose.Slides предоставляет метод [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-), позволяющий вносить изменения в свойства презентации. + +Предположим, у нас есть презентация PowerPoint с документом свойств, показанным ниже. + +![Исходные свойства документа презентации PowerPoint](input_properties.png) + +Этот пример кода показывает, как изменить некоторые свойства презентации: +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +Результаты изменения свойств документа показаны ниже. + +![Изменённые свойства документа презентации PowerPoint](output_properties.png) + +## **Полезные ссылки** + +Чтобы получить больше информации о презентации и её атрибутах безопасности, могут быть полезны следующие ссылки: + +- [Проверка, зашифрована ли презентация](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [Проверка, защищена ли презентация от записи (только для чтения)](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [Проверка, защищена ли презентация паролем перед загрузкой](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [Подтверждение пароля, использованного для защиты презентации](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **FAQ** + +**Как проверить, вложены ли шрифты и какие именно?** +Ищите [информацию о вложенных шрифтах](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/) на уровне презентации, затем сравните эти записи с набором [фактически используемых шрифтов в содержимом](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/), чтобы определить, какие шрифты критичны для рендеринга. + +**Как быстро определить, есть ли в файле скрытые слайды и их количество?** +Пройдитесь по [коллекции слайдов](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) и проверьте у каждого слайда [флаг видимости](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/). + +**Могу ли я определить, используется ли пользовательский размер и ориентация слайда, и отличаются ли они от значений по умолчанию?** +Да. Сравните текущий [размер слайда](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) и ориентацию со стандартными предустановками; это помогает предвидеть поведение при печати и экспорте. + +**Есть ли быстрый способ увидеть, ссылаются ли диаграммы на внешние источники данных?** +Да. Пройдите все [диаграммы](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), проверьте их [источник данных](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/) и обратите внимание, являются ли данные внутренними или ссылочными, включая любые битые ссылки. + +**Как оценить «тяжёлые» слайды, которые могут замедлять рендеринг или экспорт в PDF?** +Для каждого слайда подсчитайте количество объектов и ищите большие изображения, прозрачность, тени, анимацию и мультимедиа; присвойте приблизительный показатель сложности, чтобы отметить потенциальные узкие места производительности. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..82488fd713 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,85 @@ +--- +title: Импорт презентации +type: docs +weight: 60 +url: /ru/nodejs-java/import-presentation/ +keywords: "Импорт PowerPoint, PDF в презентацию, PDF в PPTX, PDF в PPT, Java, Aspose.Slides for Node.js via Java" +description: "Импорт презентации PowerPoint из PDF. Преобразовать PDF в PowerPoint" +--- + +Using [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), you can import presentations from files in other formats. Aspose.Slides provides the [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) class to allow you to import presentations from PDFs, HTML documents, etc. + +## **Импорт PowerPoint из PDF** + +В этом случае вы преобразуете PDF в презентацию PowerPoint. + +pdf-to-powerpoint + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Вызовите метод [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) и передайте PDF‑файл. +3. Используйте метод [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) для сохранения файла в формате PowerPoint. + +Этот JavaScript‑код демонстрирует операцию преобразования PDF в PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Подсказка" color="primary" %}} +Возможно, вам будет интересен бесплатный веб‑приложение **Aspose free** [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint), так как оно реализует процесс, описанный здесь. +{{% /alert %}} + +## **Импорт PowerPoint из HTML** + +В этом случае вы преобразуете HTML‑документ в презентацию PowerPoint. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/). +2. Вызовите метод [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) и передайте PDF‑файл. +3. Используйте метод [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) для сохранения файла в формате PowerPoint. + +Этот JavaScript‑код демонстрирует операцию преобразования HTML в PowerPoint: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Сохраняются ли таблицы при импорте PDF и можно ли улучшить их распознавание?** + +Таблицы могут быть обнаружены во время импорта; класс [PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) содержит метод [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables), который включает распознавание таблиц. Эффективность зависит от структуры PDF. + +{{% alert title="Примечание" color="warning" %}} +Вы также можете использовать Aspose.Slides для преобразования HTML в другие популярные форматы файлов: + +* [HTML to image](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML to JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML to XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML to TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..f15dc59c9b --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,123 @@ +--- +title: Управление слайд‑шоу +type: docs +weight: 90 +url: /ru/nodejs-java/manage-slide-show/ +keywords: +- тип показа +- представляемый докладчиком +- просматриваемый отдельным пользователем +- просматриваемый в киоске +- параметры показа +- непрерывный цикл +- без озвучки +- без анимации +- цвет пера +- показывать слайды +- пользовательский показ +- переход к следующему слайду +- вручную +- с использованием таймингов +- PowerPoint +- презентация +- Node.js +- JavaScript +- Aspose.Slides для Node.js через Java +description: "Управляйте параметрами слайд‑шоу в презентациях PowerPoint с помощью JavaScript" +--- + +В Microsoft PowerPoint настройки **Слайд‑шоу** являются ключевым инструментом для подготовки и проведения профессиональных презентаций. Одной из важнейших функций в этом разделе является **Set Up Show**, которая позволяет адаптировать вашу презентацию к конкретным условиям и аудиториям, обеспечивая гибкость и удобство. С помощью этой функции можно выбрать тип показа (например, представляемый докладчиком, просматриваемый отдельным пользователем или в режиме киоска), включить или отключить повтор, выбрать определённые слайды для отображения и задать тайм‑инг. Этот этап подготовки имеет решающее значение для повышения эффективности и профессионализма вашей презентации. + +`getSlideShowSettings` — метод класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/), который возвращает объект типа [SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/), позволяющий управлять параметрами слайд‑шоу в презентации PowerPoint. В этой статье мы рассмотрим, как использовать этот метод для настройки и контроля различных аспектов параметров слайд‑шоу. + +## **Выбор типа показа** + +`SlideShowSettings.setSlideShowType` определяет тип слайд‑шоу, который может быть экземпляром одной из следующих классов: [PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/), [BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/), или [BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/). Использование этого метода позволяет адаптировать презентацию под различные сценарии использования, такие как автоматизированные киоски или ручные показы. + +Ниже приведён пример кода, который создаёт новую презентацию и устанавливает тип показа «Browsed by an individual» без отображения полосы прокрутки. +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Включение параметров показа** + +`SlideShowSettings.setLoop` определяет, должна ли презентация повторяться в цикле до её ручного завершения. Это полезно для автоматизированных показов, которые должны работать непрерывно. `SlideShowSettings.setShowNarration` определяет, будет ли воспроизводиться голосовое озвучивание во время слайд‑шоу. Это удобно для автоматических презентаций, содержащих голосовые подсказки для аудитории. `SlideShowSettings.setShowAnimation` определяет, будут ли воспроизводиться анимации, добавленные к объектам слайдов. Это полезно для полного визуального эффекта презентации. + +Следующий пример кода создаёт новую презентацию и включаёт зацикливание слайд‑шоу. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Выбор слайдов для показа** + +Метод `SlideShowSettings.setSlides` позволяет выбрать диапазон слайдов, которые будут показаны во время презентации. Это удобно, когда необходимо отобразить только часть презентации, а не все слайды. Ниже приведён пример кода, который создаёт новую презентацию и задаёт диапазон слайдов от `2` до `9`. +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Использование таймингов слайдов** + +Метод `SlideShowSettings.setUseTimings` позволяет включить или отключить использование предустановленных таймингов для каждого слайда. Это полезно для автоматического показа слайдов с заранее заданными длительностями отображения. Пример кода ниже создаёт новую презентацию и отключает использование таймингов. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Отображение медиа‑контролов** + +Метод `SlideShowSettings.setShowMediaControls` определяет, должны ли отображаться медиа‑контролы (например, воспроизведение, пауза и остановка) во время слайд‑шоу, когда воспроизводится мультимедийный контент (видео или аудио). Это полезно, если необходимо предоставить докладчику возможность управлять воспроизведением медиа во время презентации. + +Следующий пример кода создаёт новую презентацию и включает отображение медиа‑контролов. +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **FAQ** + +**Можно ли сохранить презентацию так, чтобы она открывалась сразу в режиме слайд‑шоу?** + +Да. Сохраните файл в формате PPSX или PPSM; эти форматы открываются непосредственно в режиме слайд‑шоу в PowerPoint. В Aspose.Slides выберите соответствующий формат сохранения [во время экспорта](/slides/ru/nodejs-java/save-presentation/). + +**Можно ли исключить отдельные слайды из показа, не удаляя их из файла?** + +Да. Пометьте слайд как [hidden](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/). Скрытые слайды остаются в презентации, но не отображаются во время слайд‑шоу. + +**Может ли Aspose.Slides воспроизводить слайд‑шоу или управлять живой презентацией на экране?** + +Нет. Aspose.Slides редактирует, анализирует и конвертирует файлы презентаций; фактическое воспроизведение осуществляется в приложении‑просмотрщике, например PowerPoint. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..54dd6b817c --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,275 @@ +--- +title: Объединение презентации +type: docs +weight: 40 +url: /ru/nodejs-java/merge-presentation/ +keywords: "Объединить PowerPoint, PPTX, PPT, комбинировать PowerPoint, объединить презентацию, комбинировать презентацию, Java" +description: "Объединить или комбинировать презентацию PowerPoint в JavaScript" +--- + +## **Объединение презентаций** + +Когда вы объединяете одну презентацию с другой, вы фактически объединяете их слайды в одну презентацию, получая один файл. + +{{% alert title="Info" color="info" %}} + +Большинству программ для работы с презентациями (PowerPoint или OpenOffice) не хватает функций, позволяющих пользователям комбинировать презентации таким образом. + +[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/), однако позволяет объединять презентации различными способами. Вы можете объединять презентации со всеми их объектами, стилями, текстами, форматированием, комментариями, анимациями и т.д., не беспокоясь о потере качества или данных. + +**См. также** + +[Clone Slides](https://docs.aspose.com/slides/nodejs-java/clone-slides/). + +{{% /alert %}} + +### **Что можно объединять** + +С помощью Aspose.Slides вы можете объединять + +* целые презентации. Все слайды из презентаций окажутся в одной презентации +* отдельные слайды. Выбранные слайды окажутся в одной презентации +* презентации в одном формате (PPT в PPT, PPTX в PPTX и т.д.) и в разных форматах (PPT в PPTX, PPTX в ODP и т.д.) друг с другом. + +{{% alert title="Note" color="warning" %}} + +Помимо презентаций, Aspose.Slides позволяет объединять другие файлы: + +* [Imagess](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/), такие как [JPG в JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) или [PNG в PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/) +* Документы, такие как [PDF в PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) или [HTML в HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/) +* И два разных файла, такие как [image в PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) [JPG в PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) или [TIFF в PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/). + +{{% /alert %}} + +### **Параметры объединения** + +Вы можете задать параметры, определяющие, будет ли + +* каждый слайд в получающейся презентации сохраняет уникальный стиль +* для всех слайдов в получающейся презентации используется один и тот же стиль. + +Для объединения презентаций Aspose.Slides предоставляет методы [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) (из класса [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection)). Существует несколько реализаций методов `addClone`, определяющих параметры процесса объединения презентаций. Каждый объект Presentation имеет коллекцию [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--), поэтому вы можете вызвать метод `addClone` у презентации, в которую хотите добавить слайды. + +Метод `addClone` возвращает объект `Slide`, который является клоном исходного слайда. Слайды в результирующей презентации представляют собой простую копию слайдов из исходника. Поэтому вы можете вносить изменения в полученные слайды (например, применять стили, параметры форматирования или макеты), не опасаясь, что исходные презентации будут затронуты. + +## **Объединение презентаций** + +Aspose.Slides предоставляет метод [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) , который позволяет комбинировать слайды, при этом слайды сохраняют свои макеты и стили (параметры по умолчанию). + +Этот код на JavaScript демонстрирует, как объединять презентации: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Объединение презентаций с мастер‑слайдом** + +Aspose.Slides предоставляет метод [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-), который позволяет комбинировать слайды, одновременно применяя шаблон мастер‑презентации. Таким образом, при необходимости вы можете изменить стиль слайдов в получающейся презентации. + +Этот код на JavaScript демонстрирует описанную операцию: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} + +Макет слайда для мастер‑слайда определяется автоматически. Когда подходящий макет нельзя определить, если логический параметр `allowCloneMissingLayout` метода `addClone` установлен в true, используется макет исходного слайда. В противном случае будет выброшено исключение [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException). + +{{% /alert %}} + +Если вы хотите, чтобы слайды в получающейся презентации имели другой макет, используйте вместо этого метод [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-). + +## **Объединение отдельных слайдов из презентаций** + +Объединение отдельных слайдов из нескольких презентаций полезно для создания пользовательских наборов слайдов. Aspose.Slides for Node.js via Java позволяет выбирать и импортировать только нужные вам слайды. API сохраняет форматирование, макет и дизайн оригинальных слайдов. + +Следующий код на JavaScript создаёт новую презентацию, добавляет титульные слайды из двух других презентаций и сохраняет результат в файл: +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **Объединение презентаций с макетом слайда** + +Этот код на JavaScript демонстрирует, как комбинировать слайды из презентаций, применяя выбранный вами макет слайда, чтобы получить одну итоговую презентацию: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Объединение презентаций с разными размерами слайдов** + +{{% alert title="Note" color="warning" %}} + +Нельзя объединять презентации с разными размерами слайдов. + +{{% /alert %}} + +Чтобы объединить 2 презентации с разными размерами слайдов, необходимо изменить размер одной из презентаций, чтобы он соответствовал размеру другой презентации. + +Этот пример кода демонстрирует описанную операцию: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **Объединение слайдов в раздел презентации** + +Этот код на JavaScript показывает, как объединить конкретный слайд в раздел презентации: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +Слайд добавляется в конец раздела. + +## **FAQ** + +**Сохраняются ли заметки выступающего при объединении?** + +Да. При клонировании слайдов Aspose.Slides переносит все элементы слайда, включая заметки, форматирование и анимацию. + +**Переносятся ли комментарии и их авторы?** + +Комментарии, как часть содержимого слайда, копируются вместе со слайдом. Метки авторов комментариев сохраняются как объекты комментариев в полученной презентации. + +**Что делать, если исходная презентация защищена паролем?** + +Она должна быть [открыта с паролем](/slides/ru/nodejs-java/password-protected-presentation/) через [LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/); после загрузки эти слайды можно безопасно клонировать в незащищённый целевой файл (или в защищённый). + +**Насколько потокобезопасна операция объединения?** + +Не используйте один и тот же объект [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) из [нескольких потоков](/slides/ru/nodejs-java/multithreading/). Рекомендуемое правило — «один документ — один поток»; разные файлы могут обрабатываться параллельно в отдельных потоках. + +## **См. также** + +Aspose предоставляет [FREE Online Collage Maker](https://products.aspose.app/slides/collage). С помощью этого онлайн‑сервиса вы можете объединять изображения [JPG в JPG](https://products.aspose.app/slides/collage/jpg) или PNG в PNG, создавать [фото‑сетки](https://products.aspose.app/slides/collage/photo-grid) и многое другое. + +Посетите [Aspose FREE Online Merger](https://products.aspose.app/slides/merger). Он позволяет объединять презентации PowerPoint в одном формате (например, PPT в PPT, PPTX в PPTX) или между разными форматами (например, PPT в PPTX, PPTX в ODP). + +[![Aspose FREE Online Merger](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..77aae1df71 --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: Открыть презентацию на JavaScript +linktitle: Открыть презентации +type: docs +weight: 20 +url: /ru/nodejs-java/open-presentation/ +keywords: +- открыть PowerPoint +- открыть презентацию +- открыть PPTX +- открыть PPT +- открыть ODP +- загрузить презентацию +- загрузить PPTX +- загрузить PPT +- загрузить ODP +- защищённая презентация +- большая презентация +- внешний ресурс +- бинарный объект +- Node.js +- JavaScript +- Aspose.Slides +description: "Легко открывайте презентации PowerPoint (.pptx, .ppt) и OpenDocument (.odp) с помощью Aspose.Slides для Node.js — быстро, надёжно, полностью функционально." +--- + +## **Обзор** + +Помимо создания презентаций PowerPoint с нуля, Aspose.Slides также позволяет открывать существующие презентации. После загрузки презентации вы можете получать информацию о ней, редактировать содержимое слайдов, добавлять новые слайды, удалять существующие и многое другое. + +## **Открытие презентаций** + +Чтобы открыть существующую презентацию, создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) и передайте путь к файлу в его конструктор. + +Следующий пример на JavaScript демонстрирует, как открыть презентацию и получить количество слайдов: +```js +// Создайте экземпляр класса Presentation и передайте путь к файлу в его конструктор. +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // Выведите общее количество слайдов в презентации. + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **Открытие защищённых паролем презентаций** + +Когда необходимо открыть презентацию, защищённую паролем, передайте пароль через метод [setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword) класса [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) , чтобы расшифровать и загрузить её. Следующий код на JavaScript демонстрирует эту операцию: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // Выполните операции над расшифрованной презентацией. +} finally { + presentation.dispose(); +} +``` + + +## **Открытие больших презентаций** + +Aspose.Slides предоставляет параметры — в частности метод [getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions) класса [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) , который помогает загружать большие презентации. + +Следующий код на JavaScript демонстрирует загрузку большой презентации (например, 2 ГБ): +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// Выберите поведение KeepLocked — файл презентации останется заблокированным на весь срок +// жизни экземпляра Presentation, но его не нужно загружать в память или копировать во временный файл. +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 МБ + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // Большая презентация загружена и может использоваться, при этом потребление памяти остаётся низким. + + // Внесите изменения в презентацию. + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // Сохраните презентацию в другой файл. Потребление памяти остаётся низким во время этой операции. + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // Не делайте этого! Будет выброшено исключение ввода/вывода, потому что файл заблокирован до тех пор, пока объект презентации не будет освобождён. + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// Здесь это можно сделать. Исходный файл больше не заблокирован объектом презентации. +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +Чтобы обойти некоторые ограничения при работе с потоками, Aspose.Slides может копировать содержимое потока. Загрузка большой презентации из потока приводит к копированию презентации и может замедлить процесс загрузки. Поэтому, если вам необходимо загрузить большую презентацию, настоятельно рекомендуется использовать путь к файлу презентации, а не поток. + +При создании презентации, содержащей крупные объекты (видео, аудио, изображения высокого разрешения и т.д.), вы можете использовать [BLOB management](/slides/ru/nodejs-java/manage-blob/), чтобы снизить расход памяти. +{{%/alert %}} + +## **Управление внешними ресурсами** + +Aspose.Slides предоставляет интерфейс [IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/) , который позволяет управлять внешними ресурсами. Следующий код на JavaScript показывает, как использовать интерфейс `IResourceLoadingCallback`: +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // Загрузить заменяющее изображение. + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // Задать заменяющий URL. + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // Пропустить все остальные изображения. + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **Загрузка презентаций без встроенных бинарных объектов** + +PowerPoint‑презентация может содержать следующие типы встроенных бинарных объектов: + +- VBA‑проект (доступен через [Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject)); +- Встроенные данные OLE‑объекта (доступны через [OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData)); +- Бинарные данные ActiveX‑контрола (доступны через [Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary)). + +С помощью метода [LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects) можно загрузить презентацию без каких‑либо встроенных бинарных объектов. + +Этот метод полезен для удаления потенциально вредоносного бинарного содержимого. Следующий код на JavaScript демонстрирует, как загрузить презентацию без любого встроенного бинарного контента: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // Выполните операции над презентацией. +} finally { + presentation.dispose(); +} +``` + + +## **Вопросы и ответы** + +**Как определить, что файл повреждён и не может быть открыт?** + +При загрузке вы получите исключение парсинга/валидации формата. Такие ошибки часто указывают на некорректную структуру ZIP‑архива или повреждённые записи PowerPoint. + +**Что происходит, если при открытии отсутствуют требуемые шрифты?** + +Файл откроется, но при последующем [отрисовывании/экспорте](/slides/ru/nodejs-java/convert-presentation/) шрифты могут быть заменены. [Настройте замену шрифтов](/slides/ru/nodejs-java/font-substitution/) или [добавьте требуемые шрифты](/slides/ru/nodejs-java/custom-font/) в среду выполнения. + +**Что происходит с встроенными медиа (видео/аудио) при открытии?** + +Они становятся доступными как ресурсы презентации. Если медиа‑файлы указаны через внешние пути, убедитесь, что эти пути доступны в вашей среде; иначе при [отрисовывании/экспорте](/slides/ru/nodejs-java/convert-presentation/) медиа могут быть опущены. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/ru/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..84d33f229a --- /dev/null +++ b/ru/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,205 @@ +--- +title: Сохранение презентаций в JavaScript +linktitle: Сохранить презентации +type: docs +weight: 80 +url: /ru/nodejs-java/save-presentation/ +keywords: +- сохранить PowerPoint +- сохранить OpenDocument +- сохранить презентацию +- сохранить слайд +- сохранить PPT +- сохранить PPTX +- сохранить ODP +- презентация в файл +- презентация в поток +- предопределённый тип представления +- строгий формат Office Open XML +- режим Zip64 +- обновление миниатюры +- прогресс сохранения +- Node.js +- JavaScript +- Aspose.Slides +description: "Узнайте, как сохранять презентации в JavaScript с помощью Aspose.Slides — экспортировать в PowerPoint или OpenDocument, сохраняя макеты, шрифты и эффекты." +--- + +## **Обзор** + +[Open Presentations in JavaScript](/slides/ru/nodejs-java/open-presentation/) описал, как использовать класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) для открытия презентации. В этой статье объясняется, как создавать и сохранять презентации. Класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) содержит содержимое презентации. Независимо от того, создаёте ли вы презентацию с нуля или изменяете существующую, её нужно сохранить по окончании работы. С помощью Aspose.Slides для Node.js вы можете сохранять в **файл** или **поток**. В этой статье рассматриваются различные способы сохранения презентации. + +## **Сохранение презентаций в файлы** + +Сохраните презентацию в файл, вызвав метод `save` класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). Передайте в метод имя файла и формат сохранения. Ниже показан пример сохранения презентации с помощью Aspose.Slides. +```js +// Создаёт экземпляр класса Presentation, представляющего файл презентации. +let presentation = new aspose.slides.Presentation(); +try { + // Выполните здесь некоторую работу... + + // Сохраните презентацию в файл. + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Сохранение презентаций в потоки** + +Вы можете сохранить презентацию в поток, передав выходной поток методу `save` класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). Презентацию можно записать в различные типы потоков. В приведённом примере мы создаём новую презентацию и сохраняем её в файловый поток. +```js +// Создаёт экземпляр класса Presentation, представляющего файл презентации. +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // Сохранить презентацию в поток. + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **Сохранение презентаций с предопределённым типом представления** + +Aspose.Slides позволяет задать начальный вид, который PowerPoint использует при открытии сгенерированной презентации, через класс [ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/). Используйте метод [setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) со значением из перечисления [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/). +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Сохранение презентаций в строгом формате Office Open XML** + +Aspose.Slides позволяет сохранять презентацию в строгом формате Office Open XML. Используйте класс [PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) и задайте его свойство conformance при сохранении. Если установить [Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict), выходной файл будет сохранён в строгом формате Office Open XML. + +Ниже пример создания презентации и её сохранения в строгом формате Office Open XML. +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// Создаёт экземпляр класса Presentation, представляющего файл презентации. +let presentation = new aspose.slides.Presentation(); +try { + // Сохранить презентацию в строгом формате Office Open XML. + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **Сохранение презентаций в формате Office Open XML в режиме Zip64** + +Файл Office Open XML — это ZIP‑архив, который накладывает ограничения в 4 ГБ (2^32 байт) на несжатый размер любого файла, сжатый размер любого файла и общий размер архива, а также ограничивает количество файлов в архиве 65 535 (2^16‑1). Расширения формата ZIP64 увеличивают эти ограничения до 2^64. + +Метод [PptxOptions.setZip64Mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) позволяет выбрать, когда использовать расширения ZIP64 при сохранении файла Office Open XML. + +Этот метод может использоваться со следующими режимами: + +- [IfNecessary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#IfNecessary) использует расширения ZIP64 только если презентация превышает вышеуказанные ограничения. Это режим по умолчанию. +- [Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) никогда не использует расширения ZIP64. +- [Always](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Always) всегда использует расширения ZIP64. + +Ниже показан код, демонстрирующий сохранение презентации в формате PPTX с включёнными расширениями ZIP64: +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="NOTE" color="warning" %}} +При сохранении с использованием [Zip64Mode.Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) будет выброшено исключение [PptxException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxexception/), если презентацию нельзя сохранить в формате ZIP32. +{{% /alert %}} + +## **Сохранение презентаций без обновления миниатюры** + +Метод [PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) управляет генерацией миниатюры при сохранении презентации в PPTX: + +- Если установлено `true`, миниатюра обновляется во время сохранения. Это значение по умолчанию. +- Если установлено `false`, текущая миниатюра сохраняется. Если у презентации нет миниатюры, она не будет генерироваться. + +В приведённом коде презентация сохраняется в PPTX без обновления её миниатюры. +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Эта опция помогает сократить время, требуемое для сохранения презентации в формате PPTX. +{{% /alert %}} + +## **Отчёт о прогрессе сохранения в процентах** + +Отчёт о прогрессе сохранения настраивается через метод [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) класса [SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) и его подклассов. Передайте Java‑прокси, реализующий интерфейс [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/); во время экспорта обратный вызов будет получать периодические обновления в процентах. + +Ниже приведены фрагменты кода, показывающие, как использовать `IProgressCallback`. +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // Используйте значение процента прогресса здесь. + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +Aspose разработала бесплатное приложение [PowerPoint Splitter](https://products.aspose.app/slides/splitter) на основе собственного API. Приложение позволяет разбить презентацию на несколько файлов, сохранив выбранные слайды как новые файлы PPTX или PPT. +{{% /alert %}} + +## **FAQ** + +**Поддерживается ли «быстрое сохранение» (инкрементальное сохранение), при котором записываются только изменения?** + +Нет. При сохранении каждый раз создаётся полный целевой файл; инкрементальное «быстрое сохранение» не поддерживается. + +**Можно ли безопасно сохранять один и тот же объект Presentation из нескольких потоков?** + +Нет. Экземпляр [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) **не является потокобезопасным**; сохраняйте его только из одного потока. + +**Что происходит с гиперссылками и внешними связанными файлами при сохранении?** + +[Гиперссылки](/slides/ru/nodejs-java/manage-hyperlinks/) сохраняются. Внешние связанные файлы (например, видео по относительным путям) не копируются автоматически — убедитесь, что указанные пути остаются доступными. + +**Можно ли задать/сохранить метаданные документа (Автор, Заголовок, Компания, Дата)?** + +Да. Стандартные [свойства документа](/slides/ru/nodejs-java/presentation-properties/) поддерживаются и будут записаны в файл при сохранении. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/modern-api/_index.md b/ru/nodejs-java/developer-guide/modern-api/_index.md index 6e92965686..240d3f0d8d 100644 --- a/ru/nodejs-java/developer-guide/modern-api/_index.md +++ b/ru/nodejs-java/developer-guide/modern-api/_index.md @@ -7,51 +7,50 @@ keywords: "Кроссплатформенный Современный API" description: "Современный API" --- -## Введение +## **Введение** -Исторически сложилось так, что Aspose Slides имеет зависимость от java.awt и в общедоступном API присутствуют следующие классы оттуда: +Исторически Aspose Slides имеет зависимость от java.awt и в публичном API содержит следующие классы из него: - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -С версии 24.4 этот общедоступный API объявлен устаревшим. +Начиная с версии 24.4, этот публичный API объявлен устаревшим. -Для того чтобы избавиться от зависимостей на эти классы, мы добавили так называемый "Современный API" - т.е. API, который следует использовать вместо устаревшего, сигнатуры которого содержат зависимости от BufferedImage. Graphics2D объявлен устаревшим, а его поддержка исключена из публичного API Slides. +Чтобы избавиться от зависимостей от этих классов, мы добавили так называемый «Современный API» — т.е. API, который следует использовать вместо устаревшего, подписи которого содержат зависимости от BufferedImage. Graphics2D объявлен устаревшим, и его поддержка удалена из публичного API Slides. -Удаление устаревшего открытого API с зависимостями от System.Drawing будет в выпуске 24.8. +Удаление устаревшего публичного API с зависимостями от System.Drawing будет выполнено в выпуске 24.8. -## Современный API +## **Современный API** -В общедоступный API добавлены следующие классы и перечисления: +В публичный API добавлены следующие классы и перечисления: -- IImage - представляет растровое или векторное изображение. -- ImageFormat - представляет формат файла изображения. -- Images - методы для создания экземпляра и работы с интерфейсом IImage. +- IImage — представляет растровое или векторное изображение. +- ImageFormat — представляет файловый формат изображения. +- Images — методы для создания и работы с классом IImage. -Обратите внимание, что IImage является объектом, который подлежит освобождению (он реализует интерфейс IDisposable, и его использование должно быть заключено в блок using или освободить его другим удобным способом). - -Типичная ситуация использования нового API может выглядеть следующим образом: +Обратите внимание, что IImage реализует IDisposable и его следует использовать внутри `using` или освобождать другим удобным способом. +Типичный сценарий использования нового API может выглядеть следующим образом: ``` javascript var pres = new aspose.slides.Presentation(); try { var ppImage; - // создаем подлежащий освобождению экземпляр IImage из файла на диске. + // создать одноразовый экземпляр IImage из файла на диске. var image = aspose.slides.Images.fromFile("image.png"); try { - // создаем изображение PowerPoint, добавляя экземпляр IImage в изображения презентации. + // создать изображение PowerPoint, добавив экземпляр IImage в коллекцию изображений презентации. ppImage = pres.getImages().addImage(image); } finally { if (image != null) image.dispose(); } - // добавляем форму изображения на слайд #1 + // добавить форму изображения на слайд №1 pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, ppImage); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); - // получаем экземпляр IImage, представляющий слайд #1. + // получить экземпляр IImage, представляющий слайд №1. var slideImage = pres.getSlides().get_Item(0).getImage(size); try { - // сохраняем изображение на диск. + // сохранить изображение на диск. slideImage.save("slide1.jpeg", aspose.slides.ImageFormat.Jpeg); } finally { if (slideImage != null) slideImage.dispose(); @@ -61,9 +60,10 @@ try { } ``` -## Замена старого кода на Современный API -В общем, вам нужно будет заменить вызов старого метода, использующего ImageIO, на новый. +## **Замена старого кода на современный API** + +Как правило, необходимо заменить вызов старого метода, использующего ImageIO, на новый. Старый: ``` javascript @@ -73,6 +73,7 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` + Новый: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -81,10 +82,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### Получение эскиза слайда -Код, использующий устаревший API: +### **Получение миниатюры слайда** +Код, использующий устаревший API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +98,8 @@ try { } ``` -Современный API: +Современный API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +111,10 @@ try { } ``` -### Получение эскиза формы -Код, использующий устаревший API: +### **Получение миниатюры фигуры** +Код, использующий устаревший API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +127,8 @@ try { } ``` -Современный API: +Современный API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +140,10 @@ try { } ``` -### Получение эскиза презентации -Код, использующий устаревший API: +### **Получение миниатюры презентации** +Код, использующий устаревший API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +161,8 @@ try { } ``` -Современный API: +Современный API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +185,10 @@ try { } ``` -### Добавление изображения в презентацию -Код, использующий устаревший API: +### **Добавление изображения в презентацию** +Код, использующий устаревший API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +203,8 @@ try { } ``` -Современный API: +Современный API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,27 +218,28 @@ try { } ``` -## Методы, которые будут удалены, и их замены в Современном API -### Презентация -| Подпись метода | Замена подписи метода | -|-----------------------------------------------|---------------------------------------------------------| -| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | -| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | +## **Методы, подлежащие удалению, и их замена в современном API** + +### **Presentation** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| +| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### Форма -| Подпись метода | Замена подписи метода | -|----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +### **Shape** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### Слайд -| Подпись метода | Замена подписи метода | -|----------------------------------------------------------------------|-----------------------------------------------------------------------| +### **Slide** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | | public final BufferedImage getThumbnail(IRenderingOptions options) | public final IImage getImage(IRenderingOptions options) | @@ -245,45 +247,54 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Будет полностью удалено | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Будет полностью удалено | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Будет полностью удалено | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Will be deleted completely | -### Вывод -| Подпись метода | Замена подписи метода | -|-----------------------------------------------------------------|-------------------------------------------------------------| +### **Output** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### КоллекцияИзображений -| Подпись метода | Замена подписи метода | -|-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +### **ImageCollection** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| Подпись метода | Замена подписи метода | -|--------------------------------------|-----------------------------------------| +### **PPImage** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### ФорматШаблона -| Подпись метода | Замена подписи метода | -|-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +### **PatternFormat** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### ЭффективныеДанныеФорматаШаблона -| Подпись метода | Замена подписи метода | -|-----------------------------------------------------------|-----------------------------------------------------| +### **PatternFormatEffectiveData** +| Method Signature | Replacement Method Signature | +|------------------|------------------------------| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | - -## Поддержка API для Graphics2D будет прекращена +## **Поддержка Graphics2D будет прекращена** Методы с [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) объявлены устаревшими, и их поддержка будет удалена из публичного API. Часть API, использующая их, будет удалена: -[Слайд](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) + +# **FAQ** + +**Какова практическая выгода от IImage по сравнению с Image/Bitmap?** + +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) объединяет работу как с растром, так и с векторными изображениями и упрощает сохранение в различные форматы через [ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/). + +**Повлияет ли современный API на производительность генерации миниатюр?** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +Переход от `getThumbnail` к `getImage` не ухудшает сценарии: новые методы предоставляют те же возможности по созданию изображений с опциями и размерами, сохраняя поддержку параметров рендеринга. Конкретный прирост или падение зависит от сценария, но функционально замены эквивалентны. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/powerpoint-animation/_index.md b/ru/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..61c1b19f07 --- /dev/null +++ b/ru/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,84 @@ +--- +title: Анимация PowerPoint +type: docs +weight: 150 +url: /ru/nodejs-java/powerpoint-animation/ +keywords: "Анимация PowerPoint" +description: "Анимация PowerPoint, анимация слайдов PowerPoint с Aspose.Slides." +--- + +Поскольку презентации предназначены для представления чего‑либо, их внешний вид и интерактивное поведение всегда учитываются при их создании. + +**PowerPoint animation** играет важную роль, позволяя сделать презентацию более заметной и привлекательной для зрителей. Aspose.Slides for Node.js via Java предлагает широкий набор возможностей для добавления анимации в презентацию PowerPoint: + +- применять различные типы анимационных эффектов PowerPoint к фигурам, диаграммам, таблицам, OLE‑объектам и другим элементам презентации. +- использовать несколько анимационных эффектов PowerPoint для одной фигуры. +- использовать временную шкалу анимации для управления эффектами. +- создавать пользовательскую анимацию. + +В Aspose.Slides for Node.js via Java анимационные эффекты могут применяться к фигурам. Поскольку каждый элемент слайда, включая текст, изображения, OLE‑объекты, таблицы и т.д., считается фигурой, это означает, что анимацию можно задать для любого элемента слайда. + +## **Animation Effects** +Aspose.Slides поддерживает **150+ animation effects**, включая базовые эффекты, такие как Bounce, PathFootball, Zoom, а также специфические эффекты, такие как OLEObjectShow, OLEObjectOpen. Полный список анимационных эффектов можно посмотреть в перечислении [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/). + +Кроме того, эти анимационные эффекты можно комбинировать со следующими: + +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **Custom Animation** +В Aspose.Slides можно создавать собственные **custom animations**. +Это достигается комбинированием нескольких поведений в новую пользовательскую анимацию. + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) — строительный блок любого анимационного эффекта PowerPoint. Все анимационные эффекты фактически представляют собой набор поведений, объединённых в одну стратегию. Вы можете один раз комбинировать поведения в пользовательскую анимацию и затем повторно использовать её в других презентациях. Добавление нового поведения в стандартный анимационный эффект PowerPoint создаёт другую пользовательскую анимацию. Например, можно добавить поведение повторения, чтобы анимация запускалась несколько раз. + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) — точка, в которой должно применяться поведение. + +## **Animation Time Line** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) — коллекция анимационных эффектов, применяемая к конкретной фигуре. + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) — набор последовательностей, используемый на конкретном слайде. Это анимационный движок, представленный начиная с PowerPoint 2002. В предыдущих версиях PowerPoint добавлять анимационные эффекты было сложно и требовало различных обходных решений. Timeline заменил старый класс AnimationSettings и предоставляет более понятную модель объектов для анимации PowerPoint. На одном слайде может быть только одна временная шкала анимации. + +## **Interactive Animation** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) позволяет задать действия пользователя (например, щелчок кнопки), которые запускают определённую анимацию. Триггеры появились только в последних версиях PowerPoint. + +## **Shape Animation** +Aspose.Slides позволяет добавлять анимацию к фигурам, которые могут быть текстом, прямоугольником, линией, рамкой, OLE‑объектом и т.д. + +{{% alert color="primary" %}} +Подробнее [**О анимации фигур**](/slides/ru/nodejs-java/shape-animation/). +{{% /alert %}} + +## **Animated Charts** +Для создания анимированных диаграмм следует использовать те же классы, что и для фигур. Однако анимацию PowerPoint можно применить только к категориям диаграммы или к сериям. Можно также задать анимационный эффект для отдельного элемента категории или серии. + +{{% alert color="primary" %}} +Подробнее [**Об анимированных диаграммах**](/slides/ru/nodejs-java/animated-charts/). +{{% /alert %}} + +## **Animated text** +Помимо анимированного текста, можно применять анимацию к абзацу. + +{{% alert color="primary" %}} +Подробнее [**Об анимированном тексте**](/slides/ru/nodejs-java/animated-text/). +{{% /alert %}} + +## **FAQ** + +**Will animations be preserved when exporting to PDF?** + +No. PDF is a static format, so animations and [slide transitions](/slides/ru/nodejs-java/slide-transition/) don’t play. If you need motion, export to [HTML5](/slides/ru/nodejs-java/export-to-html5/), [animated GIF](/slides/ru/nodejs-java/convert-powerpoint-to-animated-gif/), or [video](/slides/ru/nodejs-java/convert-powerpoint-to-video/) instead. + +**Can I turn an animated presentation into a video and control the frame rate and frame size?** + +Yes. You can [render the presentation as frames](/slides/ru/nodejs-java/convert-powerpoint-to-video/) and encode them into a video (e.g., via ffmpeg), choosing the FPS and resolution. Animations and slide transitions are played during rendering. + +**Will animations remain intact when working with ODP (not just PPTX)?** + +PPT, PPTX, and ODP are supported for [reading](/slides/ru/nodejs-java/open-presentation/) and [writing](/slides/ru/nodejs-java/save-presentation/), but format differences mean certain effects may look or behave slightly differently. Validate critical cases with real samples. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-comments/_index.md b/ru/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..6b37935bb0 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,228 @@ +--- +title: "Комментарии к презентациям" +type: docs +weight: 100 +url: /ru/nodejs-java/presentation-comments/ +keywords: "Комментарии, комментарии PowerPoint, презентация PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "Добавление комментариев и ответов в презентацию PowerPoint на JavaScript" +--- + +В PowerPoint комментарий отображается как заметка или аннотация на слайде. При щелчке по комментарию его содержимое или сообщения раскрываются. + +## **Зачем добавлять комментарии к презентациям?** + +Вы можете использовать комментарии, чтобы дать обратную связь или общаться с коллегами при просмотре презентаций. + +Для возможности использования комментариев в презентациях PowerPoint, Aspose.Slides for Node.js via Java предоставляет + +* Класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), который содержит коллекции авторов (из класса [CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection)). Авторы добавляют комментарии к слайдам. +* Класс [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection), который содержит коллекцию комментариев для отдельных авторов. +* Класс [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment), который содержит информацию об авторах и их комментариях: кто добавил комментарий, время его добавления, позицию комментария и т.д. +* Класс [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor), который содержит информацию об отдельных авторах: имя автора, его инициалы, комментарии, связанные с именем автора, и т.д. + +## **Добавить комментарий к слайду** +Этот код JavaScript показывает, как добавить комментарий к слайду в презентации PowerPoint: +```javascript +// Создает экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Добавляет пустой слайд + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // Добавляет автора + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // Устанавливает позицию для комментариев + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // Добавляет комментарий к слайду для автора на слайде 1 + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // Добавляет комментарий к слайду для автора на слайде 2 + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // Получает ISlide 1 + var slide = pres.getSlides().get_Item(0); + // Когда в качестве аргумента передаётся null, комментарии всех авторов помещаются на выбранный слайд + var Comments = slide.getSlideComments(author); + // Получает комментарий с индексом 0 для слайда 1 + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // Выбирает коллекцию комментариев автора с индексом 0 + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Доступ к комментариям слайда** +Этот код JavaScript показывает, как получить доступ к существующему комментарию на слайде в презентации PowerPoint: +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Ответы на комментарии** +Родительский комментарий — это верхний или оригинальный комментарий в иерархии комментариев или ответов. С помощью методов [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) или [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) (из класса [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)) вы можете установить или получить родительский комментарий. + +Этот код JavaScript показывает, как добавить комментарии и получить ответы на них: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет комментарий + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // Добавляет ответ к comment1 + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // Добавляет другой ответ к comment1 + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // Добавляет ответ к существующему ответу + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // Выводит иерархию комментариев в консоль + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // Удаляет comment1 и все ответы к нему + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Внимание" %}} + +* Когда метод [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--) (из класса [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment)) используется для удаления комментария, ответы на комментарий также удаляются. +* Если настройка [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) приводит к циклической ссылке, будет выброшено исключение [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException). + +{{% /alert %}} + +## **Добавить современный комментарий** + +В 2021 году Microsoft внедрила *современные комментарии* в PowerPoint. Функция современных комментариев значительно улучшает совместную работу в PowerPoint. С помощью современных комментариев пользователи PowerPoint могут разрешать комментарии, привязывать их к объектам и текстам и гораздо проще взаимодействовать. + +В [Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/) мы реализовали поддержку современных комментариев, добавив класс [ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment). Методы [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) и [insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) были добавлены в класс [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection). + +Этот код JavaScript показывает, как добавить современный комментарий к слайду в презентации PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Удалить комментарий** + +### **Удалить все комментарии и авторов** + +Этот код JavaScript показывает, как удалить все комментарии и авторов в презентации: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Удаляет все комментарии из презентации + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // Удаляет всех авторов + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Удалить определённые комментарии** + +Этот код JavaScript показывает, как удалить определённые комментарии на слайде: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // добавить комментарии... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // удалить все комментарии, содержащие текст "comment 1" + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Поддерживает ли Aspose.Slides статус, например «решён», для современных комментариев?** + +Да. [Modern comments](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) предоставляют методы [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) и [setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/); вы можете читать и задавать [состояние комментария](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncommentstatus/) (например, пометить его как решённый), и это состояние сохраняется в файле и распознаётся PowerPoint. + +**Поддерживаются ли обсуждения в виде цепочек ответов и есть ли ограничение вложенности?** + +Да. Каждый комментарий может ссылаться на свой [parent comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/), что позволяет создавать произвольные цепочки ответов. API не задаёт конкретного ограничения глубины вложения. + +**В какой системе координат определяется позиция маркера комментария на слайде?** + +Позиция хранится как точка с плавающей запятой в системе координат слайда. Это позволяет точно разместить маркер комментария там, где это необходимо. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..7b8cbd523e --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,206 @@ +--- +title: Управление Blob +type: docs +weight: 10 +url: /ru/nodejs-java/manage-blob/ +description: Управляйте Blob в презентации PowerPoint с помощью JavaScript. Используйте Blob для снижения потребления памяти в презентации PowerPoint с помощью JavaScript. Добавьте большой файл через Blob в презентацию PowerPoint с помощью JavaScript. Экспортируйте большой файл через Blob из презентации PowerPoint с помощью JavaScript. Загрузите большую презентацию PowerPoint как Blob с помощью JavaScript. +--- + +## **О BLOB** + +**BLOB** (**Binary Large Object**) обычно представляет собой большой элемент (фото, презентация, документ или медиа), сохранённый в бинарных форматах. + +Aspose.Slides for Node.js via Java позволяет использовать BLOB‑объекты таким образом, чтобы уменьшить потребление памяти при работе с крупными файлами. + +{{% alert title="Info" color="info" %}} +Чтобы обойти некоторые ограничения при работе с потоками, Aspose.Slides может копировать содержимое потока. Загрузка большой презентации через её поток приводит к копированию содержимого презентации и замедляет загрузку. Поэтому, когда вы планируете загружать большую презентацию, настоятельно рекомендуется использовать путь к файлу презентации, а не её поток. +{{% /alert %}} + +## **Используйте BLOB для снижения потребления памяти** + +### **Добавить большой файл через BLOB в презентацию** + +[Aspose.Slides](/slides/ru/nodejs-java/) for Node.js via Java позволяет добавлять крупные файлы (в данном случае большой видеофайл) через процесс, использующий BLOB‑объекты, чтобы снизить потребление памяти. + +Этот JavaScript показывает, как добавить большой видеофайл через процесс BLOB в презентацию: +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// Создает новую презентацию, к которой будет добавлено видео +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // Добавим видео в презентацию — мы выбрали поведение KeepLocked, потому что + // не планируем обращаться к файлу "veryLargeVideo.avi". + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // Сохраняет презентацию. Пока выводится большая презентация, потребление памяти + // остаётся низким на протяжении жизненного цикла объекта pres. + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Экспортировать большой файл через BLOB из презентации** + +Aspose.Slides for Node.js via Java позволяет экспортировать крупные файлы (в данном случае аудио‑ или видеофайл) через процесс, использующий BLOB‑объекты, из презентаций. Например, вам может потребоваться извлечь большой медиа‑файл из презентации, но не загружать его в память компьютера. При экспорте файла через процесс BLOB вы сохраняете низкое потребление памяти. + +Этот код на JavaScript демонстрирует описанную операцию: +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// Блокирует исходный файл и НЕ загружает его в память +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// создаёт экземпляр Presentation и блокирует файл "hugePresentationWithAudiosAndVideos.pptx". +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // Сохраним каждое видео в файл. Чтобы предотвратить высокое потребление памяти, нам нужен буфер, который будет использован + // для передачи данных из видеопотока презентации в поток нового видеофайла. + var buffer = new byte[8 * 1024]; + // Проходит по всем видео + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // Открывает видеопоток презентации. Обратите внимание, что мы намеренно избегаем доступа к свойствам + // таким как video.BinaryData — потому что это свойство возвращает массив байтов с полным видео, что затем + // приводит к загрузке байтов в память. Мы используем video.GetStream, который возвращает Stream и НЕ + // требует загрузки всего видео в память. + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // Потребление памяти останется низким независимо от размера видео или презентации. + } + // При необходимости можно выполнить те же шаги для аудиофайлов. +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **Добавить изображение как BLOB в презентацию** + +С помощью методов класса [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) и [**ImageCollection** ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) вы можете добавить большое изображение как поток, чтобы оно обрабатывалось как BLOB. + +Этот JavaScript‑код показывает, как добавить большое изображение через процесс BLOB: +```javascript +var pathToLargeImage = "large_image.jpg"; +// создает новую презентацию, к которой будет добавлено изображение. +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // Добавим изображение в презентацию — мы выбираем поведение KeepLocked, потому что + // НЕ планируем обращаться к файлу "largeImage.png" файл. + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // Сохраняет презентацию. Пока выводится большая презентация, потребление памяти + // остаётся низким в течение жизненного цикла объекта pres. + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Память и крупные презентации** + +Обычно для загрузки большой презентации компьютерам требуется большое количество временной памяти. Всё содержимое презентации загружается в память, и файл (из которого была загружена презентация) перестаёт использоваться. + +Рассмотрим большую презентацию PowerPoint (large.pptx), содержащую видеофайл объёмом 1,5 ГБ. Стандартный метод загрузки презентации описан в этом JavaScript‑коде: +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Однако этот метод потребляет примерно 1,6 ГБ временной памяти. + +### **Загрузить большую презентацию как BLOB** + +Через процесс, использующий BLOB, вы можете загрузить большую презентацию, используя мало памяти. Этот JavaScript‑код описывает реализацию, где процесс BLOB используется для загрузки большого файла презентации (large.pptx): +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Изменить папку для временных файлов** + +При использовании процесса BLOB ваш компьютер создает временные файлы в папке по умолчанию для временных файлов. Если вы хотите, чтобы временные файлы хранились в другой папке, вы можете изменить настройки хранилища, используя `setTempFilesRootPath`: +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Info" color="info" %}} +При использовании `setTempFilesRootPath` Aspose.Slides не создаёт папку для хранения временных файлов автоматически. Папку необходимо создать вручную. +{{% /alert %}} + +## **Часто задаваемые вопросы** + +**Какие данные в презентации Aspose.Slides рассматриваются как BLOB и управляются параметрами BLOB?** + +Крупные бинарные объекты, такие как изображения, аудио и видео, рассматриваются как BLOB. Сам файл презентации также обрабатывается как BLOB при загрузке или сохранении. Эти объекты управляются политиками BLOB, которые позволяют контролировать использование памяти и при необходимости выгружать данные во временные файлы. + +**Где я могу настроить правила обработки BLOB при загрузке презентации?** + +Используйте [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) вместе с [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/). Здесь задаются ограничения памяти для BLOB, разрешение или запрет временных файлов, путь к корневой папке для временных файлов и поведение блокировки источника. + +**Влияют ли настройки BLOB на производительность и как сбалансировать скорость и память?** + +Да. Хранение BLOB в памяти обеспечивает максимальную скорость, но увеличивает потребление ОЗУ; снижение лимита памяти переносит часть работы во временные файлы, уменьшая ОЗУ за счёт дополнительного ввода‑вывода. Используйте метод [setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/) для достижения оптимального баланса под вашу нагрузку и окружение. + +**Помогают ли параметры BLOB при открытии чрезвычайно больших презентаций (например, гигабайтных)?** + +Да. [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) разработаны для таких сценариев: включение временных файлов и использование блокировки источника может значительно снизить пик потребления ОЗУ и стабилизировать обработку очень больших наборов слайдов. + +**Можно ли использовать политики BLOB при загрузке из потоков вместо файлов на диске?** + +Да. Те же правила применимы к потокам: экземпляр презентации может владеть и блокировать входной поток (в зависимости от выбранного режима блокировки), а временные файлы используются при разрешении, что позволяет предсказуемо контролировать использование памяти во время обработки. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..f2874d2fe0 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,309 @@ +--- +title: Управление гиперссылками +type: docs +weight: 20 +url: /ru/nodejs-java/manage-hyperlinks/ +keywords: "Гиперссылка PowerPoint, гиперссылка в тексте, гиперссылка на слайд, гиперссылка в фигуре, гиперссылка на изображение, гиперссылка на видео, Java" +description: "Как добавить гиперсылку в презентацию PowerPoint с помощью JavaScript" +--- + +Гиперссылка — это ссылка на объект, данные или место в документе. Это обычные гиперссылки в презентациях PowerPoint: + +* Ссылки на веб‑сайты в тексте, фигурах или медиа‑файлах +* Ссылки на слайды + +Aspose.Slides for Node.js via Java позволяет выполнять множество задач, связанных с гиперссылками в презентациях. + +{{% alert color="primary" %}} +Возможно, вам будет интересен простой, [бесплатный онлайн‑редактор PowerPoint.](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **Добавление URL‑гиперссылок** + +### **Добавление URL‑гиперссылок в текст** + +Этот JavaScript‑код показывает, как добавить гиперссылку на веб‑сайт в текст: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **Добавление URL‑гиперссылок в фигуры или рамки** + +Этот пример кода на JavaScript показывает, как добавить гиперссылку на веб‑сайт в фигуру: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Добавление URL‑гиперссылок в медиа‑файлы** + +Aspose.Slides позволяет добавлять гиперссылки к изображениям, аудио и видео‑файлам. + +Этот пример кода показывает, как добавить гиперссылку к **изображению**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет изображение в презентацию + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // Создает рамку изображения на слайде 1, основываясь на ранее добавленном изображении + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Этот пример кода показывает, как добавить гиперссылку к **аудиофайлу**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Этот пример кода показывает, как добавить гиперссылку к **видео**: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Вы можете посмотреть *[Управление OLE](/slides/ru/nodejs-java/manage-ole/)*. +{{% /alert %}} + +## **Использование гиперссылок для создания оглавления** + +Поскольку гиперссылки позволяют добавлять ссылки на объекты или места, их можно использовать для создания оглавления. + +Этот пример кода показывает, как создать оглавление с гиперссылками: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Форматирование гиперссылок** + +### **Цвет** + +С помощью метода [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) класса [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) можно задать цвет гиперссылок и получать информацию о цвете гиперссылок. Эта возможность впервые появилась в PowerPoint 2019, поэтому изменения свойства не применяются к более старым версиям PowerPoint. + +Этот пример кода демонстрирует операцию, при которой гиперссылки разных цветов добавляются на один и тот же слайд: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Удаление гиперссылок в презентациях** + +### **Удаление гиперссылок из текста** + +Этот JavaScript‑код показывает, как удалить гиперссылку из текста на слайде презентации: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // Проверяет, поддерживает ли фигура текстовый фрейм (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Проходит по абзацам в текстовом фрейме + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // Проходит по каждому элементу в абзаце + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// Изменяет текст + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Изменяет форматирование + } + } + } + } + } + // Сохраняет изменённую презентацию + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Удаление гиперссылок из фигур или рамок** + +Этот JavaScript‑код показывает, как удалить гиперссылку из фигуры на слайде презентации: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Изменяемая гиперссылка** + +Класс [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) изменяемый. С его помощью можно изменять значения следующих свойств: + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +Этот фрагмент кода показывает, как добавить гиперссылку на слайд и позже изменить её всплывающую подсказку: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Поддерживаемые свойства в IHyperlinkQueries** + +Вы можете получить доступ к [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) из презентации, слайда или текстового фрейма, для которых определена гиперссылка. + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +Класс [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) поддерживает следующие методы и свойства: + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **FAQ** + +**Как создать внутреннюю навигацию не только к слайду, но и к «разделу» или первому слайду раздела?** + +Разделы в PowerPoint — это группы слайдов; навигация технически направлена на конкретный слайд. Чтобы «перейти к разделу», обычно ссылаются на его первый слайд. + +**Можно ли привязать гиперссылку к элементам мастер‑слайда, чтобы она работала на всех слайдах?** + +Да. Элементы мастер‑слайда и макета поддерживают гиперссылки. Такие ссылки отображаются на дочерних слайдах и кликабельны во время показа. + +**Сохранятся ли гиперссылки при экспорте в PDF, HTML, изображения или видео?** + +В [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/) и [HTML](/slides/ru/nodejs-java/convert-powerpoint-to-html/) — да, ссылки обычно сохраняются. При экспорте в [изображения](/slides/ru/nodejs-java/convert-powerpoint-to-png/) и [видео](/slides/ru/nodejs-java/convert-powerpoint-to-video/) кликабельность не переносится из‑за характера этих форматов (растровые кадры/видео не поддерживают гиперссылки). \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..e4ad0d2cd9 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,241 @@ +--- +title: Управление аудио в презентациях с помощью JavaScript +linktitle: Аудио‑кадр +type: docs +weight: 10 +url: /ru/nodejs-java/audio-frame/ +keywords: +- аудио +- аудио‑кадр +- миниатюра +- добавить аудио +- свойства аудио +- параметры аудио +- извлечение аудио +- Node.js +- JavaScript +- Aspose.Slides +description: "Создавайте и управляйте аудио‑кадрами в Aspose.Slides for Node.js — примеры JavaScript для встраивания, обрезки, зацикливания и настройки воспроизведения в презентациях PPT, PPTX и ODP." +--- + +## **Создание аудио‑кадров** + +Aspose.Slides for Node.js via Java позволяет добавлять аудиофайлы на слайды. Аудиофайлы встраиваются в слайды в виде аудио‑кадров. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Загрузите поток аудиофайла, который хотите встроить в слайд. +4. Добавьте встроенный аудио‑кадр (содержащий аудиофайл) на слайд. +5. Установите [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) и `Volume`, доступные через объект [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame). +6. Сохраните изменённую презентацию. + +Этот JavaScript‑код показывает, как добавить встроенный аудио‑кадр на слайд: +```javascript +// Создаёт экземпляр класса Presentation, представляющего файл презентации +const pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + const sld = pres.getSlides().get_Item(0); + // Загружает wav‑файл звука в поток + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // Добавляет аудио‑кадр + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // Устанавливает режим воспроизведения и громкость аудио + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // Записывает файл PowerPoint на диск + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Изменение миниатюры аудио‑кадра** + +При добавлении аудиофайла в презентацию он отображается как кадр со стандартным изображением по умолчанию (см. изображение ниже). Вы можете изменить превью‑изображение аудио‑кадра (установить своё изображение). + +Этот JavaScript‑код показывает, как изменить миниатюру или превью‑изображение аудио‑кадра: +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // Добавляет аудио‑кадр на слайд с заданными позицией и размером. + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // Добавляет изображение в ресурсы презентации. + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Устанавливает изображение для аудио‑кадра. + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // Сохраняет изменённую презентацию на диск + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Изменение параметров воспроизведения аудио** + +Aspose.Slides for Node.js via Java позволяет менять параметры, управляющие воспроизведением аудио или его свойствами. Например, можно отрегулировать громкость, установить непрерывное воспроизведение в цикле или скрыть значок аудио. + +Панель **Audio Options** в Microsoft PowerPoint: + +![example1_image](audio_frame_0.png) + +Параметры PowerPoint **Audio Options**, соответствующие свойствам Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/): +- **Start** выпадающий список соответствует методу [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode) +- **Volume** соответствует методу [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume) +- **Play Across Slides** соответствует методу [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides) +- **Loop until Stopped** соответствует методу [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode) +- **Hide During Show** соответствует методу [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing) +- **Rewind after Playing** соответствует методу [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio) + +Параметры PowerPoint **Editing**, соответствующие свойствам Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/): + +- **Fade In** соответствует методу [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration) +- **Fade Out** соответствует методу [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration) +- **Trim Audio Start Time** соответствует методу [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart) +- **Trim Audio End Time** — значение равно длительности аудио минус значение, задаваемое методом [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd) + +PowerPoint **Контроль громкости** на аудио‑панели управления соответствует методу [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue). Он позволяет изменять громкость аудио в процентах. + +Вот как изменить параметры воспроизведения аудио: + +1. [Создать](#create-audio-frame) или получить Audio Frame. +2. Установите новые значения свойств Audio Frame, которые хотите изменить. +3. Сохраните изменённый файл PowerPoint. + +Этот JavaScript‑код демонстрирует операцию, в которой регулируются параметры аудио: +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // Получает форму AudioFrame + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // Устанавливает режим воспроизведения по клику + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // Устанавливает громкость на низкую + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // Устанавливает воспроизведение аудио на всех слайдах + audioFrame.setPlayAcrossSlides(true); + // Отключает зацикливание аудио + audioFrame.setPlayLoopMode(false); + // Скрывает AudioFrame во время показа слайдов + audioFrame.setHideAtShowing(true); + // Перематывает аудио к началу после воспроизведения + audioFrame.setRewindAudio(true); + // Сохраняет файл PowerPoint на диск + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Этот пример JavaScript показывает, как добавить новый аудио‑кадр с вложенным аудио, обрезать его и задать длительности затухания: +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // Устанавливает смещение начала обрезки в 1,5 секунды + audioFrame.setTrimFromStart(1500); + // Устанавливает смещение конца обрезки в 2 секунды + audioFrame.setTrimFromEnd(2000); + + // Устанавливает длительность плавного появления в 200 мс + audioFrame.setFadeInDuration(200); + // Устанавливает длительность плавного затухания в 500 мс + audioFrame.setFadeOutDuration(500); + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +Следующий пример кода показывает, как получить аудио‑кадр с вложенным аудио и установить его громкость на 85 %: +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // Получает форму аудио‑кадра + const audioFrame = slide.getShapes().get_Item(0); + + // Устанавливает громкость аудио на 85% + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **Извлечение аудио** + +Aspose.Slides for Node.js via Java позволяет извлекать звук, используемый в переходах слайд‑шоу. Например, можно извлечь звук, использованный в конкретном слайде. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) и загрузите презентацию, содержащую аудио. +2. Получите ссылку на нужный слайд по его индексу. +3. Доступ к [slideshow transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--) для этого слайда. +4. Извлеките звук в виде байтовых данных. + +Этот JavaScript‑код показывает, как извлечь аудио, использованное в слайде: +```javascript +// Создаёт экземпляр класса Presentation, представляющего файл презентации +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // Доступ к нужному слайду + const slide = pres.getSlides().get_Item(0); + // Получает эффекты перехода слайд‑шоу для слайда + const transition = slide.getSlideShowTransition(); + // Извлекает звук в массив байтов + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Могу ли я использовать один и тот же аудио‑ресурс на нескольких слайдах без увеличения размера файла?** + +Да. Добавьте аудио один раз в общую [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) презентации и создайте дополнительные аудио‑кадры, которые ссылаются на уже существующий ресурс. Это предотвращает дублирование медиа‑данных и держит размер презентации под контролем. + +**Можно ли заменить звук в существующем аудио‑кадре без пересоздания формы?** + +Да. Для связанного звука обновите [link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) чтобы он указывал на новый файл. Для встроенного звука замените объект [embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) другим из [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) презентации. Форматирование кадра и большинство настроек воспроизведения сохранятся. + +**Изменит ли обрезка подлежащие аудио‑данные, хранящиеся в презентации?** + +Нет. Обрезка изменяет только границы воспроизведения. Исходные байты аудио остаются нетронутыми и доступны через встроенное аудио или коллекцию аудио презентации. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..16006559b5 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: Flash +type: docs +weight: 10 +url: /ru/nodejs-java/flash/ +description: Извлечение объектов Flash из презентации PowerPoint с помощью JavaScript +--- + +## **Извлечение Flash‑объектов из презентации** + +Aspose.Slides for Node.js via Java предоставляет возможность извлекать flash‑объекты из презентации. Вы можете получить доступ к flash‑элементу по имени и извлечь его из презентации, включая хранение данных объекта SWF. +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Какие форматы презентаций поддерживаются при извлечении Flash‑контента?** + +[Aspose.Slides поддерживает](/slides/ru/nodejs-java/supported-file-formats/) основные форматы PowerPoint, такие как PPT и PPTX, поскольку он может загружать эти контейнеры и получать доступ к их элементам управления, включая элементы ActiveX, связанные с Flash. + +**Могу ли я конвертировать презентацию с Flash в HTML5 и сохранить интерактивность Flash?** + +Нет. Aspose.Slides не выполняет SWF‑контент и не конвертирует его интерактивность. Хотя экспорт в [HTML](/slides/ru/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/ru/nodejs-java/export-to-html5/) поддерживается, Flash не будет воспроизводиться в современных браузерах из‑за окончания поддержки. Рекомендуется заменить Flash альтернативами, например видео или анимациями HTML5, перед экспортом. + +**С точки зрения безопасности, Aspose.Slides выполняет SWF‑файлы при чтении презентации?** + +Нет. Aspose.Slides рассматривает Flash как бинарные данные, встроенные в файл, и не выполняет SWF‑контент во время обработки. + +**Как следует обрабатывать презентации, содержащие Flash вместе с другими вложенными файлами через OLE?** + +Aspose.Slides поддерживает [извлечение вложенных OLE‑объектов](/slides/ru/nodejs-java/manage-ole/), поэтому вы можете обработать всё связанное вложенное содержимое за один проход, обрабатывая Flash‑элементы и другие OLE‑вложенные документы совместно. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..7525b34c65 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,304 @@ +--- +title: Изображение +type: docs +weight: 10 +url: /ru/nodejs-java/image/ +keywords: +- добавить изображение +- добавить рисунок +- добавить bitmap +- заменить изображение +- заменить рисунок +- из интернета +- фон +- добавить PNG +- добавить JPG +- добавить SVG +- добавить EMF +- добавить WMF +- добавить TIFF +- PowerPoint +- OpenDocument +- презентация +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "Оптимизируйте управление изображениями в PowerPoint и OpenDocument с помощью Aspose.Slides для Node.js, повышая производительность и автоматизируя ваш рабочий процесс." +--- + +## **Изображения на слайдах в презентациях** + +Изображения делают презентации более увлекательными и интересными. В Microsoft PowerPoint вы можете вставлять картинки из файла, интернета или других мест на слайды. Аналогично, Aspose.Slides позволяет добавлять изображения на слайды в ваших презентациях различными способами. + +{{% alert title="Tip" color="primary" %}} + +Aspose предоставляет бесплатные конвертеры — [JPEG в PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) и [PNG в PowerPoint](https://products.aspose.app/slides/import/png-to-ppt) — которые позволяют быстро создавать презентации из изображений. + +{{% /alert %}} + +{{% alert title="Info" color="info" %}} + +Если вы хотите добавить изображение как объект кадра — особенно если планируете использовать стандартные параметры форматирования для изменения его размера, добавления эффектов и т.п., см. [Picture Frame](https://docs.aspose.com/slides/nodejs-java/picture-frame/). + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +Вы можете управлять операциями ввода/вывода, связанными с изображениями и презентациями PowerPoint, чтобы конвертировать изображение из одного формата в другой. См. эти страницы: конвертировать [изображение в JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); конвертировать [JPG в изображение](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); конвертировать [JPG в PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), конвертировать [PNG в JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); конвертировать [PNG в SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), конвертировать [SVG в PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). + +{{% /alert %}} + +Aspose.Slides поддерживает работу с изображениями в этих популярных форматах: JPEG, PNG, GIF и другие. + +## **Добавление изображений, хранящихся локально, на слайды** + +Вы можете добавить одно или несколько изображений с вашего компьютера на слайд в презентации. Этот пример кода на JavaScript показывает, как добавить изображение на слайд: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление изображений из потока на слайды** + +Если изображение, которое вы хотите добавить на слайд, недоступно на вашем компьютере, вы можете добавить его напрямую из интернета. + +Этот пример кода показывает, как добавить изображение из интернета на слайд в JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var sld = pres.getSlides().get_Item(0); + // Загружает файл Excel в поток + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // Создает объект данных для встраивания + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // Добавляет форму Ole Object Frame + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // Записывает файл PPTX на диск + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление изображений в шаблоны слайдов** + +Шаблон слайда (slide master) — это основной слайд, который хранит и управляет информацией (тема, макет и т.д.) обо всех слайдах, находящихся под ним. Поэтому, когда вы добавляете изображение в шаблон слайда, это изображение появляется на каждом слайде, использующем данный шаблон. + +Этот пример кода на JavaScript показывает, как добавить изображение в шаблон слайда: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление изображений в качестве фона слайда** + +Вы можете решить использовать картинку в качестве фона для конкретного слайда или нескольких слайдов. В этом случае вам следует посмотреть *[Setting Images as Backgrounds for Slides](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)*. + +## **Добавление SVG в презентации** +Вы можете добавить или вставить любое изображение в презентацию, используя метод [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) класса [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +Чтобы создать объект изображения на основе SVG, вы можете сделать это следующим образом: + +1. Создать объект SvgImage для вставки его в ImageShapeCollection +2. Создать объект PPImage из ISvgImage +3. Создать объект PictureFrame, используя класс PPImage + +Этот пример кода показывает, как реализовать указанные шаги для добавления SVG‑изображения в презентацию: +```javascript +// Создать экземпляр класса Presentation, представляющего файл PPTX +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Преобразование SVG в набор фигур** +Преобразование SVG в набор фигур в Aspose.Slides аналогично функции PowerPoint, используемой для работы с SVG‑изображениями: + +![Всплывающее меню PowerPoint](img_01_01.png) + +Функциональность предоставляется одной из перегрузок метода [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) класса [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection), который принимает объект [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage) в качестве первого аргумента. + +Этот пример кода показывает, как использовать описанный метод для преобразования файла SVG в набор фигур: +```javascript +// Создать новую презентацию +var presentation = new aspose.slides.Presentation(); +try { + // Прочитать содержимое SVG файла + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // Создать объект SvgImage + var svgImage = new aspose.slides.SvgImage(svgContent); + // Получить размер слайда + var slideSize = presentation.getSlideSize().getSize(); + // Преобразовать SVG‑изображение в группу фигур, масштабируя его до размера слайда + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // Сохранить презентацию в формате PPTX + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Добавление изображений в формате EMF на слайды** +Aspose.Slides for Node.js via Java позволяет генерировать EMF‑изображения из листов Excel и добавлять их в слайды в виде EMF с помощью Aspose.Cells. + +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); +// Save the workbook to stream +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Замена изображений в коллекции изображений** + +Aspose.Slides позволяет заменять изображения, хранящиеся в коллекции изображений презентации (включая те, что используются фигурами слайдов). В этом разделе показаны несколько подходов к обновлению изображений в коллекции. API предоставляет простые методы замены изображения, используя необработанные байтовые данные, экземпляр [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) или другое изображение, уже существующее в коллекции. + +1. Загрузите файл презентации, содержащий изображения, используя класс [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Загрузите новое изображение из файла в массив байтов. +1. Замените целевое изображение новым, используя массив байтов. +1. Во втором подходе загрузите изображение в объект [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) и замените целевое изображение этим объектом. +1. В третьем подходе замените целевое изображение изображением, которое уже существует в коллекции изображений презентации. +1. Запишите изменённую презентацию в файл PPTX. +```js +// Создать экземпляр класса Presentation, представляющего файл презентации. +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // Первый способ. + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // Второй способ. + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // Третий способ. + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // Сохранить презентацию в файл. + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} + +С помощью бесплатного конвертера Aspose FREE [Text to GIF](https://products.aspose.app/slides/text-to-gif) вы можете легко анимировать тексты, создавать GIF‑изображения из текста и т.д. + +{{% /alert %}} + +## **Часто задаваемые вопросы** + +**Сохранится ли исходное разрешение изображения после вставки?** + +Да. Исходные пиксели сохраняются, но окончательный вид зависит от того, как [picture](/slides/ru/nodejs-java/picture-frame/) масштабируется на слайде и от любой компрессии при сохранении. + +**Какой лучший способ заменить один и тот же логотип на десятках слайдов одновременно?** + +Разместите логотип на слайде‑мастере или макете и замените его в коллекции изображений презентации — изменения распространятся на все элементы, использующие этот ресурс. + +**Можно ли преобразовать вставленный SVG в редактируемые фигуры?** + +Да. Вы можете конвертировать SVG в группу фигур, после чего отдельные части станут редактируемыми с помощью стандартных свойств фигур. + +**Как установить изображение в качестве фона для нескольких слайдов сразу?** + +[Назначьте изображение как фон](/slides/ru/nodejs-java/presentation-background/) на слайде‑мастере или соответствующем макете — любой слайд, использующий этот мастер/макет, унаследует фон. + +**Как предотвратить «раздувание» презентации из‑за большого количества картинок?** + +Переиспользуйте один ресурс изображения вместо дублирования, выбирайте разумные разрешения, применяйте компрессию при сохранении и размещайте повторяющиеся графики на мастере, где это уместно. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..46859ea24c --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,438 @@ +--- +title: Рамка изображения +type: docs +weight: 10 +url: /ru/nodejs-java/picture-frame/ +keywords: +- рамка изображения +- добавить рамку изображения +- создать рамку изображения +- добавить изображение +- создать изображение +- извлечь изображение +- обрезать изображение +- свойство StretchOff +- форматирование рамки изображения +- свойства рамки изображения +- эффект изображения +- соотношение сторон +- PowerPoint +- презентация +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "Добавить рамку изображения в презентацию PowerPoint с помощью JavaScript" +--- + +Picture Frame — это фигура, содержащая изображение, подобно картине в рамке. + +Вы можете добавить изображение на слайд через Picture Frame. Таким способом вы форматируете изображение, форматируя саму рамку. + +{{% alert title="Совет" color="primary" %}} +Aspose предоставляет бесплатные конвертеры — [JPEG to PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) и [PNG to PowerPoint](https://products.aspose.app/slides/import/png-to-ppt) — позволяющие быстро создавать презентации из изображений. +{{% /alert %}} + +## **Создание Picture Frame** + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Создайте объект `PPImage`, добавив изображение в [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection), связанную с объектом презентации, которое будет использоваться для заполнения фигуры. +4. Укажите ширину и высоту изображения. +5. Создайте [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) на основе ширины и высоты изображения с помощью метода `addPictureFrame`, доступного у объекта формы, связанного с выбранным слайдом. +6. Добавьте рамку (с изображением) на слайд. +7. Запишите изменённую презентацию в файл PPTX. + +Этот JavaScript‑код показывает, как создать Picture Frame: +```javascript + // Создает экземпляр класса Presentation, представляющего файл PPTX + var pres = new aspose.slides.Presentation(); + try { + // Получает первый слайд + var sld = pres.getSlides().get_Item(0); + // Создает экземпляр класса Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Добавляет рамку изображения с эквивалентными высотой и шириной картинки + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Записывает файл PPTX на диск + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); + } catch (e) {console.log(e); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +{{% alert color="warning" %}} +Picture Frames позволяют быстро создавать слайды на основе изображений. Комбинируя Picture Frame с параметрами сохранения Aspose.Slides, вы можете управлять операциями ввода/вывода для конвертации изображений между форматами. Полезные страницы: конвертация [изображения в JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/); конвертация [JPG в изображение](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/); конвертация [JPG в PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/), конвертация [PNG в JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/); конвертация [PNG в SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/), конвертация [SVG в PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/). +{{% /alert %}} + +## **Создание Picture Frame с относительным масштабом** + +Изменяя относительное масштабирование изображения, можно создать более сложный Picture Frame. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Добавьте изображение в коллекцию изображений презентации. +4. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection), связанную с объектом презентации, которое будет использоваться для заполнения фигуры. +5. Укажите относительные ширину и высоту изображения в рамке. +6. Запишите изменённую презентацию в файл PPTX. + +Этот JavaScript‑код показывает, как создать Picture Frame с относительным масштабом: +```javascript +// Создает экземпляр класса Presentation, представляющего PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var sld = pres.getSlides().get_Item(0); + // Создает экземпляр класса Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Добавляет рамку изображения с высотой и шириной, равными картинке + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Устанавливает относительные масштаб ширины и высоты + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // Сохраняет файл PPTX на диск + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Извлечение растровых изображений из Picture Frames** + +Можно извлекать растровые изображения из объектов [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) и сохранять их в PNG, JPG и другие форматы. Пример кода ниже демонстрирует, как извлечь изображение из документа «sample.pptx» и сохранить его в формате PNG. +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Извлечение SVG‑изображений из Picture Frames** + +Когда презентация содержит векторную графику SVG, помещённую в формы [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), Aspose.Slides for Node.js via Java позволяет получить оригинальные векторные изображения с полной точностью. Проходя по коллекции фигур слайда, можно определить каждый [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), проверить, содержит ли связанный [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) SVG‑контент, и затем сохранить изображение в нативном формате SVG. + +Следующий пример кода демонстрирует извлечение SVG‑изображения из рамки: +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **Получение прозрачности изображения** + +Aspose.Slides позволяет получить эффект прозрачности, применённый к изображению. Этот JavaScript‑код демонстрирует операцию: +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **Форматирование Picture Frame** + +Aspose.Slides предоставляет множество параметров форматирования, которые можно применить к Picture Frame. С их помощью вы можете изменить рамку так, чтобы она отвечала конкретным требованиям. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection), связанную с объектом презентации, которое будет использоваться для заполнения формы. +4. Укажите ширину и высоту изображения. +5. Создайте `PictureFrame` на основе ширины и высоты изображения через метод [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) объекта [Shapes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection), связанного с выбранным слайдом. +6. Добавьте Picture Frame (с изображением) на слайд. +7. Установите цвет линии рамки. +8. Установите ширину линии рамки. +9. Поверните рамку, задав положительное или отрицательное значение. + * Положительное значение вращает изображение по часовой стрелке. + * Отрицательное значение вращает изображение против часовой стрелки. +10. Добавьте Picture Frame (с изображением) на слайд. +11. Запишите изменённую презентацию в файл PPTX. + +Этот JavaScript‑код демонстрирует процесс форматирования Picture Frame: +```javascript +// Создаёт экземпляр класса Presentation, представляющего PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var sld = pres.getSlides().get_Item(0); + // Создаёт экземпляр класса Image + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // Добавляет рамку изображения с высотой и шириной, равными изображению + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // Применяет некоторое форматирование к PictureFrameEx + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // Записывает файл PPTX на диск + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Совет" color="primary" %}} +Aspose недавно разработал [бесплатный Collage Maker](https://products.aspose.app/slides/collage). Если вам нужно [объединить JPG/JPEG](https://products.aspose.app/slides/collage/jpg) или PNG‑изображения, [создать сетку из фото](https://products.aspose.app/slides/collage/photo-grid), используйте этот сервис. +{{% /alert %}} + +## **Добавление изображения в виде ссылки** + +Чтобы уменьшить размер презентации, вместо внедрения файлов можно добавлять изображения (или видео) через ссылки. Этот JavaScript‑код показывает, как добавить изображение и видео в заполнитель: +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Обрезка изображения** + +Этот JavaScript‑код показывает, как обрезать существующее изображение на слайде: +```javascript +var pres = new aspose.slides.Presentation(); +// Создаёт новый объект изображения +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Добавляет PictureFrame на слайд + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // Обрезает изображение (значения в процентах) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // Сохраняет результат + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Удаление обрезанных областей из рамки** + +Если нужно удалить обрезанные области изображения, содержащегося в рамке, используйте метод [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--). Метод возвращает обрезанное изображение или оригинал, если обрезка не требуется. + +Этот JavaScript‑код демонстрирует операцию: +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // Получает PictureFrame с первого слайда + var picFrame = slide.getShapes().get_Item(0); + // Удаляет обрезанные области изображения PictureFrame и возвращает обрезанное изображение + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // Сохраняет результат + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="ПРИМЕЧАНИЕ" color="warning" %}} +Метод [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) добавляет обрезанное изображение в коллекцию изображений презентации. Если изображение используется только в обработанном [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/), это может сократить размер презентации. В противном случае количество изображений в полученной презентации увеличится. + +Метод конвертирует метафайлы WMF/EMF в растровое PNG‑изображение во время операции обрезки. +{{% /alert %}} + +## **Блокировка соотношения сторон** + +Чтобы форма, содержащая изображение, сохраняла соотношение сторон при изменении размеров изображения, используйте метод [setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-), задающий параметр *Lock Aspect Ratio*. + +Этот JavaScript‑код показывает, как заблокировать соотношение сторон формы: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // установить форму, чтобы сохранять соотношение сторон при изменении размеров + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="ПРИМЕЧАНИЕ" color="warning" %}} +Параметр *Lock Aspect Ratio* сохраняет только соотношение сторон формы, но не изображения, которое она содержит. +{{% /alert %}} + +## **Использование свойства StretchOff** + +С помощью методов [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-), [setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--), [setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) и [setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) класса [PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat) можно задать прямоугольник заполнения. + +При указании растягивания для изображения исходный прямоугольник масштабируется, чтобы вписаться в заданный прямоугольник заполнения. Каждая грань прямоугольника заполнения задаётся процентным смещением от соответствующей грани ограничивающего прямоугольника формы. Положительный процент задаёт врезку, отрицательный — выступ. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio). +2. Получите ссылку на слайд по его индексу. +3. Добавьте прямоугольник `AutoShape`. +4. Создайте изображение. +5. Задайте тип заполнения формы. +6. Установите режим заполнения формы изображением. +7. Добавьте изображение для заполнения формы. +8. Укажите смещения изображения от соответствующей грани ограничивающего прямоугольника формы. +9. Запишите изменённую презентацию в файл PPTX. + +Этот JavaScript‑код демонстрирует процесс применения свойства StretchOff: +```javascript +// Создаёт экземпляр класса Presentation, представляющего файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var slide = pres.getSlides().get_Item(0); + // Создаёт экземпляр класса ImageEx + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Добавляет AutoShape типа Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Устанавливает тип заливки формы + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // Устанавливает режим заливки формы изображением + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // Устанавливает изображение для заливки формы + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // Указывает смещения изображения от соответствующей грани ограничивающего прямоугольника формы + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // Записывает файл PPTX на диск + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Как узнать, какие форматы изображений поддерживаются для Picture Frame?** + +Aspose.Slides поддерживает как растровые изображения (PNG, JPEG, BMP, GIF и др.), так и векторные (например, SVG) через объект изображения, назначенный [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/). Список поддерживаемых форматов в целом совпадает с возможностями движка конвертации слайдов и изображений. + +**Как добавление десятков крупных изображений влияет на размер и производительность PPTX?** + +Встраивание больших изображений увеличивает размер файла и потребление памяти; привязка изображений через ссылки помогает уменьшить размер презентации, но требует постоянной доступности внешних файлов. Aspose.Slides позволяет добавлять изображения по ссылке, чтобы сократить размер файла. + +**Как заблокировать объект изображения от случайного перемещения/изменения размера?** + +Используйте [блокировки форм](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/) для [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) (например, отключить перемещение или изменение размера). Механизм блокировки описан в отдельной статье о [защите](/slides/ru/nodejs-java/applying-protection-to-presentation/) и поддерживается для различных типов форм, включая [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/). + +**Сохраняется ли точность векторного SVG при экспорте презентации в PDF/изображения?** + +Aspose.Slides позволяет извлекать SVG из [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) как оригинальный вектор. При [экспорте в PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/) или в [растровые форматы](/slides/ru/nodejs-java/convert-powerpoint-to-png/) результат может быть растеризован в зависимости от настроек экспорта; факт того, что оригинальный SVG хранится как вектор, подтверждается поведением извлечения. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..9c23e775ea --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,180 @@ +--- +title: Видеокадр +type: docs +weight: 10 +url: /ru/nodejs-java/video-frame/ +keywords: "Добавить видео, создать видеокадр, извлечь видео, презентация PowerPoint, Java, Aspose.Slides для Node.js через Java" +description: "Добавить видеокадр в презентацию PowerPoint на JavaScript" +--- + +Хорошо размещённое видео в презентации может сделать ваше сообщение более убедительным и повысить уровень вовлечённости вашей аудитории. + +PowerPoint позволяет добавлять видео на слайд в презентации двумя способами: + +* Добавить или встроить локальное видео (хранящееся на вашем компьютере) +* Добавить онлайн‑видео (из веб‑источника, например YouTube). + +Чтобы добавить видео (объекты видео) в презентацию, Aspose.Slides предоставляет класс [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/), класс [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) и другие соответствующие типы. + +## **Создание встроенного видеокадра** + +Если файл видео, который вы хотите добавить на слайд, хранится локально, вы можете создать видеокадр, чтобы встроить видео в вашу презентацию. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получите ссылку на слайд по его индексу. +1. Добавьте объект [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) и передайте путь к файлу видео, чтобы встроить его в презентацию. +1. Добавьте объект [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/) для создания кадра видео. +1. Сохраните изменённую презентацию. + +Этот код JavaScript показывает, как добавить локально хранимое видео в презентацию: +```javascript +// Создает экземпляр класса Presentation +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // Загружает видео + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // Получает первый слайд и добавляет видеокадр + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // Сохраняет презентацию на диск + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +В качестве альтернативы вы можете добавить видео, передав путь к его файлу напрямую в метод [addVideoFrame(float x, float y, float width, float height, IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Создание видеокадра с видео из веб‑источника** + +Microsoft [PowerPoint 2013 и новее](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us) поддерживает видео YouTube в презентациях. Если нужное вам видео доступно онлайн (например, на YouTube), вы можете добавить его в презентацию по веб‑ссылке. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получите ссылку на слайд по его индексу. +1. Добавьте объект [Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/) и передайте ссылку на видео. +1. Установите миниатюру для видеокадра. +1. Сохраните презентацию. + +Этот код JavaScript показывает, как добавить видео из интернета на слайд в презентации PowerPoint: +```javascript +// Создает объект Presentation, представляющий файл презентации +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **Извлечение видео со слайда** + +Помимо добавления видео на слайды, Aspose.Slides позволяет извлекать встроенные в презентацию видео. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) для загрузки презентации, содержащей видео. +2. Пройдитесь по всем объектам [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). +3. Пройдитесь по всем объектам [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) в поисках [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). +4. Сохраните видео на диск. + +Этот код JavaScript показывает, как извлечь видео со слайда презентации: +```javascript +// Создает объект Presentation, представляющий файл презентации +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // Получает расширение файла + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Какие параметры воспроизведения видео можно изменить у VideoFrame?** + +Вы можете управлять [режимом воспроизведения](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/) (автоматически или по щелчку) и [повторением](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/). Эти параметры доступны через свойства объекта [VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/). + +**Влияет ли добавление видео на размер файла PPTX?** + +Да. При встраивании локального видео двоичные данные включаются в документ, поэтому размер презентации увеличивается пропорционально размеру файла. При добавлении онлайн‑видео встраивается ссылка и миниатюра, поэтому увеличение размера меньше. + +**Могу ли я заменить видео в существующем VideoFrame, не меняя его положение и размер?** + +Да. Вы можете заменить [видеоконтент](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/) внутри кадра, сохранив геометрию формы; это типичный сценарий обновления медиа в существующей раскладке. + +**Можно ли определить тип содержимого (MIME) встроенного видео?** + +Да. Встроенное видео имеет [тип содержимого](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/), который можно прочитать и использовать, например при сохранении на диск. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..6af18b69de --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,334 @@ +--- +title: Управление OLE в презентациях с помощью JavaScript +linktitle: Управление OLE +type: docs +weight: 40 +url: /ru/nodejs-java/manage-ole/ +keywords: +- OLE-объект +- Связывание и внедрение объектов +- добавить OLE +- внедрить OLE +- добавить объект +- внедрить объект +- добавить файл +- внедрить файл +- связанный объект +- связанный файл +- изменить OLE +- значок OLE +- заголовок OLE +- извлечь OLE +- извлечь объект +- извлечь файл +- PowerPoint +- презентация +- Node.js +- JavaScript +- Aspose.Slides +description: "Оптимизируйте управление OLE‑объектами в PowerPoint и файлах OpenDocument с помощью Aspose.Slides для Node.js. Внедряйте, обновляйте и экспортируйте OLE‑контент без проблем." +--- + +{{% alert color="primary" %}} + +OLE (Object Linking & Embedding) — это технология Microsoft, позволяющая размещать данные и объекты, созданные в одном приложении, в другом приложении с помощью связывания или внедрения. + +{{% /alert %}} + +Рассмотрите диаграмму, созданную в MS Excel. Эта диаграмма затем размещается на слайде PowerPoint. Такая диаграмма Excel считается OLE‑объектом. + +- OLE‑объект может отображаться в виде значка. В этом случае при двойном щелчке по значку диаграмма открывается в связанном приложении (Excel) или предлагается выбрать приложение для открытия или редактирования объекта. +- OLE‑объект может показывать своё фактическое содержимое, например содержимое диаграммы. В этом случае диаграмма активируется в PowerPoint, загружается её интерфейс, и вы можете изменять данные диаграммы непосредственно в PowerPoint. + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) позволяет вставлять OLE‑объекты в слайды в виде OLE‑фреймов объектов ([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)). + +## **Добавление OLE‑объектных фреймов на слайды** + +Предположим, вы уже создали диаграмму в Microsoft Excel и хотите внедрить её в слайд как OLE‑объектный фрейм с помощью Aspose.Slides for Node.js via Java, вы можете сделать это следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получите ссылку на слайд по его индексу. +1. Прочитайте файл Excel в виде массива байтов. +1. Добавьте [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) на слайд, содержащий массив байтов и другую информацию об OLE‑объекте. +1. Сохраните изменённую презентацию в файл PPTX. + +В приведённом ниже примере мы добавили диаграмму из файла Excel на слайд в виде OLE‑объектного фрейма, используя Aspose.Slides for Node.js via Java. +**Note** that the [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) constructor takes an embeddable object extension as a second parameter. This extension allows PowerPoint to correctly interpret the file type and choose the right application to open this OLE object. +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// Prepare data for the OLE object. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// Add the OLE object frame to the slide. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **Добавление связанных OLE‑объектных фреймов** + +Aspose.Slides for Node.js via Java позволяет добавить [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) без внедрения данных, а только со ссылкой на файл. + +Этот JavaScript‑код показывает, как добавить [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) со связанным файлом Excel на слайд: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// Добавить OLE‑объектный фрейм со связанным файлом Excel. +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Доступ к OLE‑объектным фреймам** + +Если OLE‑объект уже внедрён в слайд, его можно легко найти или получить к нему доступ следующим образом: + +1. Загрузите презентацию с внедрённым OLE‑объектом, создав экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд, используя его индекс. +3. Получите форму [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame). В нашем примере использовалась ранее созданная PPTX, содержащая единственную форму на первом слайде. +4. После доступа к OLE‑объектному фрейму вы можете выполнить любую операцию с ним. + +В приведённом ниже примере демонстрируется доступ к OLE‑объектному фрейму (объекту диаграммы Excel, внедрённому в слайд) и его файловым данным. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Получить данные внедренного файла. + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + + // Получить расширение внедренного файла. + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + // ... +} +``` + + +### **Доступ к свойствам связанных OLE‑объектных фреймов** + +Aspose.Slides позволяет получать свойства связанных OLE‑объектных фреймов. + +Этот JavaScript‑код показывает, как проверить, является ли OLE‑объект связанным, и затем получить путь к связанному файлу: +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // Проверить, связан ли OLE объект. + if (oleFrame.isObjectLink()) { + // Вывести полный путь к связанному файлу. + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // Вывести относительный путь к связанному файлу, если он присутствует. + // Только презентации PPT могут содержать относительный путь. + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **Изменение данных OLE‑объекта** + +{{% alert color="primary" %}} + +В этом разделе ниже пример кода использует [Aspose.Cells for Java](/cells/java/). + +{{% /alert %}} + +Если OLE‑объект уже внедрён в слайд, его можно легко получить и изменить его данные следующим образом: + +1. Загрузите презентацию с внедрённым OLE‑объектом, создав экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Получите форму OLE‑объектного фрейма. В нашем примере использовалась ранее созданная PPTX, содержащая одну форму на первом слайде. +4. После доступа к OLE‑объектному фрейму вы можете выполнить любую операцию с ним. +5. Создайте объект `Workbook` и получите доступ к OLE‑данным. +6. Получите нужный `Worksheet` и измените данные. +7. Сохраните обновлённый `Workbook` в поток. +8. Измените данные OLE‑объекта из потока. + +В приведённом ниже примере демонстрируется доступ к OLE‑объектному фрейму (объекту диаграммы Excel, внедрённому в слайд) и модификация его файловых данных для обновления данных диаграммы. +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // Прочитать данные OLE‑объекта как объект Workbook. + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // Изменить данные рабочей книги. + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // Изменить данные объекта OLE‑фрейма. + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Внедрение других типов файлов в слайды** + +Помимо диаграмм Excel, Aspose.Slides for Node.js via Java позволяет внедрять в слайды другие типы файлов. Например, можно вставлять HTML, PDF и ZIP‑файлы в виде объектов. При двойном щелчке пользователем по вставленному объекту он автоматически открывается в соответствующей программе, либо пользователю предлагается выбрать подходящее приложение для открытия. + +Этот JavaScript‑код показывает, как внедрить HTML и ZIP в слайд: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Установка типа файлов для внедрённых объектов** + +При работе с презентациями может потребоваться заменить старые OLE‑объекты новыми или заменить неподдерживаемый OLE‑объект поддерживаемым. Aspose.Slides for Node.js via Java позволяет задать тип файла для внедрённого объекта, что даёт возможность обновить данные OLE‑фрейма или его расширение. + +Этот JavaScript‑код показывает, как задать тип файла для внедрённого OLE‑объекта как `zip`: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// Change the file type to ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Установка изображений‑значков и заголовков для внедрённых объектов** + +После внедрения OLE‑объекта автоматически добавляется предварительный просмотр в виде значка. Этот предварительный просмотр видят пользователи перед доступом к объекту или его открытием. Если требуется использовать конкретное изображение и текст в качестве элементов предварительного просмотра, можно задать изображение‑значок и заголовок с помощью Aspose.Slides for Node.js via Java. + +Этот JavaScript‑код показывает, как задать изображение‑значок и заголовок для внедрённого объекта: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// Добавить изображение в ресурсы презентации. +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// Set a title and the image for the OLE preview. +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Предотвращение изменения размера и перемещения OLE‑объектного фрейма** + +После добавления связанного OLE‑объекта в слайд презентации, при открытии презентации в PowerPoint может появиться сообщение с запросом обновления ссылок. Щелчок по кнопке «Update Links» может изменить размер и положение OLE‑объектного фрейма, поскольку PowerPoint обновляет данные из связанного OLE‑объекта и обновляет предварительный просмотр. Чтобы PowerPoint не запрашивал обновление данных объекта, используйте метод `setUpdateAutomatic` класса [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) со значением `false`: +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **Извлечение внедрённых файлов** + +Aspose.Slides for Node.js via Java позволяет извлекать файлы, внедрённые в слайды в виде OLE‑объектов, следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), содержащий OLE‑объекты, которые планируется извлечь. +2. Пройдитесь по всем формам в презентации и получите формы [OLEObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe). +3. Получите данные внедрённых файлов из OLE‑объектных фреймов и запишите их на диск. + +Этот JavaScript‑код показывает, как извлечь файлы, внедрённые в слайд в виде OLE‑объектов: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **FAQ** + +**Будет ли OLE‑контент отрисовываться при экспорте слайдов в PDF/изображения?** + +Отрисовывается то, что видно на слайде — значок/замещающее изображение (preview). «Живой» OLE‑контент не исполняется при рендеринге. При необходимости задайте собственное изображение‑превью, чтобы обеспечить ожидаемый вид в экспортированном PDF. + +**Как заблокировать OLE‑объект на слайде, чтобы пользователи не могли перемещать/редактировать его в PowerPoint?** + +Заблокируйте форму: Aspose.Slides предоставляет [блокировки уровня формы](/slides/ru/nodejs-java/applying-protection-to-presentation/). Это не шифрование, но эффективно предотвращает случайные изменения и перемещения. + +**Сохранятся ли относительные пути для связанных OLE‑объектов в формате PPTX?** + +В PPTX информация о «относительном пути» недоступна — сохраняется только полный путь. Относительные пути встречаются в старом формате PPT. Для переносимости предпочтительно использовать надёжные абсолютные пути/доступные URI или внедрение. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..a5b28e1a97 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,65 @@ +--- +title: Анимированный текст +type: docs +weight: 60 +url: /ru/nodejs-java/animated-text/ +keywords: "Анимированный текст в PowerPoint" +description: "Анимированный текст в PowerPoint с Java" +--- + +## **Добавление анимационных эффектов к абзацам** + +Мы добавили метод [**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) в классы [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) и [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence). Этот метод позволяет добавить анимационные эффекты к отдельному абзацу. Пример кода показывает, как добавить анимационный эффект к отдельному абзацу: +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // выбрать абзац для добавления эффекта + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // добавить анимационный эффект Fly к выбранному абзацу + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Получение анимационных эффектов в абзацах** + +Возможно, вам понадобится узнать, какие анимационные эффекты добавлены к абзацу — например, в одном случае вы хотите получить анимационные эффекты абзаца, чтобы применить их к другому абзацу или фигуре. + +Aspose.Slides for Node.js via Java позволяет получить все анимационные эффекты, применённые к абзацам, содержащимся в текстовом фрейме (shape). Пример кода показывает, как получить анимационные эффекты в абзаце: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **FAQ** + +**Чем анимация текста отличается от переходов слайдов, и можно ли их комбинировать?** + +Анимация текста управляет поведением объекта во времени на слайде, тогда как [переходы](/slides/ru/nodejs-java/slide-transition/) управляют тем, как меняются слайды. Они независимы и могут использоваться вместе; порядок воспроизведения определяется временной шкалой анимации и настройками перехода. + +**Сохраняются ли анимации текста при экспорте в PDF или изображения?** + +Нет. PDF и растровые изображения являются статичными, поэтому вы увидите единственное состояние слайда без движения. Чтобы сохранить анимацию, используйте экспорт в [видео](/slides/ru/nodejs-java/convert-powerpoint-to-video/) или [HTML](/slides/ru/nodejs-java/export-to-html5/). + +**Работают ли анимации текста в макетах и шаблоне слайда?** + +Эффекты, применённые к объектам макета/шаблона, наследуются слайдами, однако их время и взаимодействие с анимациями уровня слайда зависят от окончательной последовательности на слайде. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..9b4256d8e3 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,139 @@ +--- +title: Извлечение текста из презентации +type: docs +weight: 90 +url: /ru/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +Не редкость, когда разработчикам необходимо извлечь текст из презентации. Для этого нужно получить текст из всех фигур на всех слайдах презентации. В этой статье объясняется, как извлекать текст из презентаций Microsoft PowerPoint PPTX с помощью Aspose.Slides. + +{{% /alert %}} + +## **Извлечение текста со слайда** + +Aspose.Slides for Node.js via Java предоставляет класс [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Этот класс раскрывает ряд перегруженных статических методов для извлечения всего текста из презентации или слайда. Чтобы извлечь текст со слайда в презентации PPTX, +используйте перегруженный статический метод [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) класса [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil). Этот метод принимает объект Slide в качестве параметра. +При выполнении метод Slide сканирует весь текст со слайда, переданного в качестве параметра, и возвращает массив объектов [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). Это означает, что доступно любое форматирование текста. Следующий фрагмент кода извлекает весь текст первого слайда презентации: +```javascript +// Создать объект класса Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // Получить массив объектов ITextFrame со всех слайдов в PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // Перебрать массив TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Перебрать абзацы в текущем ITextFrame + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Перебрать части в текущем IParagraph + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Отобразить текст в текущей части + console.log(port.getText()); + // Отобразить высоту шрифта текста + console.log(port.getPortionFormat().getFontHeight()); + // Отобразить название шрифта текста + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); +} finally { + pres.dispose(); +} +``` + + +## **Извлечение текста из презентации** + +Чтобы просканировать текст всей презентации, используйте +статический метод [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) класса SlideUtil. Он принимает два параметра: + +1. Во‑первых, объект [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged), представляющий презентацию, из которой извлекается текст. +2. Во‑вторых, логическое значение, определяющее, следует ли включать мастер‑слайд при сканировании текста презентации. + Метод возвращает массив объектов [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) с полной информацией о форматировании текста. Ниже приведён код, который сканирует текст и сведения о форматировании из презентации, включая мастер‑слайды. +```javascript +// Создать объект класса Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // Получить массив объектов ITextFrame со всех слайдов в PPTX + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // Перебрать массив TextFrames + for (var i = 0; i < textFramesPPTX.length; i++) { + // Перебрать абзацы в текущем ITextFrame + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // Перебрать части в текущем IParagraph + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // Отобразить текст в текущей части + console.log(port.getText()); + // Отобразить высоту шрифта текста + console.log(port.getPortionFormat().getFontHeight()); + // Отобразить название шрифта текста + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **Категоризированное и быстрое извлечение текста** + +В класс Presentation добавлен новый статический метод getPresentationText. Для этого метода доступны три перегрузки: +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + +The [TextExtractionArrangingMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode) enum argument indicates the mode to organize the output of text result and can be set to the following values: +- [Unarranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) - The raw text with no respect to position on the slide +- [Arranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Arranged) - The text is positioned in the same order as on the slide + +**Unarranged** mode can be used when speed is critical, it's faster than Arranged mode. + +[PresentationText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText) represents the raw text extracted from the presentation. It contains a [getSlidesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText#getSlidesText--) method which returns an array of [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) objects. Every object represent the text on the corresponding slide. [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) object have the following methods: + +- [SlideText.getText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getText--) - The text on the slide's shapes +- [SlideText.getMasterText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getMasterText--) - The text on the master page's shapes for this slide +- [SlideText.getLayoutText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getLayoutText--) - The text on the layout page's shapes for this slide +- [SlideText.getNotesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getNotesText--) - The text on the notes page's shapes for this slide + +There is also a [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class which implements the [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class. + +The new API can be used like this: + +```javascript +var text1 = aspose.slides.PresentationFactory.getInstance().getPresentationText("presentation.pptx", aspose.slides.TextExtractionArrangingMode.Unarranged); +console.log(text1.getSlidesText()[0].getText()); +console.log(text1.getSlidesText()[0].getLayoutText()); +console.log(text1.getSlidesText()[0].getMasterText()); +console.log(text1.getSlidesText()[0].getNotesText()); +``` + + +## **FAQ** + +**Насколько быстро Aspose.Slides обрабатывает большие презентации при извлечении текста?** + +Aspose.Slides оптимизирован для высокой производительности и эффективно обрабатывает даже крупные презентации, что делает его пригодным для сценариев реального времени или массовой обработки. + +**Может ли Aspose.Slides извлекать текст из таблиц и диаграмм в презентациях?** + +Да, Aspose.Slides полностью поддерживает извлечение текста из таблиц, диаграмм и других сложных элементов слайдов, позволяя легко получать и анализировать весь текстовый контент. + +**Нужна ли специальная лицензия Aspose.Slides для извлечения текста из презентаций?** + +Вы можете извлекать текст с помощью бесплатной пробной версии Aspose.Slides, однако она имеет ограничения, например, обработку только ограниченного количества слайдов. Для неограниченного использования и работы с большими презентациями рекомендуется приобрести полную лицензию. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..903702301c --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,154 @@ +--- +title: Управление параметрами автоподгонки +type: docs +weight: 30 +url: /ru/nodejs-java/manage-autofit-settings/ +keywords: "Текстовое поле, Автоподгонка, Презентация PowerPoint, Java, Aspose.Slides для Node.js через Java" +description: "Настройте параметры автоподгонки для текстового поля в PowerPoint с помощью JavaScript" +--- + +По умолчанию, когда вы добавляете текстовое поле, Microsoft PowerPoint использует настройку **Resize shape to fix text** для текстового поля — она автоматически меняет размер текстового поля, чтобы его текст всегда помещался в него. + +![textbox-in-powerpoint](textbox-in-powerpoint.png) + +* Когда текст в текстовом поле становится длиннее или больше, PowerPoint автоматически увеличивает текстовое поле — увеличивает его высоту — чтобы разместить больше текста. +* Когда текст в текстовом поле становится короче или меньше, PowerPoint автоматически уменьшает текстовое поле — уменьшает его высоту — чтобы удалить лишнее пространство. + +В PowerPoint это 4 важных параметра или опции, которые контролируют поведение автоподгонки для текстового поля: + +* **Do not Autofit** +* **Shrink text on overflow** +* **Resize shape to fit text** +* **Wrap text in shape.** + +![autofit-options-powerpoint](autofit-options-powerpoint.png) + +Aspose.Slides for Node.js via Java предоставляет похожие варианты — некоторые свойства класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) — которые позволяют управлять поведением автоподгонки для текстовых полей в презентациях. + +## **Resize Shape to Fit Text** + +Если вы хотите, чтобы текст в коробке всегда помещался в эту коробку после изменения текста, необходимо использовать опцию **Resize shape to fix text**. Чтобы задать эту настройку, вызовите метод [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) с значением `Shape`. + +![alwaysfit-setting-powerpoint](alwaysfit-setting-powerpoint.png) + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Если текст становится длиннее или больше, текстовое поле будет автоматически изменено в размере (увеличена высота), чтобы весь текст поместился. Если текст становится короче, произойдёт обратное. + +## **Do Not Autofit** + +Если вы хотите, чтобы текстовое поле или фигура сохраняли свои размеры независимо от изменений текста, необходимо использовать опцию **Do not Autofit**. Чтобы задать эту настройку, вызовите метод [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) с значением `None`. + +![donotautofit-setting-powerpoint](donotautofit-setting-powerpoint.png) + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Когда текст становится слишком длинным для своего поля, он выходит за пределы. + +## **Shrink Text on Overflow** + +Если текст становится слишком длинным для своего поля, с помощью опции **Shrink text on overflow** вы можете указать, что размер и интервал текста должны быть уменьшены, чтобы он поместился в поле. Чтобы задать эту настройку, вызовите метод [setAutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType) класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) со значением `Normal`. + +![shrinktextonoverflow-setting-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +При использовании опции **Shrink text on overflow** настройка применяется только тогда, когда текст становится слишком длинным для своего поля. +{{% /alert %}} + +## **Wrap Text** + +Если вы хотите, чтобы текст в фигуре переносился внутри этой фигуры, когда он выходит за пределы её границы (только по ширине), необходимо использовать параметр **Wrap text in shape**. Чтобы задать эту настройку, вызовите метод [setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setWrapText) класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) со значением `true`. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +Если вызвать метод `setWrapText` со значением `False` для фигуры, когда текст внутри неё становится длиннее ширины фигуры, текст будет выходить за пределы её границ в одну строку. +{{% /alert %}} + +## **FAQ** + +**Влияют ли внутренние отступы текстового кадра на AutoFit?** + +Да. Отступы (внутренние поля) уменьшают доступную площадь для текста, поэтому AutoFit срабатывает раньше — шрифт уменьшается или фигура изменяется в размере быстрее. Проверьте и скорректируйте отступы перед настройкой AutoFit. + +**Как AutoFit взаимодействует с ручными и мягкими разрывами строк?** + +Принудительные разрывы остаются на своих местах, а AutoFit адаптирует размер шрифта и межсимвольный интервал вокруг них. Удаление лишних разрывов часто уменьшает необходимость агрессивного уменьшения текста. + +**Влияет ли изменение шрифта темы или подстановка шрифта на результаты AutoFit?** + +Да. Замена шрифта на другой с другими метриками глифов меняет ширину/высоту текста, что может изменить конечный размер шрифта и перенос строк. После любой смены или подстановки шрифта повторно проверьте слайды. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..e165ebb302 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,317 @@ +--- +title: Управление маркерами +type: docs +weight: 60 +url: /ru/nodejs-java/manage-bullet/ +keywords: "Маркеры, Маркированные списки, Номера, Нумерованные списки, Маркеры-изображения, Многоуровневые маркеры, Презентация PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "Создание маркированных и нумерованных списков в презентации PowerPoint на JavaScript" +--- + +В **Microsoft PowerPoint** вы можете создавать маркированные и нумерованные списки так же, как в Word и других текстовых редакторах. **Aspose.Slides for Node.js via Java** также позволяет использовать маркеры и номера в слайдах ваших презентаций. + +## **Зачем использовать маркированные списки?** + +Маркированные списки помогают быстро и эффективно организовывать и представлять информацию. + +**Пример маркированного списка** + +В большинстве случаев маркированный список выполняет три основные функции: + +- привлекает внимание ваших читателей или зрителей к важной информации +- позволяет вашим читателям или зрителям легко просматривать ключевые моменты +- эффективно передаёт и доносит важные детали. + +## **Зачем использовать нумерованные списки?** + +Нумерованные списки также помогают в организации и представлении информации. Желательно использовать цифры (вместо маркеров), когда порядок элементов (например, *шаг 1, шаг 2* и т.д.) имеет значение или когда необходимо ссылаться на элемент (например, *см. шаг 3*). + +**Пример нумерованного списка** + +Это сводка шагов (шаг 1-шаг 15) процедуры **Creating Bullets**, приведенной ниже: + +1. Создайте экземпляр класса презентации. +2. Выполните несколько задач (шаги 3-14). +3. Сохраните презентацию. + +## **Создание маркеров** + +Эта тема также является частью серии статей по управлению текстовыми абзацами. На этой странице показано, как управлять маркерами абзацев. Маркеры полезны, когда необходимо описать что‑то пошагово. Кроме того, текст выглядит более упорядоченным при использовании маркеров. Абзацы с маркерами всегда легче читать и понимать. Мы покажем, как разработчики могут использовать эту небольшую, но мощную возможность Aspose.Slides for Node.js via Java. Пожалуйста, выполните следующие шаги для управления маркерами абзацев с помощью Aspose.Slides for Node.js via Java: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Доступ к нужному слайду в коллекции слайдов с помощью объекта [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Добавьте [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) на выбранный слайд. +1. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) добавленной формы. +1. Удалите абзац по умолчанию в TextFrame. +1. Создайте первый экземпляр абзаца с помощью класса [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph). +1. Установите тип маркера абзаца. +1. Установите тип маркера в [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) и задайте символ маркера. +1. Установите текст абзаца. +1. Установите отступ абзаца для установки маркера. +1. Установите цвет маркера. +1. Установите высоту маркеров. +1. Добавьте созданный абзац в коллекцию абзацев TextFrame. +1. Добавьте второй абзац и повторите процесс, указанный в шагах **7-13**. +1. Сохраните презентацию. + +```javascript +// Создать экземпляр класса Presentation, представляющего файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Добавление и доступ к AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Доступ к текстовому фрейму созданной AutoShape + var txtFrm = aShp.getTextFrame(); + // Удаление абзаца по умолчанию + txtFrm.getParagraphs().removeAt(0); + // Создание абзаца + var para = new aspose.slides.Paragraph(); + // Установка стиля маркера абзаца и символа + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Установка текста абзаца + para.setText("Welcome to Aspose.Slides"); + // Установка отступа маркера + para.getParagraphFormat().setIndent(25); + // Установка цвета маркера + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Установить IsBulletHardColor в true, чтобы использовать собственный цвет маркера + para.getParagraphFormat().getBullet().isBulletHardColor(); + // Установка высоты маркера + para.getParagraphFormat().getBullet().setHeight(100); + // Добавление абзаца в текстовый фрейм + txtFrm.getParagraphs().add(para); + // Сохранение презентации в файл PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +## **Создание маркеров‑изображений** + +Aspose.Slides for Node.js via Java позволяет изменять маркеры в списках. Вы можете заменять маркеры на пользовательские символы или изображения. Если вы хотите добавить визуальный интерес к списку или привлечь ещё больше внимания к элементам списка, вы можете использовать собственное изображение в качестве маркера. + +{{% alert color="primary" %}} + +Идеально, если вы планируете заменить обычный символ маркера картинкой, выбирайте простое графическое изображение с прозрачным фоном. Такие изображения лучше всего подходят в качестве пользовательских символов маркеров. + +В любом случае выбранное изображение будет уменьшено до очень маленького размера, поэтому настоятельно рекомендуем подобрать изображение, которое хорошо выглядит (в качестве замены символа маркера) в списке. + +{{% /alert %}} + +Для создания маркера‑изображения выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) +1. Доступ к нужному слайду в коллекции слайдов с помощью объекта [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) +1. Добавьте автоконтур в выбранный слайд +1. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) добавленной формы +1. Удалите абзац по умолчанию в [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +1. Создайте первый экземпляр абзаца с помощью класса Paragraph +1. Загрузите изображение с диска в [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage) +1. Установите тип маркера в Picture и задайте изображение +1. Установите текст абзаца +1. Установите отступ абзаца для установки маркера +1. Установите цвет маркера +1. Установите высоту маркеров +1. Добавьте созданный абзац в коллекцию абзацев [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +1. Добавьте второй абзац и повторите процесс, указанный в предыдущих шагах +1. Сохраните презентацию + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Создать изображение для маркеров + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Добавление и доступ к Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Доступ к текстовому фрейму созданной autoshape + var txtFrm = aShp.getTextFrame(); + // Удаление абзаца по умолчанию + txtFrm.getParagraphs().removeAt(0); + // Создание нового абзаца + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // Установка стиля маркера абзаца и изображения + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Установка высоты маркера + para.getParagraphFormat().getBullet().setHeight(100); + // Добавление абзаца в текстовый фрейм + txtFrm.getParagraphs().add(para); + // Запись презентации в файл PPTX + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Создание многоуровневых маркеров** + +Для создания списка с маркерами, содержащего элементы разных уровней (дополнительные списки под основным), выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Доступ к нужному слайду в коллекции слайдов с помощью объекта [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Добавьте автоконтур в выбранный слайд. +1. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) добавленной формы. +1. Удалите абзац по умолчанию в [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Создайте первый экземпляр абзаца с помощью класса Paragraph и установите глубину 0. +1. Создайте второй экземпляр абзаца с помощью класса Paragraph и установите глубину 1. +1. Создайте третий экземпляр абзаца с помощью класса Paragraph и установите глубину 2. +1. Создайте четвертый экземпляр абзаца с помощью класса Paragraph и установите глубину 3. +1. Добавьте созданные абзацы в коллекцию абзацев [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Сохраните презентацию. + +```javascript +// Создать экземпляр класса Presentation, представляющего файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Добавление и доступ к AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Доступ к текстовому фрейму созданной AutoShape + var txtFrm = aShp.addTextFrame(""); + // Удаление существующего абзаца по умолчанию + txtFrm.getParagraphs().clear(); + // Создание первого абзаца + var para1 = new aspose.slides.Paragraph(); + // Установка стиля маркера абзаца и символа + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Установка уровня маркера + para1.getParagraphFormat().setDepth(0); + // Создание второго абзаца + var para2 = new aspose.slides.Paragraph(); + // Установка стиля маркера абзаца и символа + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Установка уровня маркера + para2.getParagraphFormat().setDepth(1); + // Создание третьего абзаца + var para3 = new aspose.slides.Paragraph(); + // Установка стиля маркера абзаца и символа + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Установка уровня маркера + para3.getParagraphFormat().setDepth(2); + // Создание четвертого абзаца + var para4 = new aspose.slides.Paragraph(); + // Установка стиля маркера абзаца и символа + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Установка уровня маркера + para4.getParagraphFormat().setDepth(3); + // Добавление абзаца в текстовый фрейм + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // Сохранение презентации в файл PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Создание пользовательского нумерованного списка** + +Aspose.Slides for Node.js via Java предоставляет простой API для управления абзацами с пользовательским форматированием номеров. Чтобы добавить пользовательский нумерованный список в абзац, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +1. Доступ к нужному слайду в коллекции слайдов с помощью объекта [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide). +1. Добавьте автоконтур в выбранный слайд. +1. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) добавленной формы. +1. Удалите абзац по умолчанию в [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Создайте первый абзац с помощью класса Paragraph и установите **NumberedBulletStartWith** в 2 +1. Создайте второй абзац с помощью класса Paragraph и установите **NumberedBulletStartWith** в 3 +1. Создайте третий абзац с помощью класса Paragraph и установите **NumberedBulletStartWith** в 7 +1. Добавьте созданные абзацы в коллекцию абзацев [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe). +1. Сохраните презентацию. + +```javascript +// Создать экземпляр класса Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Добавление и доступ к AutoShape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Доступ к текстовому фрейму созданной AutoShape + var txtFrm = aShp.addTextFrame(""); + // Удаление существующего абзаца по умолчанию + txtFrm.getParagraphs().clear(); + // Первый список + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // Второй список + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Могут ли списки с маркерами и нумерацией, созданные с помощью Aspose.Slides, экспортироваться в другие форматы, такие как PDF или изображения?** + +Да, Aspose.Slides полностью сохраняет форматирование и структуру маркеров и нумерованных списков при экспорте презентаций в такие форматы, как PDF, изображения и другие, обеспечивая согласованные результаты. + +**Можно ли импортировать списки с маркерами или нумерацией из существующих презентаций?** + +Да, Aspose.Slides позволяет импортировать и редактировать списки с маркерами или нумерацией из существующих презентаций, сохраняя их исходное форматирование и внешний вид. + +**Поддерживает ли Aspose.Slides маркеры и нумерованные списки в презентациях, созданных на разных языках?** + +Да, Aspose.Slides полностью поддерживает многоязычные презентации, позволяя создавать маркеры и нумерованные списки на любом языке, включая использование специальных или нелатинских символов. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..751990fa12 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,710 @@ +--- +title: Управление абзацами PowerPoint в JavaScript +type: docs +weight: 40 +url: /ru/nodejs-java/manage-paragraph/ +keywords: +- добавить текст +- добавить абзацы +- управлять текстом +- управлять абзацами +- отступ абзаца +- маркер абзаца +- нумерованный список +- свойства абзаца +- импорт HTML +- текст в HTML +- абзац в HTML +- абзацы в изображения +- экспортировать абзацы +- презентация PowerPoint +- JavaScript +- Aspose.Slides для Node.js через Java +description: "Создавать абзацы и управлять свойствами абзацев в презентациях PowerPoint на JavaScript" +--- + +Aspose.Slides предоставляет все классы, необходимые для работы с текстами PowerPoint, абзацами и частями в Java. + +* Aspose.Slides предоставляет класс [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) для добавления объектов, представляющих абзац. Объект `ITextFame` может содержать один или несколько абзацев (каждый абзац создаётся с помощью возврата каретки). +* Aspose.Slides предоставляет класс [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) для добавления объектов, представляющих части. Объект `IParagraph` может содержать одну или несколько частей (коллекцию объектов iPortions). +* Aspose.Slides предоставляет класс [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) для добавления объектов, представляющих тексты и их свойства форматирования. + +Объект `IParagraph` способен обрабатывать тексты с различными свойствами форматирования через его вложенные объекты `IPortion`. + +## **Добавить несколько абзацев, содержащих несколько частей** + +Эти шаги показывают, как добавить текстовый фрейм, содержащий 3 абзаца, каждый из которых содержит 3 части: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получите ссылку на нужный слайд по его индексу. +3. Добавьте прямоугольный [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на слайд. +4. Получите `ITextFrame`, связанный с [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/). +5. Создайте два объекта [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) и добавьте их в коллекцию `IParagraphs` [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +6. Создайте три объекта [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) для каждого нового `IParagraph` (две части по умолчанию для абзаца) и добавьте каждый объект `IPortion` в коллекцию IPortion соответствующего `IParagraph`. +7. Установите текст для каждой части. +8. Примените желаемые свойства форматирования к каждой части с помощью свойств форматирования, доступных в объекте `IPortion`. +9. Сохраните изменённую презентацию. + +Этот Javascript‑код реализует описанные шаги по добавлению абзацев, содержащих части: +```javascript +// Создать объект класса Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // Получить TextFrame AutoShape + var tf = ashp.getTextFrame(); + // Create Paragraphs and Portions with different text formats + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // Сохранить PPTX на диск + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Управление маркерами абзаца** + +Маркированные списки помогают быстро и эффективно организовать и представить информацию. Маркированные абзацы всегда легче читать и понимать. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получите ссылку на нужный слайд по его индексу. +3. Добавьте [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) к выбранному слайду. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) автоконтурного объекта. +5. Удалите абзац по умолчанию в `TextFrame`. +6. Создайте первый экземпляр абзаца с помощью класса [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Установите тип маркера `Type` для абзаца в `Symbol` и задайте символ маркера. +8. Установите текст абзаца `Text`. +9. Установите отступ абзаца `Indent` для маркера. +10. Задайте цвет маркера. +11. Задайте высоту маркера. +12. Добавьте новый абзац в коллекцию абзацев `TextFrame`. +13. Добавьте второй абзац и повторите процесс, описанный в шагах 7‑13. +14. Сохраните презентацию. + +Этот Javascript‑код показывает, как добавить маркер абзаца: +```javascript +// Создаёт экземпляр класса Presentation, представляющего файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var slide = pres.getSlides().get_Item(0); + // Добавляет и получает Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Получает текстовый фрейм автоконтурного объекта + var txtFrm = aShp.getTextFrame(); + // Удаляет абзац по умолчанию + txtFrm.getParagraphs().removeAt(0); + // Создаёт абзац + var para = new aspose.slides.Paragraph(); + // Устанавливает стиль маркера абзаца и символ + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // Устанавливает текст абзаца + para.setText("Welcome to Aspose.Slides"); + // Устанавливает отступ маркера + para.getParagraphFormat().setIndent(25); + // Устанавливает цвет маркера + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// установить IsBulletHardColor в true, чтобы использовать собственный цвет маркера + // Устанавливает высоту маркера + para.getParagraphFormat().getBullet().setHeight(100); + // Добавляет абзац в текстовый фрейм + txtFrm.getParagraphs().add(para); + // Создаёт второй абзац + var para2 = new aspose.slides.Paragraph(); + // Устанавливает тип и стиль маркера абзаца + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // Добавляет текст абзаца + para2.setText("This is numbered bullet"); + // Устанавливает отступ маркера + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// установить IsBulletHardColor в true, чтобы использовать собственный цвет маркера + // Устанавливает высоту маркера + para2.getParagraphFormat().getBullet().setHeight(100); + // Добавляет абзац в текстовый фрейм + txtFrm.getParagraphs().add(para2); + // Сохраняет изменённую презентацию + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Управление маркерами‑картинками** + +Маркированные списки помогают быстро и эффективно организовать и представить информацию. Абзацы с картинками легко читаются и понимаются. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получите ссылку на нужный слайд по его индексу. +3. Добавьте [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на слайд. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) автоконтурного объекта. +5. Удалите абзац по умолчанию в `TextFrame`. +6. Создайте первый экземпляр абзаца с помощью класса [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +7. Загрузите изображение в [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/). +8. Установите тип маркера в [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) и задайте изображение. +9. Установите текст абзаца `Text`. +10. Установите отступ абзаца `Indent` для маркера. +11. Задайте цвет маркера. +12. Задайте высоту маркера. +13. Добавьте новый абзац в коллекцию абзацев `TextFrame`. +14. Добавьте второй абзац и повторите процесс, основанный на предыдущих шагах. +15. Сохраните изменённую презентацию. + +Этот Javascript‑код показывает, как добавить и управлять маркерами‑картинками: +```javascript +// Создаёт экземпляр класса Presentation, представляющего файл PPTX +var presentation = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var slide = presentation.getSlides().get_Item(0); + // Создаёт изображение для маркеров + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Добавляет и получает Autoshape + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Получает текстовый фрейм автoshape + var textFrame = autoShape.getTextFrame(); + // Удаляет абзац по умолчанию + textFrame.getParagraphs().removeAt(0); + // Создаёт новый абзац + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // Устанавливает стиль маркера абзаца и изображение + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // Устанавливает высоту маркера + paragraph.getParagraphFormat().getBullet().setHeight(100); + // Добавляет абзац в текстовый фрейм + textFrame.getParagraphs().add(paragraph); + // Сохраняет презентацию как файл PPTX + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // Сохраняет презентацию как файл PPT + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Управление многоуровневыми маркерами** + +Маркированные списки помогают быстро и эффективно организовать и представить информацию. Многоуровневые маркеры легко читаются и понимаются. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получите ссылку на нужный слайд по его индексу. +3. Добавьте [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на новый слайд. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) автоконтурного объекта. +5. Удалите абзац по умолчанию в `TextFrame`. +6. Создайте первый экземпляр абзаца через класс [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) и установите глубину 0. +7. Создайте второй экземпляр абзаца через класс `Paragraph` и установите глубину 1. +8. Создайте третий экземпляр абзаца через класс `Paragraph` и установите глубину 2. +9. Создайте четвёртый экземпляр абзаца через класс `Paragraph` и установите глубину 3. +10. Добавьте новые абзацы в коллекцию абзацев `TextFrame`. +11. Сохраните изменённую презентацию. + +Этот Javascript‑код показывает, как добавить и управлять многоуровневыми маркерами: +```javascript +// Создаёт экземпляр класса Presentation, представляющего файл PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var slide = pres.getSlides().get_Item(0); + // Добавляет и получает Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Получает текстовый фрейм созданного Autoshape + var text = aShp.addTextFrame(""); + // Очищает абзац по умолчанию + text.getParagraphs().clear(); + // Добавляет первый абзац + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Устанавливает уровень маркера + para1.getParagraphFormat().setDepth(0); + // Добавляет второй абзац + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Устанавливает уровень маркера + para2.getParagraphFormat().setDepth(1); + // Добавляет третий абзац + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Устанавливает уровень маркера + para3.getParagraphFormat().setDepth(2); + // Добавляет четвёртый абзац + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Устанавливает уровень маркера + para4.getParagraphFormat().setDepth(3); + // Добавляет абзацы в коллекцию + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // Сохраняет презентацию как файл PPTX + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Управление абзацами с пользовательским нумерованным списком** + +Класс [BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) предоставляет свойство [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) и другие, позволяющие управлять абзацами с пользовательской нумерацией или форматированием. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получите слайд, содержащий абзац. +3. Добавьте [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на слайд. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) автоконтурного объекта. +5. Удалите абзац по умолчанию в `TextFrame`. +6. Создайте первый экземпляр абзаца через класс [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) и установите [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) в 2. +7. Создайте второй экземпляр абзаца через класс `Paragraph` и установите `NumberedBulletStartWith` в 3. +8. Создайте третий экземпляр абзаца через класс `Paragraph` и установите `NumberedBulletStartWith` в 7. +9. Добавьте новые абзацы в коллекцию абзацев `TextFrame`. +10. Сохраните изменённую презентацию. + +Этот Javascript‑код показывает, как добавить и управлять абзацами с пользовательской нумерацией или форматированием: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // Получает текстовый фрейм созданного автоконтурного объекта + var textFrame = shape.getTextFrame(); + // Удаляет существующий абзац по умолчанию + textFrame.getParagraphs().removeAt(0); + // Первый список + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Установка отступа абзаца** + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Получите ссылку на нужный слайд по его индексу. +1. Добавьте прямоугольный [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на слайд. +1. Добавьте [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) с тремя абзацами к прямоугольному автоконтурному объекту. +1. Спрячьте линии прямоугольника. +1. Установите отступ для каждого [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) через его свойство BulletOffset. +1. Запишите изменённую презентацию в файл PPT. + +Этот Javascript‑код показывает, как установить отступ абзаца: +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получить первый слайд + var sld = pres.getSlides().get_Item(0); + // Добавить форму Rectangle + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // Добавить TextFrame к прямоугольнику + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // Установить автоматическое подгонку текста к форме + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Скрыть линии прямоугольника + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // Получить первый абзац в TextFrame и установить его отступ + var para1 = tf.getParagraphs().get_Item(0); + // Установка стиля маркера абзаца и символа + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // Получить второй абзац в TextFrame и установить его отступ + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // Получить третий абзац в TextFrame и установить его отступ + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // Сохранить презентацию на диск + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка висячего отступа для абзаца** + +Этот Javascript‑код показывает, как установить висячий отступ для абзаца: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Управление свойствами End Run для абзаца** + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Получите ссылку на слайд, содержащий абзац, по его позиции. +1. Добавьте прямоугольный [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на слайд. +1. Добавьте [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) с двумя абзацами к прямоугольнику. +1. Установите `FontHeight` и тип шрифта для абзацев. +1. Установите свойства End для абзацев. +1. Запишите изменённую презентацию в файл PPTX. + +Этот Javascript‑код показывает, как установить свойства End для абзацев в PowerPoint: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Импорт HTML‑текста в абзацы** + +Aspose.Slides предоставляет расширенную поддержку импорта HTML‑текста в абзацы. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получите ссылку на нужный слайд по его индексу. +3. Добавьте [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) на слайд. +4. Добавьте и получите `autoshape` [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +5. Удалите абзац по умолчанию в `ITextFrame`. +6. Прочитайте исходный HTML‑файл в объекте TextReader. +7. Создайте первый экземпляр абзаца через класс [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/). +8. Добавьте содержимое HTML‑файла из прочитанного TextReader в [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/) TextFrame. +9. Сохраните изменённую презентацию. + +Этот Javascript‑код реализует шаги по импорту HTML‑текстов в абзацы: +```javascript +// Создать пустой экземпляр презентации +var pres = new aspose.slides.Presentation(); +try { + // Получить первый слайд презентации по умолчанию + var slide = pres.getSlides().get_Item(0); + // Добавление AutoShape для размещения HTML‑содержимого + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Добавление текстового фрейма к форме + ashape.addTextFrame(""); + // Очистка всех абзацев в добавленном текстовом фрейме + ashape.getTextFrame().getParagraphs().clear(); + // Загрузка HTML‑файла с помощью StreamReader + var tr = java.newInstanceSync("StreamReader", "file.html"); + // Добавление текста из HTML‑потока в текстовый фрейм + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // Сохранение презентации + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Экспорт текста абзацев в HTML** + +Aspose.Slides предоставляет расширенную поддержку экспорта текстов (содержащихся в абзацах) в HTML. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) и загрузите нужную презентацию. +2. Получите ссылку на нужный слайд по его индексу. +3. Получите форму, содержащую текст, который будет экспортирован в HTML. +4. Получите форму [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/). +5. Создайте экземпляр `StreamWriter` и добавьте новый HTML‑файл. +6. Укажите начальный индекс для `StreamWriter` и экспортируйте нужные абзацы. + +Этот Javascript‑код показывает, как экспортировать тексты абзацев PowerPoint в HTML: +```javascript +// Загрузить файл презентации +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // Получить первый слайд презентации по умолчанию + var slide = pres.getSlides().get_Item(0); + // Желаемый индекс + var index = 0; + // Доступ к добавленной фигуре + var ashape = slide.getShapes().get_Item(index); + // Создание выходного HTML файла + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // Извлечение первого абзаца в виде HTML + // Запись данных абзацев в HTML, указав начальный индекс абзаца и количество копируемых абзацев + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Сохранить абзац как изображение** + +В этом разделе мы рассмотрим два примера, демонстрирующие, как сохранить текстовый абзац, представленный интерфейсом [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/), в виде изображения. Оба примера включают получение изображения формы, содержащей абзац, с помощью методов `getImage` интерфейса [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/), вычисление границ абзаца внутри формы и экспорт его в виде растрового изображения. Такие подходы позволяют извлекать отдельные части текста из презентаций PowerPoint и сохранять их как отдельные изображения, что может быть полезно в различных сценариях. + +Предположим, у нас есть файл презентации sample.pptx с одним слайдом, на котором первая форма — это текстовое поле, содержащее три абзаца. + +![The text box with three paragraphs](paragraph_to_image_input.png) + +**Пример 1** + +В этом примере мы получаем второй абзац в виде изображения. Для этого извлекаем изображение формы с первого слайда презентации, затем вычисляем границы второго абзаца в текстовом фрейме формы. Затем абзац перерисовывается на новом растровом изображении, которое сохраняется в формате PNG. Этот метод особенно полезен, когда нужно сохранить конкретный абзац как отдельное изображение, сохранив точные размеры и форматирование текста. +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Сохранить фигуру в памяти в виде битмапа. + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // Создать bitmap фигуры из памяти. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Вычислить границы второго абзаца. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // Вычислить координаты и размер выходного изображения (минимальный размер — 1x1 пиксель). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Обрезать bitmap фигуры, чтобы получить только bitmap абзаца. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +Результат: + +![The paragraph image](paragraph_to_image_output.png) + +**Пример 2** + +В этом примере мы расширяем предыдущий подход, добавляя коэффициенты масштабирования к изображению абзаца. Форма извлекается из презентации и сохраняется как изображение с коэффициентом масштабирования `2`. Это позволяет получить изображение более высокого разрешения при экспорте абзаца. Затем границы абзаца рассчитываются с учётом масштаба. Масштабирование может быть особенно полезно, когда требуется более детализированное изображение, например, для печатных материалов высокого качества. +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // Сохранить фигуру в памяти в виде битмапа с масштабированием. + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // Создать битмап фигуры из памяти. + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // Вычислить границы второго абзаца. + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // Вычислить координаты и размер выходного изображения (минимальный размер - 1x1 пиксель). + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // Обрезать битмап фигуры, чтобы получить только битмап абзаца. + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **FAQ** + +**Можно ли полностью отключить перенос строк внутри текстового фрейма?** + +Да. Используйте настройку переноса текста фрейма ([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/)), чтобы отключить перенос, и строки не будут разрываться по краям фрейма. + +**Как получить точные границы конкретного абзаца на слайде?** + +Можно получить прямоугольник, ограничивающий абзац (и даже отдельную часть), чтобы узнать его точное положение и размеры на слайде. + +**Где управляется выравнивание абзаца (лево/право/центр/по ширине)?** + +Метод [setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/) относится к настройке уровня абзаца в [ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/); он применяется ко всему абзацу независимо от форматирования отдельных частей. + +**Можно ли установить язык проверки орфографии только для части абзаца (например, одного слова)?** + +Да. Язык задаётся на уровне части ([PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)), поэтому в одном абзаце могут сосуществовать несколько языков. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..3293076b6e --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,115 @@ +--- +title: Управление заполнителем +type: docs +weight: 10 +url: /ru/nodejs-java/manage-placeholder/ +description: Изменение текста в заполнителе в слайдах PowerPoint с помощью JavaScript. Установка подсказочного текста в заполнителе в слайдах PowerPoint с помощью JavaScript. +--- + +## **Изменить текст в заполнителе** + +Используя [Aspose.Slides for Node.js via Java](/slides/ru/nodejs-java/), вы можете находить и изменять заполнители на слайдах презентаций. Aspose.Slides позволяет вносить изменения в текст заполнителя. + +**Требования**: Вам нужна презентация, содержащая заполнитель. Вы можете создать такую презентацию в стандартном приложении Microsoft PowerPoint. + +Вот как использовать Aspose.Slides для замены текста в заполнителе в этой презентации: + +1. Создайте экземпляр класса [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) и передайте в него презентацию в качестве аргумента. +2. Получите ссылку на слайд по его индексу. +3. Пройдитесь по фигурам, чтобы найти заполнитель. +4. Приведите форму заполнителя к типу [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) и измените текст, используя [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), связанный с [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Сохраните изменённую презентацию. + +```javascript +// Создаёт экземпляр класса Presentation +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // Получает первый слайд + var sld = pres.getSlides().get_Item(0); + // Перебирает фигуры, чтобы найти заполнитель + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // Изменяет текст в каждом заполнителе + shp.getTextFrame().setText("This is Placeholder"); + } + } + // Сохраняет презентацию на диск + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить подсказочный текст в заполнитель** + +Стандартные и готовые макеты содержат подсказочные тексты заполнителей, такие как ***Нажмите, чтобы добавить заголовок*** или ***Нажмите, чтобы добавить подзаголовок***. С помощью Aspose.Slides вы можете вставлять свои собственные подсказочные тексты в макеты заполнителей. + +Этот JavaScript‑код показывает, как установить подсказочный текст в заполнитель: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // Перебирает слайд + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // PowerPoint отображает "Нажмите, чтобы добавить заголовок" + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // Добавляет подзаголовок + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить прозрачность изображения заполнителя** + +Aspose.Slides позволяет задать прозрачность фонового изображения в текстовом заполнителе. Регулируя прозрачность картинки в таком кадре, вы можете выделить текст или изображение (в зависимости от цветов текста и картинки). + +Этот JavaScript‑код демонстрирует, как установить прозрачность фонового изображения (внутри фигуры): +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Часто задаваемые вопросы** + +**Что такое базовый заполнитель и чем он отличается от локальной фигуры на слайде?** + +Базовый заполнитель — это исходная форма в макете или образце, от которой наследуется форма слайда: тип, положение и часть форматирования берутся из неё. Локальная фигура независима; если базового заполнителя нет, наследование не применяется. + +**Как обновить все заголовки или подписи во всей презентации без обхода каждого слайда?** + +Отредактируйте соответствующий заполнитель в макете или образце. Слайды, основанные на этих макетах/образце, автоматически унаследуют изменения. + +**Как управлять стандартными заполнителями верхнего/нижнего колонтитула — датой и временем, номером слайда и текстом колонтитула?** + +Используйте менеджеры HeaderFooter в нужной области (обычные слайды, макеты, образец, заметки/раздаточные материалы), чтобы включать или отключать эти заполнители и задавать их содержимое. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..fca7b4a307 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,294 @@ +--- +title: Управление текстовым полем +type: docs +weight: 20 +url: /ru/nodejs-java/manage-textbox/ +keywords: +- текстовое поле +- текстовый кадр +- добавить текст +- обновить текст +- текстовое поле с гиперссылкой +- PowerPoint +- презентация +- Node.js +- JavaScript +- Aspose.Slides для Node.js через Java +description: "Управляйте текстовым полем или текстовым кадром в презентациях PowerPoint с помощью JavaScript" +--- + +Текст на слайдах обычно находится в текстовых полях или фигурах. Поэтому, чтобы добавить текст на слайд, необходимо добавить текстовое поле и затем поместить там текст. Aspose.Slides for Node.js via Java предоставляет класс [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape), который позволяет добавить фигуру, содержащую текст. + +{{% alert title="Info" color="info" %}} +Aspose.Slides также предоставляет класс [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape), который позволяет добавлять фигуры на слайды. Однако не все фигуры, добавленные через класс `Shape`, могут содержать текст. Фигуры, добавленные через класс [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape), могут содержать текст. +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} +Поэтому, работая с фигурой, в которую нужно добавить текст, рекомендуется проверить и убедиться, что она была приведена к классу `AutoShape`. Только тогда вы сможете работать с [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), который является свойством `AutoShape`. См. раздел [Update Text](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text) на этой странице. +{{% /alert %}} + +## **Создание текстового поля на слайде** + +Чтобы создать текстовое поле на слайде, выполните следующие действия: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на первый слайд в только что созданной презентации. +3. Добавьте объект [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) с типом `ShapeType`, установленным в `Rectangle`, в указанном положении на слайде и получите ссылку на только что добавленный объект `AutoShape`. +4. Добавьте свойство `TextFrame` к объекту `AutoShape`, которое будет содержать текст. В примере ниже мы добавили такой текст: *Aspose TextBox*. +5. Наконец, запишите файл PPTX через объект `Presentation`. + +Этот JavaScript‑код, реализующий описанные шаги, показывает, как добавить текст на слайд: +```javascript +// Создаёт объект Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд в презентации + var sld = pres.getSlides().get_Item(0); + // Добавляет AutoShape с типом Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Добавляет TextFrame в прямоугольник + ashp.addTextFrame(" "); + // Получает доступ к текстовому кадру + var txtFrame = ashp.getTextFrame(); + // Создаёт объект Paragraph для текстового кадра + var para = txtFrame.getParagraphs().get_Item(0); + // Создаёт объект Portion для абзаца + var portion = para.getPortions().get_Item(0); + // Устанавливает текст + portion.setText("Aspose TextBox"); + // Сохраняет презентацию на диск + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Проверка формы текстового поля** + +Aspose.Slides предоставляет метод [isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox) класса [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/), позволяющий проверять фигуры и определять, являются ли они текстовыми полями. + +![Текстовое поле и фигура](istextbox.png) + +Этот JavaScript‑код показывает, как проверить, создана ли фигура как текстовое поле: +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +Обратите внимание, что если вы просто добавите автогенерируемую фигуру с помощью метода `addAutoShape` класса [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/), метод `isTextBox` у такой фигуры вернёт `false`. Однако после того, как вы добавите текст в автогенерируемую фигуру с помощью метода `addTextFrame` или `setText`, свойство `isTextBox` вернёт `true`. +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() возвращает false +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() возвращает true + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() возвращает false +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() возвращает true + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() возвращает false +shape3.addTextFrame(""); +// shape3.isTextBox() возвращает false + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() возвращает false +shape4.getTextFrame().setText(""); +// shape4.isTextBox() возвращает false +``` + + +## **Добавление колонок в текстовое поле** + +Aspose.Slides предоставляет методы [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) и [setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-) класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat), которые позволяют добавлять колонки в текстовые поля. Вы можете задать количество колонок в текстовом поле и установить промежуток в пунктах между колонками. + +Этот код на JavaScript демонстрирует описанную операцию: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд в презентации + var slide = pres.getSlides().get_Item(0); + // Добавляет AutoShape с типом Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // Добавляет TextFrame к прямоугольнику + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // Получает формат текста TextFrame + var format = aShape.getTextFrame().getTextFrameFormat(); + // Задаёт количество колонок в TextFrame + format.setColumnCount(3); + // Задаёт расстояние между колонками + format.setColumnSpacing(10); + // Сохраняет презентацию + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление колонки в текстовый кадр** + +Aspose.Slides for Node.js via Java предоставляет метод [setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-) класса [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat), который позволяет добавлять колонки в текстовые кадры. С помощью этого свойства вы можете указать желаемое количество колонок в текстовом кадре. + +Этот JavaScript‑код показывает, как добавить колонку внутри текстового кадра: +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Обновление текста** + +Aspose.Slides позволяет изменять или обновлять текст, содержащийся в текстовом поле, либо все тексты, содержащиеся в презентации. + +Этот JavaScript‑код демонстрирует операцию, при которой все тексты в презентации обновляются или изменяются: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // Проверяет, поддерживает ли фигура текстовый кадр (IAutoShape). + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // Проходит по абзацам в текстовом кадре + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // Проходит по каждому сегменту в абзаце + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// Изменяет текст + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// Изменяет форматирование + } + } + } + } + } + // Сохраняет изменённую презентацию + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление текстового поля с гиперссылкой** + +Вы можете вставить ссылку внутрь текстового поля. При щелчке по полю пользователи будут перенаправлены к открытию ссылки. + +Чтобы добавить текстовое поле, содержащее ссылку, выполните следующие шаги: + +1. Создайте экземпляр класса `Presentation`. +2. Получите ссылку на первый слайд в только что созданной презентации. +3. Добавьте объект `AutoShape` с типом `ShapeType`, установленным в `Rectangle`, в заданном положении на слайде и получите ссылку на только что добавленный объект `AutoShape`. +4. Добавьте `TextFrame` к объекту `AutoShape`, который содержит *Aspose TextBox* в качестве текста по умолчанию. +5. Создайте экземпляр класса `HyperlinkManager`. +6. Свяжите объект `HyperlinkManager` со свойством [HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--) вашего выбранного фрагмента `TextFrame`. +7. Наконец, запишите файл PPTX через объект `Presentation`. + +Этот JavaScript‑код, реализующий описанные шаги, показывает, как добавить текстовое поле с гиперссылкой на слайд: +```javascript +// Создает объект класса Presentation, представляющий PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд в презентации + var slide = pres.getSlides().get_Item(0); + // Добавляет объект AutoShape с типом Rectangle + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // Преобразует форму к AutoShape + var pptxAutoShape = shape; + // Получает свойство ITextFrame, связанное с AutoShape + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // Добавляет некоторый текст в кадр + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // Устанавливает гиперссылку для текста сегмента + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // Сохраняет презентацию PPTX + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**В чём разница между текстовым полем и заполнителем текста при работе с слайдами‑шаблонами?** + +[Заполнитель](/slides/ru/nodejs-java/manage-placeholder/) наследует стиль/позицию от [главного шаблона](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/) и может быть переопределён на [макетах](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/), тогда как обычное текстовое поле является независимым объектом на конкретном слайде и не меняется при переключении макетов. + +**Как выполнить массовую замену текста во всей презентации, не затрагивая текст внутри диаграмм, таблиц и SmartArt?** + +Ограничьте итерацию только автогенерируемыми фигурами, имеющими текстовые кадры, и исключите встроенные объекты ([диаграммы](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/), [таблицы](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/), [SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/)), обходя их коллекции отдельно или пропуская такие типы объектов. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..da9cf2984d --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: Локализация презентации +type: docs +weight: 100 +url: /ru/nodejs-java/presentation-localization/ +--- + +## **Изменение языка для текста в презентации и фигуре** + +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Получите ссылку на слайд, используя его индекс. +- Добавьте на слайд [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) типа [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle). +- Добавьте текст в TextFrame. +- [Установка Language Id](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setLanguageId-java.lang.String-) к тексту. +- Сохраните презентацию в файл PPTX. + +Реализация вышеуказанных шагов продемонстрирована ниже в примере. +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Вызывает ли language ID автоматический перевод текста?** + +Нет. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) в Aspose.Slides сохраняет язык для проверки орфографии и грамматики, но не переводит и не меняет содержимое текста. Это метаданные, которые PowerPoint понимает для проверки. + +**Влияет ли language ID на переносы и разрывы строк при отображении?** + +В Aspose.Slides [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) используется для проверки. Качество переносов и разрывов строк в основном зависит от наличия [proper fonts](/slides/ru/nodejs-java/powerpoint-fonts/) и настроек макета/переноса строк для системы письма. Чтобы обеспечить правильное отображение, предоставьте необходимые шрифты, настройте [font substitution rules](/slides/ru/nodejs-java/font-substitution/), и/или [embed fonts](/slides/ru/nodejs-java/embedded-font/) в презентацию. + +**Можно ли установить разные языки в одном абзаце?** + +Да. [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) применяется на уровне части текста, поэтому в одном абзаце можно смешивать несколько языков с разными настройками проверки. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..39fc8375e0 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,86 @@ +--- +title: Верхний и нижний индекс +type: docs +weight: 80 +url: /ru/nodejs-java/superscript-and-subscript/ +--- + +## **Управление верхним и нижним индексом текста** + +Вы можете добавлять текст в верхнем и нижнем индексе в любую часть абзаца. Для добавления текста в верхнем или нижнем индексе в текстовый фрейм Aspose.Slides необходимо использовать метод [**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) класса [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat). + +Это свойство возвращает или задает текст в верхнем или нижнем индексе (значение от -100 % (нижний индекс) до 100 % (верхний индекс)). Например: + +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Получите ссылку на слайд, используя его индекс. +- Добавьте [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) типа [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) на слайд. +- Получите доступ к [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), связанному с [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +- Очистите существующие абзацы +- Создайте новый объект параграфа для хранения текста верхнего индекса и добавьте его в [Paragraphs collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) объекта [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). +- Создайте новый объект части +- Установите свойство Escapement для части в диапазоне от 0 до 100 для добавления верхнего индекса. (0 означает отсутствие верхнего индекса) +- Установите некоторый текст для [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) и затем добавьте его в коллекцию частей абзаца. +- Создайте новый объект параграфа для хранения текста нижнего индекса и добавьте его в коллекцию IParagraphs объекта ITextFrame. +- Создайте новый объект части +- Установите свойство Escapement для части в диапазоне от 0 до -100 для добавления нижнего индекса. (0 означает отсутствие нижнего индекса) +- Установите некоторый текст для [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) и затем добавьте его в коллекцию частей абзаца. +- Сохраните презентацию в файл PPTX. + +Реализация вышеуказанных шагов представлена ниже. +```javascript +// Создать экземпляр класса Presentation, представляющего PPTX +var pres = new aspose.slides.Presentation(); +try { + // Получить слайд + var slide = pres.getSlides().get_Item(0); + // Создать текстовое поле + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // Создать абзац для текста в верхнем индексе + var superPar = new aspose.slides.Paragraph(); + // Создать часть с обычным текстом + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // Создать часть с текстом верхнего индекса + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // Создать абзац для текста в нижнем индексе + var paragraph2 = new aspose.slides.Paragraph(); + // Создать часть с обычным текстом + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // Создать часть с текстом нижнего индекса + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // Добавить абзацы в текстовое поле + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Будут ли верхний и нижний индекс сохраняться при экспорте в PDF или другие форматы?** + +Да, Aspose.Slides правильно сохраняет форматирование верхнего и нижнего индекса при экспорте презентаций в PDF, PPT/PPTX, изображения и другие поддерживаемые форматы. Специальное форматирование остаётся неизменным во всех выходных файлах. + +**Можно ли комбинировать верхний и нижний индекс с другими стилями форматирования, такими как полужирный или курсив?** + +Да, Aspose.Slides позволяет смешивать различные стили текста в одной части текста. Вы можете включать полужирный, курсив, подчёркивание и одновременно применять верхний или нижний индекс, настраивая соответствующие свойства в [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). + +**Работает ли форматирование верхнего и нижнего индекса для текста внутри таблиц, диаграмм или SmartArt?** + +Да, Aspose.Slides поддерживает форматирование в большинстве объектов, включая таблицы и элементы диаграмм. При работе с SmartArt необходимо получить доступ к соответствующим элементам (например, [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/)) и их контейнерам текста, а затем настроить свойства [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) аналогичным образом. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..dfbe787a33 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,684 @@ +--- +title: Форматирование текста PowerPoint в JavaScript +linktitle: Форматирование текста +type: docs +weight: 50 +url: /ru/nodejs-java/text-formatting/ +keywords: +- выделение текста +- регулярное выражение +- выравнивание абзаца +- стиль текста +- фон текста +- прозрачность текста +- межсимвольный интервал +- свойства шрифта +- семейство шрифтов +- вращение текста +- угол вращения +- текстовый фрейм +- межстрочный интервал +- свойство автоподгонки +- привязка текстового фрейма +- табуляция текста +- язык по умолчанию +- PowerPoint +- OpenDocument +- презентация +- Node.js +- JavaScript +- Aspose.Slides +description: "Узнайте, как форматировать и оформлять текст в презентациях PowerPoint и OpenDocument с помощью Aspose.Slides для Node.js через Java. Настраивайте шрифты, цвета, выравнивание и многое другое с помощью мощных примеров кода на JavaScript." +--- + +## **Выделение текста** + +Метод [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-) был добавлен в класс [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) и класс [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +Он позволяет выделять часть текста фоновым цветом, используя образец текста, аналогично инструменту Text Highlight Color в PowerPoint 2019. + +Ниже показан фрагмент кода, демонстрирующий, как использовать эту функцию: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// выделение всех слов 'important' + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// выделение всех отдельных вхождений 'the' + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +Aspose предоставляет простой, [бесплатный онлайн‑сервис редактирования PowerPoint](https://products.aspose.app/slides/editor) + +{{% /alert %}} + +## **Выделение текста с помощью регулярного выражения** + +Метод [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-) был добавлен в класс [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) и класс [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame). + +Он позволяет выделять часть текста фоновым цветом, используя регулярное выражение, аналогично инструменту Text Highlight Color в PowerPoint 2019. + +Ниже показан фрагмент кода, демонстрирующий, как использовать эту функцию: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// выделение всех слов длиной 10 символов и более + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка фонового цвета текста** + +Aspose.Slides позволяет указать предпочитаемый цвет фона текста. + +Этот JavaScript‑код показывает, как установить фоновой цвет для всего текста: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +Этот JavaScript‑код показывает, как установить фоновой цвет только для части текста: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Выравнивание абзацев текста** + +Форматирование текста — один из ключевых элементов при создании любых документов или презентаций. Мы знаем, что Aspose.Slides for Node.js via Java поддерживает добавление текста на слайды, но в этой теме мы посмотрим, как можно управлять выравниванием абзацев текста на слайде. Пожалуйста, выполните следующие шаги, чтобы выровнять абзацы текста, используя Aspose.Slides for Node.js via Java: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд, используя его индекс. +3. Получите доступ к Placeholder‑формам на слайде и приведите их к типу [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +4. Получите абзац (который нужно выровнять) из [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) объекта [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Выровняйте абзац. Абзац может быть выровнен по правому, левому, центру или с выравниванием по ширине. +6. Сохраните изменённую презентацию в файл PPTX. + +Реализация вышеуказанных шагов приведена ниже. +```javascript +// Создать объект Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Доступ к первому и второму placeholder на слайде и приведение их к AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Изменить текст в обоих placeholder + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // Получение первого абзаца в placeholder + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Выравнивание абзаца текста по центру + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // Сохранение презентации в файл PPTX + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка прозрачности текста** + +В этой статье показано, как задать свойство прозрачности для любой текстовой формы с помощью Aspose.Slides for Node.js via Java. Чтобы установить прозрачность текста, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд. +3. Установите цвет тени. +4. Сохраните презентацию в файл PPTX. + +Реализация вышеуказанных шагов приведена ниже. +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // установить прозрачность в 0 процентов + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка межсимвольного интервала для текста** + +Aspose.Slides позволяет задать интервал между буквами в текстовом поле. Таким образом, вы можете регулировать визуальную плотность строки или блока текста, расширяя или сужая интервал между символами. + +Этот JavaScript‑код показывает, как увеличить интервал для одной строки текста и уменьшить его для другой строки: +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// расширить +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// сжать +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **Управление свойствами шрифта абзаца** + +Презентации обычно содержат как текст, так и изображения. Текст может быть отформатирован различными способами — либо для выделения определённых разделов и слов, либо в соответствии с корпоративными стилями. Форматирование текста помогает пользователям варьировать внешний вид содержимого презентации. Эта статья показывает, как с помощью Aspose.Slides for Node.js via Java настроить свойства шрифта абзацев текста на слайдах. Чтобы управлять свойствами шрифта абзаца, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получите ссылку на слайд, используя его индекс. +1. Получите доступ к Placeholder‑формам на слайде и приведите их к типу [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +1. Получите [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) из [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame), предоставленного объектом [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +1. Выравняйте абзац. +1. Получите текстовую Portion абзаца. +1. Определите шрифт с помощью FontData и задайте шрифт Portion соответственно. + 1. Установите шрифт полужирным. + 1. Установите шрифт курсивом. +1. Задайте цвет шрифта, используя [getFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#getFillFormat--) объекта [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion). +1. Сохраните изменённую презентацию в файл [PPTX](https://docs.fileformat.com/presentation/pptx/). + +Реализация вышеуказанных шагов приведена ниже. Она берёт простую презентацию и форматирует шрифты на одном из слайдов. +```javascript +// Создать объект Presentation, представляющий файл PPTX +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // Доступ к слайду по его индексу + var slide = pres.getSlides().get_Item(0); + // Доступ к первому и второму placeholder на слайде и приведение их к AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // Доступ к первому абзацу + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // Доступ к первой части текста + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // Определить новые шрифты + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // Присвоить новые шрифты части текста + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // Установить шрифт полужирным + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Установить шрифт курсивом + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Установить цвет шрифта + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // Сохранить PPTX на диск + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Управление семейством шрифтов текста** + +Portion используется для хранения текста с одинаковым стилем форматирования в абзаце. Эта статья показывает, как с помощью Aspose.Slides for Node.js via Java создать текстовое поле с некоторым текстом, а затем задать конкретный шрифт и другие свойства семейства шрифтов. Чтобы создать текстовое поле и задать свойства шрифта текста в нём: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд, используя его индекс. +3. Добавьте [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) типа [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) на слайд. +4. Удалите стиль заполнения, связанный с [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. Получите TextFrame AutoShape. +6. Добавьте некоторый текст в TextFrame. +7. Получите объект Portion, связанный с [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +8. Определите шрифт, который будет использоваться для [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion). +9. Задайте другие свойства шрифта, такие как полужирный, курсив, подчеркивание, цвет и высота, используя соответствующие свойства объекта Portion. +10. Сохраните изменённую презентацию в файл PPTX. + +Реализация вышеуказанных шагов приведена ниже. +```javascript +// Создать объект Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получить первый слайд + var sld = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // Удалить любой стиль заполнения, связанный с AutoShape + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Получить TextFrame, связанный с AutoShape + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // Получить Portion, связанный с TextFrame + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // Установить шрифт для Portion + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Установить свойство Bold для шрифта + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // Установить свойство Italic для шрифта + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Установить свойство Underline для шрифта + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // Установить высоту шрифта + port.getPortionFormat().setFontHeight(25); + // Установить цвет шрифта + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // Записать PPTX на диск + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка размера шрифта текста** + +Aspose.Slides позволяет выбрать предпочтительный размер шрифта для существующего текста в абзаце и для текста, который может быть добавлен позже в тот же абзац. + +Этот JavaScript‑код показывает, как задать размер шрифта для текста, содержащегося в абзаце: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // Получаем первую форму, например. + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // Получаем первый абзац, например. + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // Устанавливает размер шрифта по умолчанию 20 pt для всех текстовых частей в абзаце. + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // Устанавливает размер шрифта 20 pt для текущих текстовых частей в абзаце. + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Установка вращения текста** + +Aspose.Slides for Node.js via Java позволяет разработчикам вращать текст. Текст может быть отображён как [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal), [Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical), [Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270), [WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical), [EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical), [MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) или [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft). Чтобы вращать текст в любом TextFrame, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите доступ к первому слайду. +3. Добавьте любую форму на слайд. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Rotate the text](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-). +6. Сохраните файл на диск. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получить первый слайд + var slide = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Добавить TextFrame к прямоугольнику + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Доступ к текстовому фрейму + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // Создать объект Paragraph для текстового фрейма + var para = txtFrame.getParagraphs().get_Item(0); + // Создать объект Portion для абзаца + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Сохранить презентацию + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка пользовательского угла вращения для TextFrame** + +Aspose.Slides for Node.js via Java теперь поддерживает установку пользовательского угла вращения для TextFrame. В этой теме мы покажем пример, как задать свойство RotationAngle в Aspose.Slides. В новые методы [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) и [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--) были добавлены в классы [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) и [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat), позволяя задавать пользовательский угол вращения для TextFrame. Чтобы задать RotationAngle, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Добавьте диаграмму на слайд. +3. [Set RotationAngle property](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-). +4. Сохраните презентацию в файл PPTX. + +В примере ниже задается свойство RotationAngle. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получить первый слайд + var slide = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Добавить TextFrame к прямоугольнику + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Доступ к текстовому фрейму + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // Создать объект Paragraph для текстового фрейма + var para = txtFrame.getParagraphs().get_Item(0); + // Создать объект Portion для абзаца + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Сохранить презентацию + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Межстрочный интервал абзаца** + +Aspose.Slides предоставляет свойства в [`ParagraphFormat`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat) — `SpaceAfter`, `SpaceBefore` и `SpaceWithin` — позволяющие управлять межстрочным интервалом абзаца. Эти три свойства используются следующим образом: + +* Чтобы задать межстрочный интервал в процентах, используйте положительное значение. +* Чтобы задать межстрочный интервал в пунктах, используйте отрицательное значение. + +Например, можно задать межстрочный интервал 16 pt, установив свойство `SpaceBefore` в ‑16. + +Так задаётся межстрочный интервал для конкретного абзаца: + +1. Загрузите презентацию, содержащую AutoShape с текстом. +2. Получите ссылку на слайд через его индекс. +3. Получите TextFrame. +4. Получите Paragraph. +5. Задайте свойства Paragraph. +6. Сохраните презентацию. + +Этот JavaScript‑код показывает, как задать межстрочный интервал для абзаца: +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation("Fonts.pptx"); +try { + // Получить ссылку на слайд по его индексу + var sld = pres.getSlides().get_Item(0); + // Получить доступ к TextFrame + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // Получить доступ к абзацу + var para = tf1.getParagraphs().get_Item(0); + // Установить свойства абзаца + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // Сохранить презентацию + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка свойства AutofitType для TextFrame** + +В этой теме мы рассматриваем различные свойства форматирования текстового фрейма. Статья описывает, как задать свойство AutofitType текстового фрейма, привязку текста и вращение текста в презентации. Aspose.Slides for Node.js via Java позволяет разработчикам задать свойство AutofitType любого текстового фрейма. AutofitType может быть установлен в [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) или [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape). Если установлено значение [Normal], форма остаётся прежней, а текст подгоняется без изменения формы. Если AutofitType установлен в [Shape], форма изменяется так, чтобы в ней помещался только необходимый текст. Чтобы задать свойство AutofitType текстового фрейма, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)class. +2. Получите доступ к первому слайду. +3. Добавьте любую форму на слайд. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Set the AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-) TextFrame. +6. Сохраните файл на диск. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получить доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // Добавить TextFrame к прямоугольнику + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Доступ к текстовому фрейму + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // Создать объект Paragraph для текстового фрейма + var para = txtFrame.getParagraphs().get_Item(0); + // Создать объект Portion для абзаца + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Сохранить презентацию + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка привязки (Anchor) TextFrame** + +Aspose.Slides for Node.js via Java позволяет разработчикам задавать привязку любого TextFrame. TextAnchorType указывает, где текст размещён внутри формы. AnchorType может быть установлен в [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top), [Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center), [Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom), [Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) или [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed). Чтобы задать привязку любого TextFrame, выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) class. +2. Получите доступ к первому слайду. +3. Добавьте любую форму на слайд. +4. Получите [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape). +5. [Set TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-) TextFrame. +6. Сохраните файл на диск. +```javascript + // Создать экземпляр класса Presentation + var pres = new aspose.slides.Presentation(); + try { + // Получить первый слайд + var slide = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // Добавить TextFrame к прямоугольнику + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Доступ к текстовому фрейму + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // Создать объект Paragraph для текстового фрейма + var para = txtFrame.getParagraphs().get_Item(0); + // Создать объект Portion для абзаца + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // Сохранить презентацию + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **Табы и EffectiveTabs в презентации** + +Все табуляции текста задаются в пикселах. + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**Figure: 2 Explicit Tabs and 2 Default Tabs**| + +- Свойство EffectiveTabs.ExplicitTabCount (2 в нашем случае) равно Tabs.Count. +- Коллекция EffectiveTabs включает все табы (из коллекции Tabs и табы по умолчанию). +- Свойство EffectiveTabs.ExplicitTabCount (2 в нашем случае) равно Tabs.Count. +- Свойство EffectiveTabs.DefaultTabSize (294) показывает расстояние между табами по умолчанию (3 и 4 в нашем примере). +- EffectiveTabs.GetTabByIndex(index) с index = 0 возвращает первый явный таб (Position = 731), index = 1 — второй таб (Position = 1241). При попытке получить таб с index = 2 вернётся первый таб по умолчанию (Position = 1470) и т.д. +- EffectiveTabs.GetTabAfterPosition(pos) используется для получения следующей табуляции после некоторого текста. Например, есть текст «Hello World!». Чтобы отрисовать такой текст, нужно знать, где начать рисовать «world!». Сначала вычислите длину «Hello» в пикселях и вызовите GetTabAfterPosition с этим значением. Вы получите позицию следующей табуляции для рисования «world!». + +## **Установка стиля текста по умолчанию** + +Если нужно применить одинаковое форматирование текста ко всем элементам текста презентации сразу, используйте метод `getDefaultTextStyle` класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) и задайте предпочтительное форматирование. Пример кода ниже показывает, как задать шрифт полужирный (14 pt) по умолчанию для текста на всех слайдах новой презентации. +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // Получить формат абзаца верхнего уровня. + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **Извлечение текста с эффектом All‑Caps** + +В PowerPoint применение эффекта **All Caps** делает текст заглавным на слайде, даже если он изначально набран строчными. При извлечении такой части текста с помощью Aspose.Slides библиотека возвращает текст именно так, как он был введён. Чтобы обработать это, проверьте [TextCapType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textcaptype/) — если он указывает `All`, просто преобразуйте возвращённую строку в верхний регистр, чтобы ваш вывод соответствовал тому, что видят пользователи на слайде. + +Предположим, у нас есть следующий текстовый блок на первом слайде файла sample2.pptx. + +![The All Caps effect](all_caps_effect.png) + +Пример кода ниже показывает, как извлечь текст с применённым эффектом **All Caps**: +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +Output: +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **FAQ** + +**Как изменить текст в таблице на слайде?** + +Чтобы изменить текст в таблице на слайде, используйте объект [Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/). Можно перебрать все ячейки таблицы и изменить текст в каждой ячейке, получив её `TextFrame` и свойства `ParagraphFormat`. + +**Как применить градиентный цвет к тексту в слайде PowerPoint?** + +Чтобы применить градиентный цвет к тексту, используйте свойство Fill Format в [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/). Установите Fill Format в `Gradient`, где можно задать начальный и конечный цвета градиента, а также другие свойства, такие как направление и прозрачность, чтобы создать градиентный эффект на тексте. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..bc0cb2ba86 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,374 @@ +--- +title: WordArt +type: docs +weight: 110 +url: /ru/nodejs-java/wordart/ +--- + +## **О WordArt?** + +WordArt или Word Art — это функция, позволяющая применять эффекты к тексту, чтобы он выделялся. С помощью WordArt, например, можно обвести текст контуром или заполнить его цветом (или градиентом), добавить 3D‑эффекты и т.д. Также можно наклонять, изгибать и растягивать форму текста. + +{{% alert color="primary" %}} + +WordArt позволяет обращаться с текстом так же, как с графическим объектом. Как правило, WordArt состоит из эффектов или специальных модификаций текста, делая его более привлекательным или заметным. + +{{% /alert %}} + +**WordArt в Microsoft PowerPoint** + +Чтобы использовать WordArt в Microsoft PowerPoint, нужно выбрать один из предустановленных шаблонов WordArt. Шаблон WordArt — это набор эффектов, применяемый к тексту или его форме. + +**WordArt в Aspose.Slides** + +В Aspose.Slides for Node.js via Java 20.10 мы реализовали поддержку WordArt и внесли улучшения в эту функцию в последующих выпусках Aspose.Slides for Node.js via Java. + +С Aspose.Slides for Node.js via Java вы можете легко создать собственный шаблон WordArt (один эффект или их комбинацию) на JavaScript и применить его к тексту. + +## **Создание простого шаблона WordArt и применение его к тексту** + +**Использование Aspose.Slides** + +Сначала мы создаём простой текст с помощью следующего кода JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +Затем мы устанавливаем высоту шрифта текста на большее значение, чтобы эффект был более заметным, с помощью этого кода: +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**Использование Microsoft PowerPoint** + +Перейдите в меню эффектов WordArt в Microsoft PowerPoint: + +![todo:image_alt_text](image-20200930113926-1.png) + +В меню справа можно выбрать предустановленный эффект WordArt. В меню слева можно задать параметры нового WordArt. + +Это некоторые из доступных параметров или опций: + +![todo:image_alt_text](image-20200930114015-3.png) + +**Использование Aspose.Slides** + +Здесь мы применяем цвет узора [SmallGrid](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) к тексту и добавляем чёрную границу шириной 1 с помощью этого кода: +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +Получившийся текст: + +![todo:image_alt_text](image-20200930114108-4.png) + +## **Применение других эффектов WordArt** + +**Использование Microsoft PowerPoint** + +Из класса программы можно применять эти эффекты к тексту, текстовому блоку, фигуре или похожему элементу: + +![todo:image_alt_text](image-20200930114129-5.png) + +Например, к тексту могут быть применены эффекты Тень, Отражение и Свечение; к текстовому блоку — эффекты 3D-формат и 3D-поворот; свойство Мягкие края может быть применено к объекту Shape (оно сохраняет эффект, даже если свойство 3D‑формат не задано). + +### **Применение эффектов Тени** + +Здесь мы намерены задать свойства, относящиеся только к тексту. Мы применяем эффект тени к тексту с помощью этого кода на JavaScript: +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +API Aspose.Slides поддерживает три типа теней: OuterShadow, InnerShadow и PresetShadow. + +С PresetShadow можно применить тень к тексту (используя предустановленные значения). + +**Использование Microsoft PowerPoint** + +В PowerPoint можно использовать один тип тени. Пример: + +![todo:image_alt_text](image-20200930114225-6.png) + +**Использование Aspose.Slides** + +Aspose.Slides действительно позволяет применять одновременно два типа теней: InnerShadow и PresetShadow. + +**Примечания:** + +- Если одновременно используются OuterShadow и PresetShadow, применяется только эффект OuterShadow. +- Если одновременно используются OuterShadow и InnerShadow, конечный эффект зависит от версии PowerPoint. Например, в PowerPoint 2013 эффект удваивается, а в PowerPoint 2007 применяется эффект OuterShadow. + +### **Применение отображения к текстам** + +Мы добавляем отображение к тексту с помощью этого примера кода на JavaScript: +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **Применение эффекта свечения к текстам** + +Мы применяем эффект свечения к тексту, чтобы он светился или выделялся, используя этот код: +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +Результат операции: + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} + +Вы можете менять параметры тени, отображения и свечения. Свойства эффектов задаются отдельно для каждой части текста. + +{{% /alert %}} + +### **Использование трансформаций в WordArt** + +Мы используем свойство Transform (присущее всему блоку текста) с помощью этого кода: +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +Результат: + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} + +И Microsoft PowerPoint, и Aspose.Slides for Node.js via Java предоставляют определённое количество предустановленных типов трансформаций. + +{{% /alert %}} + +**Использование PowerPoint** + +Чтобы получить доступ к предустановленным типам трансформаций, пройдите: **Format** -> **TextEffect** -> **Transform** + +**Использование Aspose.Slides** + +Чтобы выбрать тип трансформации, используйте перечисление TextShapeType. + +### **Применение 3D-эффектов к текстам и фигурам** + +Мы задаём 3D-эффект для текстовой фигуры с помощью этого образца кода: +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +Получившийся текст и его форма: + +![todo:image_alt_text](image-20200930114816-9.png) + +Мы применяем 3D-эффект к тексту с помощью этого кода JavaScript: +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +Результат операции: + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} + +Применение 3D-эффектов к текстам или их формам и взаимодействие между эффектами основаны на определённых правилах. + +Рассмотрим сцену для текста и фигуру, содержащую этот текст. 3D-эффект содержит представление 3D‑объекта и сцену, в которой объект размещён. + +- Если сцена задана и для фигуры, и для текста, приоритет имеет сцена фигуры — сцена текста игнорируется. +- Если у фигуры нет собственной сцены, но есть 3D‑представление, используется сцена текста. +- В противном случае, когда у фигуры изначально нет 3D‑эффекта, фигура остаётся плоской, и 3D‑эффект применяется только к тексту. + +Эти описания связаны с методами ThreeDFormat.getLightRig() и ThreeDFormat.getCamera(). + +{{% /alert %}} + +## **Применение внешних теней к тексту** + +Aspose.Slides for Node.js via Java предоставляет классы [**OuterShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) и [**InnerShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow), позволяющие применять эффекты теней к тексту, содержащемуся в [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame). Выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Получите ссылку на слайд, используя его индекс. +3. Добавьте к слайду AutoShape прямоугольного типа. +4. Получите доступ к TextFrame, связанному с AutoShape. +5. Установите FillType AutoShape в значение NoFill. +6. Создайте экземпляр класса OuterShadow +7. Установите BlurRadius тени. +8. Установите Direction тени +9. Установите Distance тени. +10. Установите RectanglelAlign в TopLeft. +11. Установите PresetColor тени в Black. +12. Запишите презентацию в файл [PPTX](https://docs.fileformat.com/presentation/pptx/). + +Этот пример кода на Java — реализация вышеуказанных шагов — показывает, как применить эффект внешней тени к тексту: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Получить ссылку на слайд + var sld = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // Добавить TextFrame к Rectangle + ashp.addTextFrame("Aspose TextBox"); + // Отключить заливку фигуры, если нужно получить тень текста + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Добавить внешнюю тень и установить все необходимые параметры + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // Сохранить презентацию на диск + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Применение внутренней тени к фигурам** + +Выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation). +2. Получите ссылку на слайд. +3. Добавьте AutoShape прямоугольного типа. +4. Включите InnerShadowEffect. +5. Установите все необходимые параметры. +6. Установите ColorType как Scheme. +7. Установите Scheme Color. +8. Запишите презентацию в файл [PPTX](https://docs.fileformat.com/presentation/pptx/). + +Этот пример кода (основываясь на указанных шагах) показывает, как добавить соединитель между двумя фигурами на JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Получить ссылку на слайд + var slide = pres.getSlides().get_Item(0); + // Добавить AutoShape типа Rectangle + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // Добавить TextFrame к прямоугольнику + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // Включить InnerShadowEffect + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // Установить все необходимые параметры + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // Установить ColorType как Scheme + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // Установить Scheme Color + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // Сохранить презентацию + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Можно ли использовать эффекты WordArt с различными шрифтами или системами письма (например, арабским, китайским)?** + +Да, Aspose.Slides поддерживает Unicode и работает со всеми основными шрифтами и системами письма. Эффекты WordArt, такие как тень, заливка и контур, могут применяться независимо от языка, хотя доступность шрифтов и их отображение могут зависеть от системных шрифтов. + +**Можно ли применять эффекты WordArt к элементам шаблона слайдов?** + +Да, вы можете применять эффекты WordArt к фигурам на мастер‑слайдах, включая заполнители заголовков, нижние колонтитулы или фоновой текст. Изменения, внесённые в макет мастера, будут отражены на всех связанных слайдах. + +**Влияют ли эффекты WordArt на размер файла презентации?** + +Незначительно. Эффекты WordArt, такие как тени, свечения и градиентные заливки, могут слегка увеличить размер файла из‑за добавления метаданных форматирования, но разница обычно пренебрежимо мала. + +**Можно ли предварительно просмотреть результат эффектов WordArt без сохранения презентации?** + +Да, вы можете рендерить слайды с WordArt в изображения (например, PNG, JPEG), используя метод `getImage` из классов [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) или [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/). Это позволяет предварительно просмотреть результат в памяти или на экране до сохранения или экспорта полной презентации. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/ru/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..778d3d0da4 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,528 @@ +--- +title: Управление Zoom +type: docs +weight: 60 +url: /ru/nodejs-java/manage-zoom/ +keywords: "Zoom, кадр Zoom, Добавить масштаб, Форматировать кадр масштабирования, Summary zoom, презентация PowerPoint, Java, Aspose.Slides для Node.js через Java" +description: "Добавьте масштаб или кадры масштаба в презентации PowerPoint на JavaScript" +--- + +## **Overview** + +Zooms in PowerPoint позволяют переходить к определённым слайдам, разделам и частям презентации и обратно. При представлении эта возможность быстро перемещаться по содержимому может оказаться очень полезной. + +![overview_image](overview.png) + +* Чтобы суммировать всю презентацию на одном слайде, используйте [Summary Zoom](#Summary-Zoom). +* Чтобы показать только выбранные слайды, используйте [Slide Zoom](#Slide-Zoom). +* Чтобы показать только один раздел, используйте [Section Zoom](#Section-Zoom). + +## **Slide Zoom** + +Zoom слайда может сделать вашу презентацию более динамичной, позволяя свободно перемещаться между слайдами в любой выбранной вами последовательности без прерывания потока презентации. Zoom слайда отлично подходит для коротких презентаций без множества разделов, но его также можно использовать в различных сценариях. + +Zoom слайда помогает углубиться в несколько кусков информации, создавая ощущение работы на едином холсте. + +![overview_image](slidezoomsel.png) + +Для объектов Zoom слайда Aspose.Slides предоставляет перечисление [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType), класс [ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) и некоторые методы класса [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Creating Zoom Frames** + +Вы можете добавить Zoom‑кадр на слайд следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новые слайды, к которым вы планируете привязать Zoom‑кадры. +3. Добавьте идентификационный текст и фон к созданным слайдам. +4. Добавьте Zoom‑кадры (ссылающиеся на созданные слайды) на первый слайд. +5. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новые слайды в презентацию + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Создаёт фон для второго слайда + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Создаёт текстовое поле для второго слайда + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Создаёт фон для третьего слайда + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Создаёт текстовое поле для третьего слайда + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Добавляет объекты ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Creating Zoom Frames with Custom Images** + +С помощью Aspose.Slides for Node.js via Java вы можете создать Zoom‑кадр с другим изображением предпросмотра слайда следующим образом: +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новый слайд, к которому вы планируете привязать Zoom‑кадр. +3. Добавьте идентификационный текст и фон к слайду. +4. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в коллекцию Images, связанную с объектом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), которое будет использовано для заполнения кадра. +5. Добавьте Zoom‑кадры (ссылающиеся на созданный слайд) на первый слайд. +6. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Создаёт фон для второго слайда + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Создаёт текстовое поле для третьего слайда + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Создаёт новое изображение для объекта зума + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Добавляет объект ZoomFrame + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formatting Zoom Frames** + +В предыдущих разделах мы показывали, как создать простые Zoom‑кадры. Чтобы создать более сложные Zoom‑кадры, необходимо изменить форматирование простого кадра. Существует несколько вариантов форматирования, которые можно применить к Zoom‑кадру. + +Вы можете управлять форматированием Zoom‑кадра на слайде следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новые слайды, к которым вы планируете привязать Zoom‑кадр. +3. Добавьте некоторый идентификационный текст и фон к созданным слайдам. +4. Добавьте Zoom‑кадры (ссылающиеся на созданные слайды) на первый слайд. +5. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в коллекцию Images, связанную с объектом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), которое будет использовано для заполнения кадра. +6. Установите пользовательское изображение для первого объекта Zoom‑кадра. +7. Измените формат линии для второго объекта Zoom‑кадра. +8. Удалите фон из изображения второго объекта Zoom‑кадра. +5. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новые слайды в презентацию + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // Создаёт фон для второго слайда + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // Создаёт текстовое поле для второго слайда + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // Создаёт фон для третьего слайда + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // Создаёт текстовое поле для третьего слайда + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // Добавляет объекты ZoomFrame + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // Создаёт новое изображение для объекта зума + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Устанавливает пользовательское изображение для объекта zoomFrame1 + zoomFrame1.setImage(picture); + // Устанавливает формат рамки зума для объекта zoomFrame2 + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Настройка: не показывать фон для объекта zoomFrame2 + zoomFrame2.setShowBackground(false); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Section Zoom** + +Section Zoom представляет собой ссылку на раздел вашей презентации. Вы можете использовать Section Zoom, чтобы возвращаться к разделам, которые хотите особенно подчеркнуть. Или использовать их для демонстрации того, как определённые части вашей презентации связаны между собой. + +![overview_image](seczoomsel.png) + +Для объектов Section Zoom Aspose.Slides предоставляет класс [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) и некоторые методы класса [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Creating Section Zoom Frames** + +Вы можете добавить Section Zoom‑кадр на слайд следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новый слайд. +3. Добавьте идентификационный фон к созданному слайду. +4. Создайте новый раздел, к которому вы планируете привязать Zoom‑кадр. +5. Добавьте Section Zoom‑кадр (ссылающийся на созданный раздел) на первый слайд. +6. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 1", slide); + // Добавляет объект SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Creating Section Zoom Frames with Custom Images** + +С помощью Aspose.Slides for Node.js via Java вы можете создать Section Zoom‑кадр с другим изображением предпросмотра слайда следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новый слайд. +3. Добавьте идентификационный фон к созданному слайду. +4. Создайте новый раздел, к которому вы планируете привязать Zoom‑кадр. +5. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в коллекцию Images, связанную с объектом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), которое будет использовано для заполнения кадра. +5. Добавьте Section Zoom‑кадр (ссылающийся на созданный раздел) на первый слайд. +6. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 1", slide); + // Создаёт новое изображение для объекта зума + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // Добавляет объект SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formatting Section Zoom Frames** + +Чтобы создать более сложные Section Zoom‑кадры, необходимо изменить форматирование простого кадра. Существует несколько вариантов форматирования, которые можно применить к Section Zoom‑кадру. + +Вы можете управлять форматированием Section Zoom‑кадра на слайде следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новый слайд. +3. Добавьте идентификационный фон к созданному слайду. +4. Создайте новый раздел, к которому вы планируете привязать Zoom‑кадр. +5. Добавьте Section Zoom‑кадр (ссылающийся на созданный раздел) на первый слайд. +6. Измените размер и позицию созданного Section Zoom‑объекта. +7. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в коллекцию Images, связанную с объектом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), которое будет использовано для заполнения кадра. +8. Установите пользовательское изображение для созданного Section Zoom‑кадра. +9. Установите возможность *возврата к оригинальному слайду из связанного раздела*. +10. Удалите фон из изображения объекта Section Zoom‑кадра. +11. Измените формат линии для второго Zoom‑кадра. +12. Измените длительность перехода. +13. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 1", slide); + // Добавляет объект SectionZoomFrame + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // Форматирование для SectionZoomFrame + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Summary Zoom** + +Summary Zoom — это своего рода целевая страница, на которой отображаются все части вашей презентации одновременно. При представлении вы можете использовать Zoom, чтобы переходить от одного места к другому в любой последовательности. Вы можете проявлять креативность, перематывать вперёд или возвращаться к отдельным частям слайдшоу без нарушения течения презентации. + +![overview_image](sumzoomsel.png) + +Для объектов Summary Zoom Aspose.Slides предоставляет классы [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame), [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) и [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection), а также некоторые методы класса [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection). + +### **Creating Summary Zoom** + +Вы можете добавить Summary Zoom‑кадр на слайд следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новые слайды с идентификационным фоном и новые разделы для созданных слайдов. +3. Добавьте Summary Zoom‑кадр на первый слайд. +4. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 1", slide); + // Добавляет новый слайд в презентацию + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 2", slide); + // Добавляет новый слайд в презентацию + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 3", slide); + // Добавляет новый слайд в презентацию + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 4", slide); + // Добавляет объект SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Adding and Removing Summary Zoom Section** + +Все разделы в Summary Zoom‑кадре представлены объектами [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection), которые хранятся в объекте [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection). Вы можете добавить или удалить объект Summary Zoom‑раздела через класс [SummaryZoomSectionCollection] следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новые слайды с идентификационным фоном и новые разделы для созданных слайдов. +3. Добавьте Summary Zoom‑кадр в первый слайд. +4. Добавьте новый слайд и раздел в презентацию. +5. Добавьте созданный раздел в Summary Zoom‑кадр. +6. Удалите первый раздел из Summary Zoom‑кадра. +7. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 1", slide); + // Добавляет новый слайд в презентацию + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 2", slide); + // Добавляет объект SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Добавляет новый слайд в презентацию + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + var section3 = pres.getSections().addSection("Section 3", slide); + // Добавляет раздел в Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // Удаляет раздел из Summary Zoom + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **Formatting Summary Zoom Sections** + +Чтобы создать более сложные объекты Summary Zoom‑разделов, необходимо изменить форматирование простого кадра. Существует несколько вариантов форматирования, которые можно применить к объекту Summary Zoom‑раздела. + +Вы можете управлять форматированием объекта Summary Zoom‑раздела в Summary Zoom‑кадре следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Создайте новые слайды с идентификационным фоном и новые разделы для созданных слайдов. +3. Добавьте Summary Zoom‑кадр на первый слайд. +4. Получите объект Summary Zoom‑раздела для первого элемента из `ISummaryZoomSectionCollection`. +7. Создайте объект [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage), добавив изображение в коллекцию images, связанную с объектом [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation), которое будет использовано для заполнения кадра. +8. Установите пользовательское изображение для созданного Section Zoom‑кадра. +9. Установите возможность *возврата к оригинальному слайду из связанного раздела*. +11. Измените формат линии для второго Zoom‑кадра. +12. Измените длительность перехода. +13. Сохраните изменённую презентацию в файл PPTX. + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет новый слайд в презентацию + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 1", slide); + // Добавляет новый слайд в презентацию + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // Добавляет новый раздел в презентацию + pres.getSections().addSection("Section 2", slide); + // Добавляет объект SummaryZoomFrame + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // Получает первый объект SummaryZoomSection + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // Форматирование объекта SummaryZoomSection + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // Сохраняет презентацию + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Can I control returning to the 'parent' slide after showing the target?** + +Yes. The [Zoom frame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/) or [section](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/) has a `setReturnToParent` method that, when enabled, sends viewers back to the originating slide after they visit the target content. + +**Can I adjust the 'speed' or duration of the Zoom transition?** + +Yes. Zoom exposes a `setTransitionDuration` method so you can control how long the jump animation takes. + +**Are there limits on how many Zoom objects a presentation can contain?** + +There is no hard API limit documented. Practical limits depend on overall presentation complexity and the viewer's performance. You can add many Zoom frames, but consider file size and rendering time. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/ru/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..8a80e3214f --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,102 @@ +--- +title: Управление тегами и пользовательскими данными +type: docs +weight: 300 +url: /ru/nodejs-java/managing-tags-and-custom-data +--- + +## **Хранение данных в файлах презентаций** + +Файлы PPTX — файлы с расширением .pptx — хранятся в формате PresentationML, который является частью спецификации Office Open XML. Формат Office Open XML определяет структуру данных, содержащихся в презентациях. + +*Слайд* является одним из элементов презентаций, *часть слайда* содержит содержимое отдельного слайда. Части слайда могут иметь явные отношения со многими частями — например, с пользовательскими тегами, определёнными в ISO/IEC 29500. + +Пользовательские данные (конкретные для презентации) или пользователь могут существовать в виде тегов ([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection)) и CustomXmlParts ([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection)). + +{{% alert color="primary" %}} + +Теги представляют собой пары «строка‑ключ‑значение». + +{{% /alert %}} + +## **Получение значений тегов** + +В слайдах тег соответствует методам [DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) и [DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-). Этот пример кода показывает, как получить значение тега с помощью Aspose.Slides for Node.js via Java для [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation): +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление тегов в презентации** + +Aspose.Slides позволяет добавлять теги в презентации. Тег обычно состоит из двух элементов: + +- имя пользовательского свойства — `MyTag` +- значение пользовательского свойства — `My Tag Value` + +Если необходимо классифицировать некоторые презентации по определённому правилу или свойству, добавление тегов может быть полезным. Например, если нужно сгруппировать все презентации из стран Северной Америки, можно создать тег «North American» и задать соответствующие страны (США, Мехико и Канаду) в качестве значений. + +Этот пример кода показывает, как добавить тег к [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) с помощью Aspose.Slides for Node.js via Java: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Теги также можно задавать для [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Или для любого отдельного [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Можно ли удалить все теги из презентации, слайда или фигуры одной операцией?** + +Да. [Коллекция тегов](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) поддерживает операцию [clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/), которая удаляет все пары ключ‑значение сразу. + +**Как удалить один тег по имени без перебора всей коллекции?** + +Используйте операцию [remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/) у [TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) для удаления тега по его ключу. + +**Как получить полный список имён тегов для аналитики или фильтрации?** + +Вызовите [getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/) у [коллекции тегов](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/); она возвращает массив всех имён тегов. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..bccaec5fb7 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,177 @@ +--- +title: Анимированные диаграммы +type: docs +weight: 80 +url: /ru/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} +Aspose.Slides для Node.js через Java поддерживает анимацию элементов диаграммы. **Series**, **Categories**, **Series Elements**, **Categories Elements** могут анимироваться с помощью метода [**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-) и двух перечислений [**EffectChartMajorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMajorGroupingType) и [**EffectChartMinorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMinorGroupingType). +{{% /alert %}} + +## **Анимация серии диаграммы** +Если вы хотите анимировать серию диаграммы, напишите код согласно перечисленным ниже шагам: + +1. Загрузите презентацию. +1. Получите ссылку на объект диаграммы. +1. Анимируйте серию. +1. Запишите файл презентации на диск. + +В примере ниже мы анимировали серию диаграммы. +```javascript +// Создать экземпляр класса Presentation, представляющего файл презентации +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Получить ссылку на объект диаграммы + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Анимировать серию + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Сохранить изменённую презентацию на диск + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Анимация категории диаграммы** +Если вы хотите анимировать категорию диаграммы, напишите код согласно перечисленным ниже шагам: + +1. Загрузите презентацию. +1. Получите ссылку на объект диаграммы. +1. Анимируйте категорию. +1. Запишите файл презентации на диск. + +В примере ниже мы анимировали категорию диаграммы. +```javascript +// Создать экземпляр класса Presentation, представляющего файл презентации +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Анимация элементов серии** +Если вы хотите анимировать элементы серии, напишите код согласно перечисленным ниже шагам: + +1. Загрузите презентацию. +1. Получите ссылку на объект диаграммы. +1. Анимируйте элементы серии. +1. Запишите файл презентации на диск. + +В примере ниже мы анимировали элементы серии. +```javascript +// Создать экземпляр класса Presentation, представляющего файл презентации +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Получить ссылку на объект диаграммы + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Анимировать элементы серии + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Записать файл презентации на диск + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Анимация элементов категории** +Если вы хотите анимировать элементы категории, напишите код согласно перечисленным ниже шагам: + +1. Загрузите презентацию. +1. Получите ссылку на объект диаграммы. +1. Анимируйте элементы категории. +1. Запишите файл презентации на диск. + +В примере ниже мы анимировали элементы категории. +```javascript +// Создать экземпляр класса Presentation, представляющего файл презентации +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // Получить ссылку на объект диаграммы + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // Анимировать элементы категорий + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // Записать файл презентации на диск + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Поддерживаются ли различные типы эффектов (например, появление, акцент, завершение) для диаграмм так же, как и для обычных фигур?** + +Да. Диаграмма рассматривается как объект, поэтому она поддерживает стандартные типы анимационных эффектов, включая появление, акцент и завершение, с полным управлением через временную шкалу слайда и последовательности анимации. + +**Можно ли сочетать анимацию диаграммы с переходами слайдов?** + +Да. [Переходы](/slides/ru/nodejs-java/slide-transition/) применяются к самому слайду, тогда как анимационные эффекты применяются к объектам на слайде. Вы можете использовать их одновременно в одной презентации и управлять ими независимо. + +**Сохраняются ли анимации диаграмм при сохранении в PPTX?** + +Да. При [сохранить в PPTX](/slides/ru/nodejs-java/save-presentation/) все анимационные эффекты и их порядок сохраняются, поскольку они являются частью нативной модели анимации презентации. + +**Можно ли прочитать существующие анимации диаграмм из презентации и изменить их?** + +Да. API предоставляет доступ к временной шкале слайда, последовательностям и эффектам, позволяя инспектировать существующие анимации диаграмм и корректировать их без полного пересоздания. + +**Можно ли создать видео, включающее анимацию диаграмм, используя Aspose.Slides?** + +Да. Вы можете [экспортировать презентацию в видео](/slides/ru/nodejs-java/convert-powerpoint-to-video/), сохранив анимацию, настроив тайминги и другие параметры экспорта, чтобы итоговый ролик отражал анимированное воспроизведение. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..da2ac59707 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: Расчёты диаграмм +type: docs +weight: 50 +url: /ru/nodejs-java/chart-calculations/ +--- + +## **Вычисление фактических значений элементов диаграммы** + +Aspose.Slides for Node.js via Java предоставляет простой API для получения этих свойств. Свойства класса [Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) предоставляют информацию о фактическом положении элемента диаграммы оси ([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--), [Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--), [Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--), [Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--), [Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--), [Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--)). Необходимо предварительно вызвать метод [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) , чтобы заполнить свойства фактическими значениями. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Вычисление фактического положения родительских элементов диаграммы** + +Aspose.Slides for Node.js via Java предоставляет простой API для получения этих свойств. Свойства класса [ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) предоставляют информацию о фактическом положении родительского элемента диаграммы ([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--), [ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--), [ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--), [ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--)). Необходимо предварительно вызвать метод [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) , чтобы заполнить свойства фактическими значениями. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Скрыть информацию на диаграмме** + +Эта тема поможет вам понять, как скрыть информацию на диаграмме. С помощью Aspose.Slides for Node.js via Java вы можете скрыть **Заголовок, Вертикальную ось, Горизонтальную ось** и **Линии сетки** на диаграмме. Пример кода ниже показывает, как использовать эти свойства. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // Сокрытие заголовка диаграммы + chart.setTitle(false); + // /Сокрытие оси значений + chart.getAxes().getVerticalAxis().setVisible(false); + // Видимость оси категорий + chart.getAxes().getHorizontalAxis().setVisible(false); + // Сокрытие легенды + chart.setLegend(false); + // Сокрытие основных линий сетки + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // Установка цвета линии серии + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Работают ли внешние книги Excel в качестве источника данных и как это влияет на пересчет?** + +Да. Диаграмма может ссылаться на внешнюю книгу: при подключении или обновлении внешнего источника формулы и значения берутся из этой книги, и диаграмма отражает изменения во время операций открытия/редактирования. API позволяет вам [указать путь к внешней книге](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/) и управлять связанными данными. + +**Могу ли я вычислять и отображать линии тренда без собственной реализации регрессии?** + +Да. [Линии тренда](/slides/ru/nodejs-java/trend-line/) (линейные, экспоненциальные и др.) добавляются и обновляются Aspose.Slides; их параметры автоматически пересчитываются из данных серии, поэтому вам не нужно реализовывать собственные вычисления. + +**Если презентация содержит несколько диаграмм с внешними ссылками, могу ли я контролировать, какую книгу использует каждая диаграмма для вычисляемых значений?** + +Да. Каждая диаграмма может указывать на свою собственную [внешнюю книгу](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/), либо вы можете создавать/заменять внешнюю книгу для каждой диаграммы независимо от остальных. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..6e23106fac --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: Подсказка +type: docs +url: /ru/nodejs-java/callout/ +--- + +## **Использование callout'ов** + +Новые методы [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) и [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-) добавлены в класс [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) и в класс [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat). Эти методы определяют, будет ли метка данных указанной диаграммы отображаться как data callout или как метка данных. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка callout'а для кольцевой диаграммы** + +Aspose.Slides for Node.js via Java предоставляет возможность задавать форму callout'а метки данных серии для кольцевой диаграммы. Ниже приведён пример. +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Сохраняются ли callout'ы при конвертации презентации в PDF, HTML5, SVG или изображения?** + +Да. Callout'ы являются частью отрисовки диаграммы, поэтому при экспорте в [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/), [HTML5](/slides/ru/nodejs-java/export-to-html5/), [SVG](/slides/ru/nodejs-java/render-a-slide-as-an-svg-image/) или [растровые изображения](/slides/ru/nodejs-java/convert-powerpoint-to-png/) они сохраняются вместе с форматированием слайда. + +**Работают ли пользовательские шрифты в callout'ах, и можно ли сохранить их внешний вид при экспорте?** + +Да. Aspose.Slides поддерживает [встраивание шрифтов](/slides/ru/nodejs-java/embedded-font/) в презентацию и управляет встраиванием шрифтов при экспорте, например в [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/), гарантируя, что callout'ы выглядят одинаково на разных системах. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..cb69e5e0d9 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: Ось диаграммы +type: docs +url: /ru/nodejs-java/chart-axis/ +keywords: "Ось диаграммы PowerPoint, Диаграммы презентаций, Java, Манипулирование осью диаграммы, Данные диаграммы" +description: "Как редактировать ось диаграммы PowerPoint на JavaScript" +--- + +## **Получение максимальных значений по вертикальной оси на диаграммах** + +Aspose.Slides for Node.js via Java позволяет получать минимальные и максимальные значения по вертикальной оси. Выполните следующие шаги: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите доступ к первому слайду. +3. Добавьте диаграмму с данными по умолчанию. +4. Получите фактическое максимальное значение оси. +5. Получите фактическое минимальное значение оси. +6. Получите фактическую основную единицу измерения оси. +7. Получите фактическую второстепенную единицу измерения оси. +8. Получите фактический масштаб основной единицы измерения оси. +9. Получите фактический масштаб второстепенной единицы измерения оси. + +Этот пример кода — реализация описанных выше шагов — демонстрирует, как получить требуемые значения на JavaScript: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // Сохраняет презентацию + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Обмен данными между осями** + +Aspose.Slides позволяет быстро обменять данные между осями — данные, отображаемые по вертикальной оси (y-axis), перемещаются на горизонтальную ось (x-axis) и наоборот. + +Этот JavaScript‑код показывает, как выполнить задачу обмена данными между осями на диаграмме: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // Переставляет строки и столбцы + chart.getChartData().switchRowColumn(); + // Сохраняет презентацию + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Отключение вертикальной оси для линейных диаграмм** + +Этот JavaScript‑код показывает, как скрыть вертикальную ось линейной диаграммы: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Отключение горизонтальной оси для линейных диаграмм** + +Этот код показывает, как скрыть горизонтальную ось линейной диаграммы: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Изменение оси категорий** + +С помощью свойства **CategoryAxisType** можно указать предпочтительный тип оси категорий (**date** или **text**). Этот JavaScript‑код демонстрирует операцию: +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **Установка формата даты для значения оси категорий** + +Aspose.Slides for Node.js via Java позволяет задать формат даты для значения оси категорий. Операция продемонстрирована в этом JavaScript‑коде: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **Установка угла поворота заголовка оси диаграммы** + +Aspose.Slides for Node.js via Java позволяет задать угол поворота заголовка оси диаграммы. Этот JavaScript‑код демонстрирует операцию: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка позиции оси в оси категорий или значений** + +Aspose.Slides for Node.js via Java позволяет задать позицию оси в оси категорий или значений. Этот JavaScript‑код показывает, как выполнить задачу: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Включение отображения единицы измерения на оси значений диаграммы** + +Aspose.Slides for Node.js via Java позволяет настроить диаграмму для отображения метки единицы измерения на её оси значений. Этот JavaScript‑код демонстрирует операцию: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Как задать значение, при котором одна ось пересекает другую (пересечение осей)?** + +Оси предоставляют [настройку пересечения](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/): можно выбрать пересечение на нуле, на максимальной категории/значении или на конкретном числовом значении. Это полезно для смещения оси X вверх или вниз либо для выделения базовой линии. + +**Как разместить подписи делений относительно оси (рядом, снаружи, внутри)?** + +Установите [позицию подписи](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/) в значение «cross», «outside» или «inside». Это влияет на читаемость и помогает экономить пространство, особенно в небольших диаграммах. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..e05174c1b6 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: Метка данных диаграммы +type: docs +url: /ru/nodejs-java/chart-data-label/ +keywords: "Метка данных диаграммы,расстояние метки, Java, Aspose.Slides for Node.js via Java" +description: "Установить метку данных диаграммы PowerPoint и расстояние с помощью JavaScript" +--- + +Метки данных на диаграмме показывают детали о серии данных диаграммы или отдельных точках данных. Они позволяют читателям быстро идентифицировать серии данных и делают диаграммы более понятными. + +## **Установка точности данных в метках диаграммы** + +Этот JavaScript‑код демонстрирует, как задать точность данных в метке диаграммы: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Отображение процентов в качестве меток** + +Aspose.Slides для Node.js через Java позволяет задавать процентные метки на отображаемых диаграммах. Этот JavaScript‑код показывает, как это делается: +```javascript +// Создает экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // Сохраняет презентацию, содержащую диаграмму + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавление знака процента к меткам данных диаграммы** + +Этот JavaScript‑код демонстрирует, как добавить знак процента к метке диаграммы: +```javascript +// Создает экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получает ссылку на слайд по его индексу + var slide = pres.getSlides().get_Item(0); + // Создает диаграмму PercentsStackedColumn на слайде + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // Устанавливает NumberFormatLinkedToSource в false + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // Получает лист данных диаграммы + var workbook = chart.getChartData().getChartDataWorkbook(); + // Добавляет новую серию + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // Устанавливает цвет заливки серии + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Устанавливает свойства LabelFormat + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // Добавляет новую серию + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // Устанавливает тип заливки и цвет + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // Записывает презентацию на диск + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка расстояния метки от оси** + +Этот JavaScript‑код показывает, как задать расстояние метки от категориальной оси при построении диаграммы по осям: +```javascript +// Создает экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получает ссылку на слайд + var sld = pres.getSlides().get_Item(0); + // Создает диаграмму на слайде + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // Устанавливает расстояние метки от оси + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // Записывает презентацию на диск + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Регулировка положения метки** + +Когда вы создаёте диаграмму, не зависящую от осей, например круговую диаграмму, метки данных могут оказаться слишком близко к её краю. В таком случае необходимо скорректировать положение метки, чтобы линии‑выноски отображались чётко. + +Этот JavaScript‑код показывает, как скорректировать положение метки на круговой диаграмме: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **FAQ** + +**Как избежать перекрытия меток данных на плотных диаграммах?** + +Комбинируйте автоматическое размещение меток, линии‑выноски и уменьшенный размер шрифта; при необходимости скрывайте некоторые поля (например, категорию) или показывайте метки только для экстремальных/ключевых точек. + +**Как отключить метки только для нулевых, отрицательных или пустых значений?** + +Отфильтруйте точки данных перед включением меток и отключите их отображение для значений 0, отрицательных значений или отсутствующих данных согласно заданному правилу. + +**Как обеспечить единообразный стиль меток при экспорте в PDF/изображения?** + +Явно задайте шрифты (семейство, размер) и убедитесь, что выбранный шрифт доступен в среде рендеринга, чтобы избежать переключения на резервный шрифт. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..cb9735b5a5 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: Маркер данных диаграммы +type: docs +url: /ru/nodejs-java/chart-data-marker/ +--- + +## **Настройка параметров маркеров диаграммы** + +Маркеры можно задавать для точек данных диаграммы в конкретных рядах. Чтобы настроить параметры маркеров диаграммы, выполните следующие шаги: + +- Создать экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Создать диаграмму по умолчанию. +- Установить изображение. +- Получить первый ряд диаграммы. +- Добавить новую точку данных. +- Записать презентацию на диск. + +В приведённом ниже примере мы настроили параметры маркеров диаграммы на уровне точек данных. +```javascript +// Создание пустой презентации +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Создание диаграммы по умолчанию + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // Получение индекса листа данных диаграммы по умолчанию + var defaultWorksheetIndex = 0; + // Получение листа данных диаграммы + var fact = chart.getChartData().getChartDataWorkbook(); + // Удаление демонстрационной серии + chart.getChartData().getSeries().clear(); + // Добавление новой серии + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // Загрузка изображения 1 + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // Загрузка изображения 2 + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // Получение первой серии диаграммы + var series = chart.getChartData().getSeries().get_Item(0); + // Добавление новой точки (1:3) туда. + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // Изменение маркера серии диаграммы + series.getMarker().setSize(15); + // Сохранение презентации с диаграммой + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Какие формы маркеров доступны из коробки?** + +Стандартные формы доступны (круг, квадрат, ромб, треугольник и т. д.); список определяется перечислением [MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/). Если вам нужна нестандартная форма, используйте маркер с заполнением изображением, чтобы имитировать пользовательскую визуализацию. + +**Сохраняются ли маркеры при экспорте диаграммы в изображение или SVG?** + +Да. При рендеринге диаграмм в [растровые форматы](/slides/ru/nodejs-java/convert-powerpoint-to-png/) или сохранении [форм в SVG](/slides/ru/nodejs-java/render-a-slide-as-an-svg-image/) маркеры сохраняют свой внешний вид и настройки, включая размер, заливку и контур. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..36a774e74f --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: Таблица данных диаграммы +type: docs +url: /ru/nodejs-java/chart-data-table/ +--- + +## **Установка параметров шрифта для таблицы данных диаграммы** + +Aspose.Slides for Node.js via Java предоставляет поддержку изменения цвета категорий в серии. + +1. Создать объект класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Добавить диаграмму на слайд. +1. Установить таблицу диаграммы. +1. Задать высоту шрифта. +1. Сохранить изменённую презентацию. + +Ниже приведён пример. +```javascript +// Создание пустой презентации +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Могу ли я показывать небольшие ключи легенды рядом со значениями в таблице данных диаграммы?** + +Да. Таблица данных поддерживает [legend keys](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/), и их можно включать или отключать. + +**Сохранится ли таблица данных при экспорте презентации в PDF, HTML или изображения?** + +Да. Aspose.Slides отображает диаграмму как часть слайда, поэтому экспортированный [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/ru/nodejs-java/convert-powerpoint-to-html/)/[image](/slides/ru/nodejs-java/convert-powerpoint-to-png/) включает диаграмму с её таблицей данных. + +**Поддерживаются ли таблицы данных для диаграмм, полученных из шаблонного файла?** + +Да. Для любой диаграммы, загруженной из существующей презентации или шаблона, можно проверить и изменить, отображается ли таблица данных, с помощью свойства диаграммы [is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/). + +**Как быстро найти, какие диаграммы в файле имеют включённую таблицу данных?** + +Проверьте свойство каждой диаграммы, указывающее, отображается ли таблица данных [is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/), и пройдитесь по слайдам, чтобы определить диаграммы, у которых она включена. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..7a54912cdf --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,113 @@ +--- +title: Легенда диаграммы +type: docs +url: /ru/nodejs-java/chart-legend/ +--- + +## **Расположение легенды** + +Чтобы задать свойства легенды, выполните следующие шаги: + +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Получите ссылку на слайд. +- Добавьте диаграмму на слайд. +- Задайте свойства легенды. +- Сохраните презентацию в файл PPTX. + +В приведённом ниже примере мы задали позицию и размер легенды диаграммы. +```javascript +// Создайте экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получите ссылку на слайд + var slide = pres.getSlides().get_Item(0); + // Добавьте кластеризованную столбчатую диаграмму на слайд + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // Задайте свойства легенды + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // Сохраните презентацию на диск + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка размера шрифта легенды** + +Aspose.Slides для Node.js via Java позволяет разработчикам задавать размер шрифта легенды. Выполните следующие шаги: + +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Создайте диаграмму по умолчанию. +- Установите размер шрифта. +- Задайте минимальное значение оси. +- Задайте максимальное значение оси. +- Сохраните презентацию на диск. +```javascript +// Создайте экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка размера шрифта отдельного элемента легенды** + +Aspose.Slides для Node.js via Java позволяет разработчикам задавать размер шрифта отдельного элемента легенды. Выполните следующие шаги: + +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Создайте диаграмму по умолчанию. +- Получите доступ к элементу легенды. +- Установите размер шрифта. +- Задайте минимальное значение оси. +- Задайте максимальное значение оси. +- Сохраните презентацию на диск. +```javascript +// Создайте экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Можно ли включить легенду так, чтобы диаграмма автоматически выделяла место для неё, а не накладывала её?** + +Да. Используйте режим без наложения ([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/)); в этом случае область построения сожмётся, чтобы вместить легенду. + +**Можно ли сделать многострочные подписи легенды?** + +Да. Длинные подписи автоматически переносятся, если места недостаточно; принудительные разрывы строк поддерживаются символами новой строки в имени серии. + +**Как сделать так, чтобы легенда следовала цветовой схеме темы презентации?** + +Не задавайте явные цвета/заливки/шрифты для легенды или её текста. Они будут наследоваться из темы и корректно обновятся при изменении дизайна. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..72977400b7 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: Область построения диаграммы +type: docs +url: /ru/nodejs-java/chart-plot-area/ +--- + +## **Получить ширину и высоту области построения диаграммы** + +Aspose.Slides for Node.js via Java предоставляет простой API для . + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получите доступ к первому слайду. +1. Добавьте диаграмму с данными по умолчанию. +1. Вызовите метод [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--) перед получением фактических значений. +1. Получите фактическое положение X (слева) элемента диаграммы относительно левого верхнего угла диаграммы. +1. Получите фактическую позицию сверху элемента диаграммы относительно левого верхнего угла диаграммы. +1. Получите фактическую ширину элемента диаграммы. +1. Получите фактическую высоту элемента диаграммы. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить режим расположения области построения диаграммы** + +Aspose.Slides for Node.js via Java предоставляет простой API для установки режима расположения области построения диаграммы. В класс [**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea) добавлены методы [**setLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#setLayoutTargetType-int-) и [**getLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#getLayoutTargetType--). Если расположение области построения задаётся вручную, это свойство определяет, следует ли размещать область построения внутри (не включая оси и подписи осей) или снаружи (включая оси и подписи осей). Возможны два значения, определённые в перечислении [**LayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType). + +- [**LayoutTargetType.Inner**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Inner) — указывает, что размер области построения определяется без учёта делений и подписей осей. +- [**LayoutTargetType.Outer**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Outer) — указывает, что размер области построения определяется вместе с делениями и подписями осей. + +Ниже приведён пример кода. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**В каких единицах возвращаются фактические X, фактические Y, фактическая ширина и фактическая высота?** + +В пунктах; 1 дюйм = 72 пункта. Это единицы координат Aspose.Slides. + +**Чем область построения отличается от области диаграммы по содержимому?** + +Область построения — это регион рисования данных (ряды, линии сетки, линии тренда и т.д.); область диаграммы включает окружающие элементы (заголовок, легенду и т.д.). В 3‑D диаграммах область построения также включает стены/пол и оси. + +**Как интерпретируются X, Y, ширина и высота области построения при ручном расположении?** + +Это доли (0–1) от общей размерности диаграммы; в этом режиме автоматическое позиционирование отключено, и используются задаваемые вами доли. + +**Почему позиция области построения менялась после добавления/перемещения легенды?** + +Легенда располагается в области диаграммы за пределами области построения, но влияет на расположение и доступное пространство, поэтому при включённом автоматическом позиционировании область построения может смещаться. (Это стандартное поведение диаграмм PowerPoint.) \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..13884413a5 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,336 @@ +--- +title: Серии диаграмм +type: docs +url: /ru/nodejs-java/chart-series/ +keywords: "Серии диаграмм, цвет серии, презентация PowerPoint, Java, Aspose.Slides for Node.js via Java" +description: "Серии диаграмм в презентациях PowerPoint на JavaScript" +--- + +Серия — это строка или столбец чисел, отображенных на диаграмме. + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **Установить перекрытие серии диаграммы** + +С помощью метода [ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap) вы можете задать степень перекрытия столбцов и колонок на 2D‑диаграмме (диапазон: -100 — 100). Это свойство применяется ко всем сериям родительской группы серий: это проекция соответствующего свойства группы. Поэтому свойство доступно только для чтения. + +Используйте свойство чтения/записи `ParentSeriesGroup.getOverlap`, чтобы задать желаемое значение для `Overlap`. + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Добавьте сгруппированную колонную диаграмму на слайд. +3. Получите первую серию диаграммы. +4. Получите `ParentSeriesGroup` серии и задайте желаемое значение перекрытия. +5. Запишите изменённую презентацию в файл PPTX. + +Этот код JavaScript показывает, как задать перекрытие для серии диаграммы: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Добавляет диаграмму + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // Устанавливает перекрытие серии + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // Записывает файл презентации на диск + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Изменить цвет серии** + +Aspose.Slides for Node.js via Java позволяет изменить цвет серии следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Добавьте диаграмму на слайд. +3. Получите серию, цвет которой нужно изменить. +4. Задайте нужный тип заливки и цвет заливки. +5. Сохраните изменённую презентацию. + +Этот JavaScript‑код показывает, как изменить цвет серии: +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Изменить цвет категории серии** + +Aspose.Slides for Node.js via Java позволяет изменить цвет категории серии следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Добавьте диаграмму на слайд. +3. Получите категорию серии, цвет которой нужно изменить. +4. Задайте нужный тип заливки и цвет заливки. +5. Сохраните изменённую презентацию. + +Этот код JavaScript показывает, как изменить цвет категории серии: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Изменить имя серии** + +По умолчанию имена в легенде диаграммы берутся из ячеек, расположенных над каждым столбцом или строкой данных. + +В нашем примере (см. изображение): + +* столбцы имеют имена *Series 1, Series 2* и *Series 3*; +* строки – *Category 1, Category 2, Category 3* и *Category 4*. + +Aspose.Slides for Node.js via Java позволяет обновить или изменить имя серии в данных диаграммы и в легенде. + +Этот JavaScript‑код показывает, как изменить имя серии в данных диаграммы `ChartDataWorkbook`: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +Этот JavaScript‑код показывает, как изменить имя серии в легенде через `Series`: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить цвет заливки серии диаграммы** + +Aspose.Slides for Node.js via Java позволяет установить автоматический цвет заливки для серии диаграммы в области построения следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Добавьте диаграмму с данными по умолчанию, выбрав нужный тип (в примере ниже использован `ChartType.ClusteredColumn`). +4. Получите серию диаграммы и задайте цвет заливки **Automatic**. +5. Сохраните презентацию в файл PPTX. + +Этот JavaScript‑код показывает, как установить автоматический цвет заливки для серии диаграммы: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Создает диаграмму с группированными столбцами + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // Устанавливает автоматический формат заливки серии + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // Записывает файл презентации на диск + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить инвертированный цвет заливки серии диаграммы** + +Aspose.Slides позволяет установить инвертированный цвет заливки для серии диаграммы в области построения следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Добавьте диаграмму с данными по умолчанию, выбрав нужный тип (в примере ниже использован `ChartType.ClusteredColumn`). +4. Получите серию диаграммы и задайте инвертированный цвет заливки. +5. Сохраните презентацию в файл PPTX. + +Этот JavaScript‑код демонстрирует операцию: +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // Добавляет новые серии и категории + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // Берёт первую серию диаграммы и заполняет её данные + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить инверсию серии при отрицательном значении** + +Aspose.Slides позволяет установить инверсию через метод `ChartDataPoint.setInvertIfNegative`. При установке инверсии через свойства точка данных меняет цвета, когда её значение становится отрицательным. + +Этот JavaScript‑код демонстрирует операцию: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Очистить данные конкретных точек данных** + +Aspose.Slides for Node.js via Java позволяет очистить данные `DataPoints` для конкретной серии диаграммы следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Получите ссылку на слайд по его индексу. +3. Получите ссылку на диаграмму по её индексу. +4. Пройдитесь по всем `DataPoints` диаграммы и задайте `XValue` и `YValue` равными `null`. +5. Очистить все`DataPoints` для конкретной серии диаграммы. +6. Запишите изменённую презентацию в файл PPTX. + +Этот JavaScript‑код демонстрирует операцию: +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установить ширину промежутка серии** + +Aspose.Slides for Node.js via Java позволяет задать ширину промежутка серии через свойство **`GapWidth`** следующим образом: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +2. Откройте первый слайд. +3. Добавьте диаграмму с данными по умолчанию. +4. Получите любую серию диаграммы. +5. Задайте свойство `GapWidth`. +6. Запишите изменённую презентацию в файл PPTX. + +Этот код JavaScript показывает, как задать ширину промежутка серии: +```javascript +// Создает пустую презентацию +var pres = new aspose.slides.Presentation(); +try { + // Получает первый слайд презентации + var slide = pres.getSlides().get_Item(0); + // Добавляет диаграмму с данными по умолчанию + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // Устанавливает индекс листа данных диаграммы + var defaultWorksheetIndex = 0; + // Получает лист данных диаграммы + var fact = chart.getChartData().getChartDataWorkbook(); + // Добавляет серии + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Добавляет категории + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Берет вторую серию диаграммы + var series = chart.getChartData().getSeries().get_Item(1); + // Заполняет данные серии + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Устанавливает значение GapWidth + series.getParentSeriesGroup().setGapWidth(50); + // Сохраняет презентацию на диск + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Существует ли ограничение на количество серий, которое может содержать одна диаграмма?** + +Aspose.Slides не накладывает фиксированного ограничения на количество добавляемых серий. Практический максимум определяется читаемостью диаграммы и доступной памяти вашего приложения. + +**Что делать, если столбцы в кластере слишком близко расположены или слишком далеко друг от друга?** + +Отрегулируйте параметр **Gap Width** для этой серии (или её родительской группы серий). Увеличение значения расширяет промежуток между столбцами, а уменьшение делает их ближе друг к другу. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..c49ba73149 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: Полоса ошибок +type: docs +url: /ru/nodejs-java/error-bar/ +--- + +## **Добавить полосу ошибок** + +Aspose.Slides for Node.js via Java предоставляет простой API для управления значениями полос ошибок. Пример кода применяется при использовании пользовательского типа значения. Чтобы задать значение, используйте свойство **ErrorBarCustomValues** конкретной точки данных в коллекции [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) серии: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Добавьте пузырчатую диаграмму на нужный слайд. +1. Получите первую серию диаграммы и установите формат X для полосы ошибок. +1. Получите первую серию диаграммы и установите формат Y для полосы ошибок. +1. Установите значения полос и их формат. +1. Запишите изменённую презентацию в файл PPTX. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Создание пузырчатой диаграммы + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Добавление полос ошибок и установка их формата + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // Сохранение презентации + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавить пользовательское значение полосы ошибок** + +Aspose.Slides for Node.js via Java предоставляет простой API для управления пользовательскими значениями полос ошибок. Пример кода применяется, когда свойство [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) равно **Custom**. Чтобы задать значение, используйте свойство **ErrorBarCustomValues** конкретной точки данных в коллекции [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) серии: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Добавьте пузырчатую диаграмму на нужный слайд. +1. Получите первую серию диаграммы и установите формат X для полосы ошибок. +1. Получите первую серию диаграммы и установите формат Y для полосы ошибок. +1. Получите отдельные точки данных серии диаграммы и установите значения полос ошибок для каждой точки данных серии. +1. Установите значения полос и их формат. +1. Запишите изменённую презентацию в файл PPTX. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Создание пузырчатой диаграммы + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // Добавление пользовательских полос ошибок и установка их формата + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // Получение точки данных серии диаграммы и установка значений полос ошибок для + // отдельной точки + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // Установка полос ошибок для точек серии диаграммы + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // Сохранение презентации + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Что происходит с полосами ошибок при экспорте презентации в PDF или изображения?** + +Они отображаются как часть диаграммы и сохраняются при конвертации вместе с остальным форматированием диаграммы, при условии совместимой версии или рендерера. + +**Можно ли комбинировать полосы ошибок с маркерами и метками данных?** + +Да. Полосы ошибок являются отдельным элементом и совместимы с маркерами и метками данных; если элементы перекрываются, может потребоваться корректировка форматирования. + +**Где можно найти список свойств и перечислений для работы с полосами ошибок в API?** + +В справочнике API: класс [ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) и связанные перечисления [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) и [ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/). \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..44c4272f1d --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: Линия тренда +type: docs +url: /ru/nodejs-java/trend-line/ +--- + +## **Добавить линию тренда** + +Aspose.Slides for Node.js via Java предоставляет простой API для управления различными линиями тренда диаграмм: + +1. Создать экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получить ссылку на слайд по его индексу. +1. Добавить диаграмму с данными по умолчанию и выбранным типом (в примере используется ChartType.ClusteredColumn). +1. Добавить экспоненциальную линию тренда для серии диаграммы 1. +1. Добавить линейную линию тренда для серии диаграммы 1. +1. Добавить логарифмическую линию тренда для серии диаграммы 2. +1. Добавить скользящее среднее как линию тренда для серии диаграммы 2. +1. Добавить полиномиальную линию тренда для серии диаграммы 3. +1. Добавить степенную линию тренда для серии диаграммы 3. +1. Записать изменённую презентацию в файл PPTX. + +Следующий код используется для создания диаграммы с линиями тренда. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Создание диаграммы с группированными столбцами + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // Добавление экспоненциальной линии тренда для серии 1 + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // Добавление линейной линии тренда для серии 1 + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Добавление логарифмической линии тренда для серии 2 + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // Добавление линии тренда скользящего среднего для серии 2 + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // Добавление полиномиальной линии тренда для серии 3 + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // Добавление степенной линии тренда для серии 3 + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // Сохранение презентации + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Добавить пользовательскую линию** + +Aspose.Slides for Node.js via Java предоставляет простой API для добавления пользовательских линий в диаграмму. Чтобы добавить простую сплошную линию на выбранный слайд презентации, выполните следующие действия: + +- Создать экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +- Получить ссылку на слайд, используя его индекс. +- Создать новую диаграмму с помощью метода AddChart, доступного у объекта Shapes. +- Добавить AutoShape типа Line с помощью метода AddAutoShape, доступного у объекта Shapes. +- Установить цвет линий фигуры. +- Сохранить изменённую презентацию в файл PPTX. + +Следующий код используется для создания диаграммы с пользовательскими линиями. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Часто задаваемые вопросы** + +**Что означают «forward» и «backward» у линии тренда?** + +Это длина линии тренда, проецируемой вперёд/назад: для точечных (XY) диаграмм — в единицах оси; для недиаграммных диаграмм — в количестве категорий. Допустимы только неотрицательные значения. + +**Сохраняется ли линия тренда при экспорте презентации в PDF или SVG, либо при рендеринге слайда в изображение?** + +Да. Aspose.Slides конвертирует презентации в [PDF](/slides/ru/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/ru/nodejs-java/render-a-slide-as-an-svg-image/) и рендерит диаграммы в изображения; линии тренда, как часть диаграммы, сохраняются при этих операциях. Также доступен метод для [экспорта изображения самой диаграммы](/slides/ru/nodejs-java/create-shape-thumbnails/). \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..992df74fa9 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,327 @@ +--- +title: Форматирование диаграмм +type: docs +weight: 60 +url: /ru/nodejs-java/chart-formatting/ +--- + +## **Форматирование элементов диаграммы** + +Aspose.Slides for Node.js via Java позволяет разработчикам добавлять пользовательские диаграммы на слайды с нуля. Эта статья объясняет, как форматировать различные элементы диаграммы, включая оси категорий и значений. + +Aspose.Slides for Node.js via Java предоставляет простой API для управления различными элементами диаграммы и их форматированием с помощью пользовательских значений: + +1. Создайте экземпляр класса [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +1. Получите ссылку на слайд по его индексу. +1. Добавьте диаграмму с данными по умолчанию и выбранным типом (в этом примере мы используем ChartType.LineWithMarkers). +1. Получите доступ к оси значений диаграммы и задайте следующие свойства: + 1. Установка **Line format** для основных линий сетки оси значений + 1. Установка **Line format** для вспомогательных линий сетки оси значений + 1. Установка **Number Format** для оси значений + 1. Установка **Min, Max, Major and Minor units** для оси значений + 1. Установка **Text Properties** для данных оси значений + 1. Установка **Title** для оси значений + 1. Установка **Line Format** для оси значений +1. Получите доступ к оси категорий диаграммы и задайте следующие свойства: + 1. Установка **Line format** для основных линий сетки оси категорий + 1. Установка **Line format** для вспомогательных линий сетки оси категорий + 1. Установка **Text Properties** для данных оси категорий + 1. Установка **Title** для оси категорий + 1. Установка **Label Positioning** для оси категорий + 1. Установка **Rotation Angle** для меток оси категорий +1. Получите доступ к легенде диаграммы и задайте **Text Properties** для неё +1. Отобразите легенды диаграммы без перекрытия с диаграммой +1. Получите доступ к **Secondary Value Axis** диаграммы и задайте следующие свойства: + 1. Включите вторичную **Value Axis** + 1. Установка **Line Format** для вторичной оси значений + 1. Установка **Number Format** для вторичной оси значений + 1. Установка **Min, Max, Major and Minor units** для вторичной оси значений +1. Теперь построьте первый ряд диаграммы на вторичной оси значений +1. Установите цвет заливки задней стены диаграммы +1. Установите цвет заливки области построения диаграммы +1. Запишите изменённую презентацию в файл PPTX +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получение первого слайда + var slide = pres.getSlides().get_Item(0); + // Добавление примера диаграммы + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // Установка заголовка диаграммы + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Установка формата основных линий сетки для оси значений + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // Установка формата вспомогательных линий сетки для оси значений + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Установка числового формата оси значений + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // Установка максимальных и минимальных значений диаграммы + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // Установка текстовых свойств оси значений + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // Установка заголовка оси значений + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Установка формата основных линий сетки для оси категорий + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // Установка формата вспомогательных линий сетки для оси категорий + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setFillFormat(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // Установка текстовых свойств оси категорий + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // Установка заголовка оси категорий + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // Установка позиции меток оси категорий + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // Установка угла вращения меток оси категорий + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // Установка текстовых свойств легенд + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // Отображать легенды диаграммы без перекрытия диаграммы + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // Установка вторичной оси значений + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // Установка числового формата вторичной оси значений + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // Установка максимальных и минимальных значений диаграммы + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // Установка цвета задней стены диаграммы + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // Установка цвета области построения + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // Сохранить презентацию + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + + +## **Установка свойств шрифта для диаграммы** + +Aspose.Slides for Node.js via Java предоставляет поддержку настройки шрифтовых свойств для диаграммы. Пожалуйста, следуйте нижеприведённым шагам для установки свойств шрифта для диаграммы. + +- Создайте объект класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +- Добавьте диаграмму на слайд. +- Установите высоту шрифта. +- Сохраните изменённую презентацию. + +Ниже приведён пример. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Установка формата чисел** + +Aspose.Slides for Node.js via Java предоставляет простой API для управления форматом данных диаграммы: + +1. Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Получите ссылку на слайд по его индексу. +1. Добавьте диаграмму с данными по умолчанию и выбранным типом (в этом примере используется **ChartType.ClusteredColumn**). +1. Установите предустановленный числовой формат из возможных значений. +1. Пройдитесь по ячейкам данных диаграммы в каждом ряду и задайте числовой формат данных. +1. Сохраните презентацию. +1. Установите пользовательский числовой формат. +1. Пройдитесь по ячейкам данных диаграммы в каждом ряду и задайте иной числовой формат. +1. Сохраните презентацию. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + // Получить первый слайд презентации + var slide = pres.getSlides().get_Item(0); + // Добавление диаграммы кластерных столбцов по умолчанию + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // Получение коллекции рядов диаграммы + var series = chart.getChartData().getSeries(); + // Перебор всех рядов диаграммы + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // Перебор каждой ячейки данных в ряду + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // Установка числового формата + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // Сохранение презентации + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|**0**|Общий| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **Установка скруглённых границ области диаграммы** + +Aspose.Slides for Node.js via Java предоставляет поддержку настройки области диаграммы. Методы [**hasRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#hasRoundedCorners--) и [**setRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#setRoundedCorners-boolean-) были добавлены в класс [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart). + +1. Создайте объект класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation). +1. Добавьте диаграмму на слайд. +1. Установите тип заливки и цвет заливки диаграммы +1. Установите свойство скруглённого угла в значение True. +1. Сохраните изменённую презентацию. + +Ниже приведён пример. +```javascript +// Создать экземпляр класса Presentation +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Могу ли я задать полупрозрачные заливки для столбцов/областей, оставив границу непрозрачной?** + +Да. Прозрачность заливки и контур настраиваются отдельно. Это полезно для улучшения читаемости сетки и данных в плотных визуализациях. + +**Как справиться с наложением подпечатей данных?** + +Уменьшите размер шрифта, отключите несущественные компоненты подписи (например, категории), задайте смещение/позицию подписи, при необходимости показывайте подписи только для выбранных точек или переключите формат на "значение + легенда". + +**Могу ли я применять градиентные или шаблонные заливки к рядам?** + +Да. Обычно доступны как сплошные, так и градиентные/шаблонные заливки. На практике используйте градиенты экономно и избегайте комбинаций, снижающих контрастность с сеткой и текстом. \ No newline at end of file diff --git a/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..47d011e5c9 --- /dev/null +++ b/ru/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: 3D-диаграмма +type: docs +url: /ru/nodejs-java/3d-chart/ +--- + +## **Установить свойства RotationX, RotationY и DepthPercents у 3D‑диаграммы** + +Aspose.Slides for Node.js via Java предоставляет простой API для установки этих свойств. В этой статье показано, как задать различные свойства, такие как **X‑ и Y‑поворот, DepthPercents** и т. д. Пример кода демонстрирует установку перечисленных выше свойств. + +1. Создать экземпляр класса [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/). +2. Получить первый слайд. +3. Добавить диаграмму с данными по умолчанию. +4. Задать свойства Rotation3D. +5. Сохранить изменённую презентацию в файл PPTX. +```javascript +var pres = new aspose.slides.Presentation(); +try { + // Доступ к первому слайду + var slide = pres.getSlides().get_Item(0); + // Добавить диаграмму с данными по умолчанию + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // Установка индекса листа данных диаграммы + var defaultWorksheetIndex = 0; + // Получение листа данных диаграммы + var fact = chart.getChartData().getChartDataWorkbook(); + // Добавить серию + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Добавить категории + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Установить свойства Rotation3D + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // Получить вторую серию диаграммы + var series = chart.getChartData().getSeries().get_Item(1); + // Сейчас заполняем данные серии + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Установить значение перекрытия + series.getParentSeriesGroup().setOverlap(100); + // Сохранить презентацию на диск + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Какие типы диаграмм поддерживают 3D‑режим в Aspose.Slides?** + +Aspose.Slides поддерживает 3D‑варианты столбчатых диаграмм, включая Column 3D, Clustered Column 3D, Stacked Column 3D и 100 % Stacked Column 3D, а также связанные 3D‑типы, доступные через перечисление [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/). Для актуального списка см. члены [ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/) в справочнике API установленной версии. + +**Можно ли получить растровое изображение 3D‑диаграммы для отчёта или веба?** + +Да. Вы можете экспортировать диаграмму в изображение через [chart API](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage) или [render the entire slide](/slides/ru/nodejs-java/convert-powerpoint-to-png/) в форматы PNG или JPEG. Это удобно, когда нужен пиксель‑точный просмотр или требуется встроить диаграмму в документы, панели мониторинга или веб‑страницы без необходимости использования PowerPoint. + +**Насколько производительно построение и рендеринг больших 3D‑диаграмм?** + +Производительность зависит от объёма данных и визуальной сложности. Для лучших результатов минимизируйте 3D‑эффекты, избегайте тяжёлых текстур на стенах и областях построения, по возможности ограничьте количество точек данных в серии и рендерите в подходящем размере вывода (разрешение и размеры), соответствующем требуемому отображению или печати. \ No newline at end of file diff --git a/ru/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/ru/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index bf352e3c02..705f883713 100644 --- a/ru/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/ru/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -1,5 +1,5 @@ --- -title: Автоматизация локализации презентаций с Python +title: Автоматизировать локализацию презентаций с помощью Python linktitle: Локализация презентаций type: docs weight: 100 @@ -12,18 +12,18 @@ keywords: - презентация - Python - Aspose.Slides -description: "Автоматизируйте локализацию слайдов PowerPoint и OpenDocument в Python с помощью Aspose.Slides, используя практические примеры кода и советы для более быстрого глобального развертывания." +description: "Автоматизировать локализацию слайдов PowerPoint и OpenDocument в Python с помощью Aspose.Slides, используя практические примеры кода и советы для более быстрого глобального развертывания." --- -## **Изменение языка для презентации и текста фигур** -- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/) . -- Получите ссылку на слайд, используя его Index. +## **Изменение языка для текста в презентации и фигуре** +- Создайте экземпляр класса [Presentation](https://reference.aspose.com/slides/python-net/aspose.slides/presentation/). +- Получите ссылку на слайд, используя его индекс. - Добавьте AutoShape типа Rectangle на слайд. - Добавьте некоторый текст в TextFrame. - Установите Language Id для текста. - Сохраните презентацию в файл PPTX. -Реализация вышеуказанных шагов показана ниже в примере. +Реализация вышеуказанных шагов продемонстрирована ниже в примере. ```py import aspose.slides as slides @@ -38,14 +38,14 @@ with slides.Presentation("pres.pptx") as pres: ## **FAQ** -**Вызывает ли language_id автоматический перевод текста?** +**Включает ли идентификатор языка автоматический перевод текста?** -Нет. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) в Aspose.Slides хранит язык для проверки орфографии и грамматики, но не переводит и не изменяет содержание текста. Это метаданные, которые PowerPoint понимает для проверки. +Нет. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) в Aspose.Slides хранит язык для проверки орфографии и грамматики, но не переводит и не изменяет содержимое текста. Это метаданные, которые PowerPoint понимает для корректуры. -**Влияет ли language_id на переносы слов и разрывы строк при рендеринге?** +**Влияет ли идентификатор языка на переносы и разрывы строк при рендеринге?** -В Aspose.Slides [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) используется для проверки. Качество переноса и перенос строк в основном зависит от наличия [соответствующих шрифтов](/slides/ru/python-net/powerpoint-fonts/) и настроек макета/переноса строк для системы письма. Чтобы обеспечить правильный рендеринг, сделайте необходимые шрифты доступными, настройте [правила замены шрифтов](/slides/ru/python-net/font-substitution/) и/или [встраивание шрифтов](/slides/ru/python-net/embedded-font/) в презентацию. +В Aspose.Slides [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) используется для корректуры. Качество переноса слов и переносов строк в первую очередь зависит от наличия [proper fonts](/slides/ru/python-net/powerpoint-fonts/) и настроек раскладки/переноса для системы письма. Чтобы обеспечить правильный рендеринг, сделайте необходимые шрифты доступными, настройте [font substitution rules](/slides/ru/python-net/font-substitution/), и/или [embed fonts](/slides/ru/python-net/embedded-font/) в презентацию. -**Могу ли я установить разные языки в одном абзаце?** +**Можно ли установить разные языки в одном абзаце?** -Да. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) применяется на уровне части текста, поэтому один абзац может смешивать несколько языков с отдельными настройками проверки. +Да. [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) применяется на уровне части текста, поэтому один абзац может содержать несколько языков с разными настройками корректуры. diff --git a/zh/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/zh/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index a23fba4114..c92c1699fc 100644 --- a/zh/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/zh/net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -4,17 +4,18 @@ type: docs weight: 100 url: /zh/net/presentation-localization/ keywords: "更改语言, 拼写检查, 拼写检查, 拼写检查器, PowerPoint 演示文稿, C#, Csharp, Aspose.Slides for .NET" -description: "在 PowerPoint 演示文稿中更改或检查语言。使用 C# 或 .NET 进行拼写检查。" +description: "在 PowerPoint 演示文稿中更改或检查语言。使用 C# 或 .NET 进行拼写检查文本。" --- ## **更改演示文稿和形状文本的语言** -- 创建一个 [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) 类的实例。 +- 创建 [Presentation](https://reference.aspose.com/slides/net/aspose.slides/presentation) 类的实例。 - 通过使用索引获取幻灯片的引用。 -- 向幻灯片添加一个矩形类型的 AutoShape。 +- 向幻灯片添加矩形类型的 AutoShape。 - 向 TextFrame 添加一些文本。 -- 为文本设置 Language Id。 -- 将演示文稿写入为 PPTX 文件。 +- 设置文本的 Language Id。 +- 将演示文稿写入 PPTX 文件。 +下面的示例演示了上述步骤的实现。 ```c# using (Presentation pres = new Presentation("test0.pptx")) { @@ -29,14 +30,14 @@ using (Presentation pres = new Presentation("test0.pptx")) ## **常见问题** -**language_id 会触发自动文本翻译吗?** +**语言 ID 会触发自动文本翻译吗?** -否。Aspose.Slides 中的 [language_id](https://reference.aspose.com/slides/net/aspose.slides/portionformat/languageid/) 用于存储用于拼写检查和语法校对的语言,但它不翻译或更改文本内容。它是 PowerPoint 用于校对的元数据。 +不会。[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) 在 Aspose.Slides 中用于存储用于拼写检查和语法校对的语言,但它不会翻译或更改文本内容。它是 PowerPoint 用于校对的元数据。 -**language_id 会影响渲染时的连字符和换行吗?** +**语言 ID 会影响渲染过程中的连字符和换行吗?** -在 Aspose.Slides 中,[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) 用于校对。连字符质量和换行主要取决于 [proper fonts](/slides/zh/net/powerpoint-fonts/) 的可用性以及针对书写系统的布局/换行设置。为确保正确渲染,需要提供所需字体,配置 [font substitution rules](/slides/zh/net/font-substitution/),和/或将字体 [embed fonts](/slides/zh/net/embedded-font/) 到演示文稿中。 +在 Aspose.Slides 中,[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) 用于校对。连字符质量和换行主要取决于[合适的字体](/slides/zh/net/powerpoint-fonts/)的可用性以及书写系统的布局/换行设置。为了确保正确渲染,请确保所需字体可用,配置[字体替换规则](/slides/zh/net/font-substitution/),并/或将[嵌入字体](/slides/zh/net/embedded-font/)嵌入演示文稿。 -**我可以在同一段落中设置不同的语言吗?** +**我可以在单个段落中设置不同的语言吗?** -是的。[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) 在文本段落级别应用,因此单个段落可以混合多种语言并具有不同的校对设置。 \ No newline at end of file +可以。[LanguageId](https://reference.aspose.com/slides/net/aspose.slides/baseportionformat/languageid/) 在文本片段级别应用,因此单个段落可以混合多种语言并使用不同的校对设置。 diff --git a/zh/nodejs-java/developer-guide/3d-presentation/_index.md b/zh/nodejs-java/developer-guide/3d-presentation/_index.md new file mode 100644 index 0000000000..80b105901a --- /dev/null +++ b/zh/nodejs-java/developer-guide/3d-presentation/_index.md @@ -0,0 +1,225 @@ +--- +title: 3D 演示文稿 +type: docs +weight: 232 +url: /zh/nodejs-java/3d-presentation/ +--- + +## **概述** + +自 Aspose.Slides for Java 20.9 起,演示文稿中可以创建 3D。PowerPoint 3D 为演示文稿注入活力。使用 3D 演示展示真实世界对象,演示您未来商业项目的 3D 模型、建筑或内部的 3D 模型、游戏角色的 3D 模型,或仅仅是数据的 3D 表示。 + +PowerPoint 3D 模型可以由 2D 形状创建,通过在其上应用以下效果:3D 旋转、3D 深度和拉伸、3D 渐变、3D 文本等。可在 **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** 类中找到应用于形状的 3D 功能列表。可以通过以下方式获取该类的实例: + +- 用于创建 PowerPoint 3D 模型的 **[Shape.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getThreeDFormat--)** 方法。 +- 用于创建 3D 文本(WordArt)的 **[TextFrameFormat.getThreeDFormat()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getThreeDFormat--)** 方法。 + +在 **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** 中实现的所有效果均可用于形状和文本。让我们快速了解 **[ThreeDFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat)** 类的主要方法。在下一个示例中,我们创建一个带文字的矩形 2D 形状。通过获取形状的相机视图,改变其旋转,使其看起来像 3D 模型。设置平面光并将光的方向指向 3D 模型的顶部,以增加模型的体积。更改材料、拉伸高度和颜色使 3D 模型更具活力。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Flat); + shape.getThreeDFormat().setExtrusionHeight(100); + shape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("sandbox_3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +以下是生成的 3D 模型: + +![todo:image_alt_text](img_01_01.png) + +## **3D 旋转** + +PowerPoint 中的 3D 模型旋转可以通过菜单完成: + +![todo:image_alt_text](img_02_01.png) + +要使用 Aspose.Slides API 旋转 3D 模型,请使用 **[ThreeDFormat.getCamera()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getCamera--)** 方法,设置相机相对于 3D 形状的旋转: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +// ... 设置其他 3D 场景参数 +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +## **3D 深度和拉伸** + +**[ThreeDFormat.getExtrusionHeight()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionHeight--)** 和 **[ThreeDFormat.getExtrusionColor()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ThreeDFormat#getExtrusionColor--)** 方法用于在形状上创建拉伸: +```javascript +var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); +shape.getThreeDFormat().getCamera().setRotation(20, 30, 40); +shape.getThreeDFormat().setExtrusionHeight(100); +shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 128, 0, 128)); + // ... 设置其他 3D 场景参数 +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +在 PowerPoint 中,形状的深度通过以下方式设置: + +![todo:image_alt_text](img_02_02.png) + +## **3D 渐变** + +3D 渐变可以为 PowerPoint 3D 形状增添更多体积: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 250, 250); + shape.getTextFrame().setText("3D"); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(64); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient)); + shape.getFillFormat().getGradientFormat().getGradientStops().add(0, java.getStaticFieldValue("java.awt.Color", "BLUE")); + shape.getFillFormat().getGradientFormat().getGradientStops().add(100, java.getStaticFieldValue("java.awt.Color", "ORANGE")); + shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront); + shape.getThreeDFormat().getCamera().setRotation(10, 20, 30); + shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Flat); + shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + shape.getThreeDFormat().setExtrusionHeight(150); + shape.getThreeDFormat().getExtrusionColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +效果如下: + +![todo:image_alt_text](img_02_03.png) + +您也可以创建图像渐变: +```javascript +shape.getFillFormat().setFillType(java.newByte(java.newByteaspose.slides.FillType.Picture)); +var picture; +var image = aspose.slides.Images.fromFile("image.png"); +try { + picture = pres.getImages().addImage(image); +} finally { + if (image != null) { + image.dispose(); + } +} +shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); +shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); +// .. 设置 3D: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* properties +try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("sample_3d.png", aspose.slides.ImageFormat.Png); +} finally { + if (slideImage != null) { + slideImage.dispose(); + } +} +``` + + +以下是结果: + +![todo:image_alt_text](img_02_04.png) + +## **3D 文本(WordArt)** + +要创建 3D 文本(WordArt),请执行以下操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 150, 200, 200); + shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + shape.getTextFrame().setText("3D Text"); + var portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.newInstanceSync("java.awt.Color", 255, 140, 0)); + portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.LargeGrid)); + shape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(128); + var textFrame = shape.getTextFrame(); + // 设置 "Arch Up" WordArt 变换效果 + textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUp)); + textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(3.5); + textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); + textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); + textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); + textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); + try { + var slideImage = pres.getSlides().get_Item(0).getImage(2, 2); + slideImage.save("text3d.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + pres.save("text3d.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +以下是结果: + +![todo:image_alt_text](img_02_05.png) + +## **常见问题** + +**导出演示文稿为图像/PDF/HTML 时,3D 效果会被保留吗?** + +会。Slides 3D 引擎在导出到受支持的格式时会渲染 3D 效果([图像](/slides/zh/nodejs-java/convert-powerpoint-to-png/)、[PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/)、[HTML](/slides/zh/nodejs-java/convert-powerpoint-to-html/),等等)。 + +**我可以检索考虑主题、继承等因素的“实际”(最终) 3D 参数值吗?** + +会。Slides 提供了用于 [读取实际值](/slides/zh/nodejs-java/shape-effective-properties/) 的 API(包括 3D——灯光、斜角等),以便查看最终应用的设置。 + +**将演示文稿转换为视频时,3D 效果会生效吗?** + +会。在为视频[生成帧](/slides/zh/nodejs-java/convert-powerpoint-to-video/)时,3D 效果会像[导出的图像](/slides/zh/nodejs-java/convert-powerpoint-to-png/)一样进行渲染。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md new file mode 100644 index 0000000000..59167766ce --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/_index.md @@ -0,0 +1,36 @@ +--- +title: 转换 OpenOffice ODP +type: docs +weight: 10 +url: /zh/nodejs-java/convert-openoffice-odp/ +keywords: "在 JavaScript 中将 ODP 转换为 PDF、ODP 转换为 HTML、ODP 转换为 TIFF" +description: "在 JavaScript 中将 ODP 转换为 PDF、ODP 转换为 PPT、ODP 转换为 PPTX、ODP 转换为 HTML" +--- + +[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) 允许将 OpenOffice ODP 演示文稿转换为多种格式。转换 ODP 为其他类型的 API 与 PowerPoint 类型相同。您可以使用以下示例将 ODP 转换,只需更改 ODP 演示文稿文件的源文件: + +- [将 ODP 转换为 HTML](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-html/) +- [将 ODP 转换为 PDF](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf/) +- [将 ODP 转换为 TIFF](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff/) +- [将 ODP 转换为 SWF Flash](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-swf-flash/) +- [将 ODP 转换为 XPS](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document/) +- [将 ODP 转换为带注释的 PDF](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-pdf-notes/) +- [将 ODP 转换为带注释的 TIFF](/slides/zh/nodejs-java/convert-powerpoint-ppt-and-pptx-to-tiff-with-notes/) + +## **常见问题** + +**如果 ODP 文件的格式在转换后发生变化怎么办?** + +ODP 和 PowerPoint 使用不同的演示模型,某些元素——如表格、自定义字体或填充样式——可能无法完全相同地呈现。建议检查输出结果,并在必要时通过代码调整布局或格式。 + +**是否需要安装 OpenOffice 或 LibreOffice 才能使用 ODP 转换?** + +不需要,Aspose.Slides 是独立库,无需在系统上安装 OpenOffice 或 LibreOffice。 + +**在 ODP 转换期间可以自定义输出格式吗(例如设置 PDF 选项)?** + +可以,Aspose.Slides 提供丰富的选项来自定义输出。例如,在保存为 PDF 时,您可以通过 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/) 类控制压缩、图像质量、文本渲染等。 + +**Aspose.Slides 适用于服务器端或基于云的 ODP 处理吗?** + +完全适用。Aspose.Slides 设计用于桌面和服务器环境,包括基于云的平台(如 Azure、AWS)以及 Docker 容器,且不依赖任何 UI。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md new file mode 100644 index 0000000000..c94fccd86d --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-openoffice-odp/convert-odp-to-pptx/_index.md @@ -0,0 +1,37 @@ +--- +title: 将 ODP 转换为 PPTX +type: docs +weight: 10 +url: /zh/nodejs-java/convert-odp-to-pptx/ +--- + +## **将 ODP 转换为 PPTX/PPT 演示文稿** +Aspose.Slides for Node.js via Java 提供了表示演示文稿文件的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类。现在,当实例化对象时,[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类也可以通过 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#Presentation-java.lang.String-) 构造函数访问 ODP。以下示例展示了如何将 ODP 演示文稿转换为 PPTX 演示文稿。 +```javascript +// 打开 ODP 文件 +var pres = new aspose.slides.Presentation("AccessOpenDoc.odp"); +// 将 ODP 演示文稿保存为 PPTX 格式 +pres.save("AccessOpenDoc_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **实时示例** +您可以访问[**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/)网页应用,该应用基于**Aspose.Slides API**构建。该应用演示了如何使用 Aspose.Slides API 实现 ODP 到 PPTX 的转换。 + +## **常见问题** + +**我需要安装 Microsoft PowerPoint 或 LibreOffice 才能将 ODP 转换为 PPTX 吗?** + +不需要。Aspose.Slides 可独立运行,无需第三方应用程序即可读取或写入 ODP/PPTX。 + +**在转换过程中,母版幻灯片、布局和主题会被保留吗?** + +会的。该库使用完整的演示文稿对象模型并保留结构,包括母版幻灯片和布局,因而转换后设计保持正确。 + +**我可以转换受密码保护的 ODP 文件吗?** + +可以。Aspose.Slides 支持检测保护,打开并处理[受保护的演示文稿](/slides/zh/nodejs-java/password-protected-presentation/)(包括 ODP),只需提供密码,同时支持配置加密和访问文档属性。 + +**Aspose.Slides 适用于云或基于 REST 的转换服务吗?** + +可以。您可以在自己的后端使用本地库,或使用[Aspose.Slides Cloud](https://products.aspose.cloud/slides/family/)(REST API);这两种方式都支持 ODP → PPTX 转换。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md new file mode 100644 index 0000000000..5192abf6ce --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-in-Handout-mode/_index.md @@ -0,0 +1,63 @@ +--- +title: 在 JavaScript 中将演示文稿转换为讲义模式 +type: docs +weight: 150 +url: /zh/nodejs-java/convert-powerpoint-in-Handout-mode/ +keywords: +- 转换 PowerPoint +- 讲义模式 +- 讲义 +- PowerPoint +- PPT +- PPTX +- 演示文稿 +- Node.js +- JavaScript +- Aspose.Slides +description: "在 JavaScript 中将演示文稿转换为讲义模式" +--- + +## **讲义模式导出** + +Aspose.Slides 提供将演示文稿转换为多种格式的功能,包括在 Handout 模式下创建用于打印的讲义。此模式允许您配置多张幻灯片在单页上的显示方式,非常适合会议、研讨会等活动。您可以通过在 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)、[RenderingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/renderingoptions/)、[HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) 和 [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) 类中设置 `setSlidesLayoutOptions` 方法来启用此模式。 + +要配置 Handout 模式,请使用 [HandoutLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handoutlayoutingoptions/) 对象,它决定单页上放置的幻灯片数量以及其他显示参数。 + +下面的代码示例展示了如何在 Handout 模式下将演示文稿转换为 PDF。 +```js +// 加载演示文稿。 +let presentation = new asposeSlides.Presentation("sample.pptx"); + +// 设置导出选项。 +let slidesLayoutOptions = new asposeSlides.HandoutLayoutingOptions(); +slidesLayoutOptions.setHandout(asposeSlides.HandoutType.Handouts4Horizontal); // 每页水平放置 4 张幻灯片 +slidesLayoutOptions.setPrintSlideNumbers(true); // 打印幻灯片编号 +slidesLayoutOptions.setPrintFrameSlide(true); // 在幻灯片周围打印框架 +slidesLayoutOptions.setPrintComments(false); // 无评论 + +let pdfOptions = new asposeSlides.PdfOptions(); +pdfOptions.setSlidesLayoutOptions(slidesLayoutOptions); + +// Export the presentation to PDF with the chosen layout. +presentation.save("output.pdf", asposeSlides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + + +{{% alert color="warning" %}} +请注意,`setSlidesLayoutOptions` 方法仅在某些输出格式中可用,例如 PDF、HTML、TIFF,以及以图像形式渲染时。 +{{% /alert %}} + +## **常见问题** + +**Handout 模式下每页的幻灯片缩略图最大数量是多少?** + +Aspose.Slides 支持的 [presets](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) 每页最多可放置 9 张缩略图,排列方式可为水平或垂直:1、2、3、4(水平/垂直)、6(水平/垂直)以及 9(水平/垂直)。 + +**我可以自定义网格,例如每页 5 张或 8 张幻灯片吗?** + +不能。缩略图的数量和排列方式严格受 [HandoutType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/handouttype/) 枚举控制,不支持自定义布局。 + +**我可以在 Handout 输出中包含隐藏的幻灯片吗?** + +可以。请在目标格式的导出设置中使用 `setShowHiddenSlides` 方法,例如在 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/)、[HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/htmloptions/) 或 [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) 中。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md new file mode 100644 index 0000000000..5239788438 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-animated-gif/_index.md @@ -0,0 +1,62 @@ +--- +title: 将 PowerPoint 转换为动画 GIF +type: docs +weight: 65 +url: /zh/nodejs-java/convert-powerpoint-to-animated-gif/ +keywords: "将 PowerPoint 转换为动画 GIF, PPT 转 GIF, PPTX 转 GIF" +description: "将 PowerPoint 转换为动画 GIF:PPT 转 GIF,PPTX 转 GIF,使用 Aspose.Slides API。" +--- + +## **使用默认设置将演示文稿转换为动画 GIF** + +以下 JavaScript 示例代码演示了如何使用标准设置将演示文稿转换为动画 GIF: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.gif", aspose.slides.SaveFormat.Gif); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +动画 GIF 将使用默认参数创建。 + +{{% alert title="提示" color="primary" %}} +如果您希望自定义 GIF 的参数,可以使用 [GifOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/GifOptions) 类。请参阅下面的示例代码。 +{{% /alert %}} + +## **使用自定义设置将演示文稿转换为动画 GIF** + +以下示例代码演示了如何在 JavaScript 中使用自定义设置将演示文稿转换为动画 GIF: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var gifOptions = new aspose.slides.GifOptions(); + gifOptions.setFrameSize(java.newInstanceSync("java.awt.Dimension", 960, 720));// 生成的 GIF 的尺寸 + gifOptions.setDefaultDelay(2000);// 每张幻灯片显示的时长,直到切换到下一张 + gifOptions.setTransitionFps(35);// 提高 FPS 以获得更好的过渡动画质量 + pres.save("pres.gif", aspose.slides.SaveFormat.Gif, gifOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="信息" color="info" %}} +您可以查看由 Aspose 开发的免费 [Text to GIF](https://products.aspose.app/slides/text-to-gif) 转换器。 +{{% /alert %}} + +## **常见问题** + +**如果演示文稿中使用的字体未在系统上安装怎么办?** + +安装缺失的字体或 [配置备用字体](/slides/zh/nodejs-java/powerpoint-fonts/)。Aspose.Slides 将进行替换,但外观可能会有所不同。如需品牌一致性,请务必确保所需字体已明确可用。 + +**我可以在 GIF 帧上叠加水印吗?** + +是的。 在导出前将 [添加半透明对象/徽标](/slides/zh/nodejs-java/watermark/) 到母版幻灯片或各个幻灯片 — 水印将出现在每一帧上。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md new file mode 100644 index 0000000000..b57081815d --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-html/_index.md @@ -0,0 +1,432 @@ +--- +title: 在 JavaScript 中将 PowerPoint 转换为 HTML +linktitle: 将 Powerpoint 转换为 HTML +type: docs +weight: 30 +url: /zh/nodejs-java/convert-powerpoint-to-html/ +keywords: "Java PowerPoint 转 HTML, Convert PowerPoint 演示文稿, PPTX, PPT, PPT 转 HTML, PPTX 转 HTML, PowerPoint 转 HTML, 将 PowerPoint 保存为 HTML, 将 PPT 保存为 HTML, 将 PPTX 保存为 HTML, Java, Aspose.Slides, HTML 导出" +description: "在 JavaScript 中将 PowerPoint 转换为 HTML。将 PPTX 或 PPT 保存为 HTML。将幻灯片保存为 HTML。" +--- + +## **概述** + +本文介绍如何使用 JavaScript 将 PowerPoint 演示文稿转换为 HTML 格式。内容包括以下主题。 + +- 使用 JavaScript 将 PowerPoint 转换为 HTML +- 使用 JavaScript 将 PPT 转换为 HTML +- 使用 JavaScript 将 PPTX 转换为 HTML +- 使用 JavaScript 将 ODP 转换为 HTML +- 使用 JavaScript 将 PowerPoint 幻灯片转换为 HTML + +## **JavaScript PowerPoint 转 HTML** + +为了获取将 PowerPoint 转换为 HTML 的 JavaScript 示例代码,请参阅下面的章节,即[Convert PowerPoint to HTML](#convert-powerpoint-to-html)。该代码能够在 Presentation 对象中加载 PPT、PPTX 和 ODP 等多种格式并保存为 HTML。 + +## **关于 PowerPoint 转 HTML 转换** + +使用 [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/),应用程序和开发者可以将 PowerPoint 演示文稿转换为 HTML:**PPTX 转 HTML** 或 **PPT 转 HTML**。 + +**Aspose.Slides** 提供许多选项(主要来自 [**HtmlOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) 类),用于定义 PowerPoint 转 HTML 的转换过程: + +* 将整个 PowerPoint 演示文稿转换为 HTML。 +* 将 PowerPoint 演示文稿中的特定幻灯片转换为 HTML。 +* 将演示文稿媒体(图像、视频等)转换为 HTML。 +* 将 PowerPoint 演示文稿转换为响应式 HTML。 +* 将 PowerPoint 演示文稿转换为包含或不包含演讲者备注的 HTML。 +* 将 PowerPoint 演示文稿转换为包含或不包含批注的 HTML。 +* 将 PowerPoint 演示文稿转换为使用原始字体或嵌入字体的 HTML。 +* 在使用新 CSS 样式的情况下将 PowerPoint 演示文稿转换为 HTML。 + +{{% alert color="primary" %}} + +使用其自己的 API,Aspose 开发了免费的 [演示文稿转 HTML](https://products.aspose.app/slides/conversion/powerpoint-to-html) 转换器:[PPT 转 HTML](https://products.aspose.app/slides/conversion/ppt-to-html)、[PPTX 转 HTML](https://products.aspose.app/slides/conversion/pptx-to-html)、[ODP 转 HTML](https://products.aspose.app/slides/conversion/odp-to-html) 等。 + +[![todo:image_alt_text](ppt-to-html.png)](https://products.aspose.app/slides/conversion/ppt-to-html) + +您可能想查看其他来自 Aspose 的 [免费转换器](https://products.aspose.app/slides/conversion)。 + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +除本文描述的转换过程外,Aspose.Slides 还支持以下涉及 HTML 格式的转换操作: + +* [HTML 转图像](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML 转 JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML 转 XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML 转 TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} + +## **将 PowerPoint 转换为 HTML** + +使用 Aspose.Slides,您可以通过以下方式将整个 PowerPoint 演示文稿转换为 HTML: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 使用 [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) 方法将对象保存为 HTML 文件。 + +以下代码展示了如何在 JavaScript 中将 PowerPoint 转换为 HTML: + +```javascript +// 实例化一个表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var htmlOpt = new aspose.slides.HtmlOptions(); + htmlOpt.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + htmlOpt.setHtmlFormatter(aspose.slides.HtmlFormatter.createDocumentFormatter("", false)); + // 将演示文稿保存为 HTML + pres.save("ConvertWholePresentationToHTML_out.html", aspose.slides.SaveFormat.Html, htmlOpt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 PowerPoint 转换为响应式 HTML** + +Aspose.Slides 提供了 [ResponsiveHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ResponsiveHtmlController) 类,可生成响应式 HTML 文件。以下代码展示了如何在 JavaScript 中将 PowerPoint 演示文稿转换为响应式 HTML: + +```javascript +// 实例化一个表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("Convert_HTML.pptx"); +try { + var controller = new aspose.slides.ResponsiveHtmlController(); + var htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + // 将演示文稿保存为 HTML + pres.save("ConvertPresentationToResponsiveHTML_out.html", aspose.slides.SaveFormat.Html, htmlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 PowerPoint 转换为带备注的 HTML** + +以下代码展示了如何在 JavaScript 中将 PowerPoint 转换为带备注的 HTML: + +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var opt = new aspose.slides.HtmlOptions(); + var options = opt.getNotesCommentsLayouting(); + options.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // 保存备注页 + pres.save("Output.html", aspose.slides.SaveFormat.Html, opt); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 PowerPoint 转换为带原始字体的 HTML** + +Aspose.Slides 提供了 [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) 类,可在将演示文稿转换为 HTML 时嵌入所有字体。 + +为防止嵌入某些字体,您可以向 [EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) 类的带参数构造函数传递字体名称数组。像 Calibri 或 Arial 这样常用的字体在演示文稿中使用时不必嵌入,因为大多数系统已包含这些字体。若嵌入这些字体,生成的 HTML 文档会不必要地增大。 + +[EmbedAllFontsHtmlController](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController) 类支持继承,并提供了 [WriteFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EmbedAllFontsHtmlController#writeFont-aspose.slides.IHtmlGenerator-aspose.slides.IFontData-aspose.slides.IFontData-java.lang.String-java.lang.String-byte:A-) 方法,供重写使用。 + +```javascript +var pres = new aspose.slides.Presentation("input.pptx"); +try { + // 排除默认演示文稿字体 + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var embedFontsController = new aspose.slides.EmbedAllFontsHtmlController(fontNameExcludeList); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(embedFontsController)); + pres.save("input-PFDinDisplayPro-Regular-installed.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 PowerPoint 转换为高质量图像的 HTML** + +默认情况下,将 PowerPoint 转换为 HTML 时,Aspose.Slides 输出的 HTML 较小,图像分辨率为 72 DPI 并删除裁剪区域。要获得更高质量图像的 HTML 文件,需要向 `HtmlOptions` 类的 `setPicturesCompression` 方法传入 `96`(即 `PicturesCompression.Dpi96`)或更高的[值](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PicturesCompression)。 + +以下 JavaScript 代码展示了如何在转换 PowerPoint 演示文稿为 HTML 时以 150 DPI(即 `PicturesCompression.Dpi150`)获取高质量图像: + +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setPicturesCompression(aspose.slides.PicturesCompression.Dpi150); + pres.save("OutputDoc-dpi150.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +以下 JavaScript 代码展示了如何输出带完整质量图像的 HTML: + +```javascript +var pres = new aspose.slides.Presentation("InputDoc.pptx"); +try { + var htmlOpts = new aspose.slides.HtmlOptions(); + htmlOpts.setDeletePicturesCroppedAreas(false); + pres.save("Outputdoc-noCrop.html", aspose.slides.SaveFormat.Html, htmlOpts); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将幻灯片转换为 HTML** + +要将 PowerPoint 中的特定幻灯片转换为 HTML,需要实例化相同的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类(用于将整个演示文稿转换为 HTML),然后使用 [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) 方法将文件保存为 HTML。[HtmlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HtmlOptions) 类可用于指定其他转换选项: + +以下 JavaScript 代码展示了如何将 PowerPoint 演示文稿中的幻灯片转换为 HTML: + +```javascript +var pres = new aspose.slides.Presentation("Individual-Slide.pptx"); +try { + let htmlOptions = new aspose.slides.HtmlOptions(); + htmlOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + + const CustomFormattingController = java.newProxy("com.aspose.slides.IHtmlFormattingController", { + writeDocumentStart: function(generator, presentation) { + + }, + + writeDocumentEnd: function(generator, presentation) { + + }, + + writeSlideStart: function(generator, slide) { + const slideIndex = generator.getSlideIndex() + 1; + const slideHeaderHtml = `
`; + generator.addHtml(slideHeaderHtml); + }, + + writeSlideEnd: function(generator, slide) { + const slideFooterHtml = "
"; + generator.addHtml(slideFooterHtml); + }, + + writeShapeStart: function(generator, shape) { + }, + + writeShapeEnd: function(generator, shape) { + } + }); + + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(CustomFormattingController)); + // 保存文件 + for (var i = 0; i < pres.getSlides().size(); i++) { + pres.save(("Individual Slide" + (i + 1)) + "_out.html", java.newArray("int", [i + 1]), aspose.slides.SaveFormat.Html, htmlOptions); + } +} finally { + if (pres != null) pres.dispose(); +} +``` + + +## **导出为 HTML 时保存 CSS 与图像** + +使用新的 CSS 样式文件,您可以轻松更改 PowerPoint 转 HTML 过程生成的 HTML 文件的样式。 + +本示例中的 JavaScript 代码展示了如何使用可重写方法创建带有 CSS 文件链接的自定义 HTML 文档: + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var htmlController = java.newInstanceSync("CustomHeaderAndFontsController", "styles.css"); + var options = new aspose.slides.HtmlOptions(); + options.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(htmlController)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +您需要在 Java 中实现 CustomHeaderAndFontsController,编译后添加到模块位置 \aspose.slides.via.java\lib\。 + +以下 Java 代码展示了 `CustomHeaderAndFontsController` 的实现方式: + +```java +public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController +{ + private final int m_basePath = 0; + + // 自定义头部模板 + final static String Header = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + ""; + + private final String m_cssFileName; + + public CustomHeaderAndFontsController(String cssFileName) + { + m_cssFileName = cssFileName; + } + + public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(String.format(Header, m_cssFileName)); + writeAllFonts(generator, presentation); + } + + public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) + { + generator.addHtml(""); + super.writeAllFonts(generator, presentation); + } +} +``` + + +## **将演示文稿转换为 HTML 时链接所有字体** + +如果您不想嵌入字体(以避免增加生成的 HTML 大小),可以通过实现自己的 `LinkAllFontsHtmlController` 版本来链接所有字体。 + +以下 JavaScript 代码展示了如何在链接所有字体的同时将 PowerPoint 转换为 HTML,并排除 "Calibri" 和 "Arial"(因为系统已存在这些字体): + +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // 排除默认演示文稿字体 + var fontNameExcludeList = java.newArray("java.lang.String", ["Calibri", "Arial"])); + var linkcont = java.newInstanceSync("LinkAllFontsHtmlController", fontNameExcludeList, "C:/Windows/Fonts/"); + var htmlOptionsEmbed = new aspose.slides.HtmlOptions(); + htmlOptionsEmbed.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(linkcont)); + pres.save("pres.html", aspose.slides.SaveFormat.Html, htmlOptionsEmbed); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +您需要在 Java 中实现 LinkAllFontsHtmlController,编译后添加到模块位置 \aspose.slides.via.java\lib\。 + +以下 Java 代码展示了 `LinkAllFontsHtmlController` 的实现方式: + +```java +public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController +{ + private final String m_basePath; + + public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath) + { + super(fontNameExcludeList); + m_basePath = basePath; + } + + public void writeFont + ( + IHtmlGenerator generator, + IFontData originalFont, + IFontData substitutedFont, + String fontStyle, + String fontWeight, + byte[] fontData) + { + try { + String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName(); + String path = fontName + ".woff"; // 可能需要进行路径清理 + Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE); + + generator.addHtml(""); + } catch (IOException ex) { + ex.printStackTrace(); + } + } +} +``` + + +## **将 PowerPoint 转换为响应式 HTML** + +以下 JavaScript 代码展示了如何将 PowerPoint 演示文稿转换为响应式 HTML: + +```javascript +var pres = new aspose.slides.Presentation("SomePresentation.pptx"); +try { + var saveOptions = new aspose.slides.HtmlOptions(); + saveOptions.setSvgResponsiveLayout(true); + pres.save("SomePresentation-out.html", aspose.slides.SaveFormat.Html, saveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将媒体文件导出为 HTML** + +使用 Aspose.Slides for Node.js via Java,您可以按如下方式导出媒体文件: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 获取该幻灯片的引用。 +1. 向幻灯片添加视频。 +1. 将演示文稿写为 HTML 文件。 + +以下 JavaScript 代码展示了如何向演示文稿添加视频,然后保存为 HTML: + +```javascript +// 加载演示文稿 +var pres = new aspose.slides.Presentation(); +try { + var path = "./out/"; + final var fileName = "ExportMediaFiles_out.html"; + final var baseUri = "http://www.example.com/"; + var videoData = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "my_video.avi")); + var video = pres.getVideos().addVideo(videoData); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + var controller = new aspose.slides.VideoPlayerHtmlController(path, fileName, baseUri); + // 设置 HTML 选项 + var htmlOptions = new aspose.slides.HtmlOptions(controller); + var svgOptions = new aspose.slides.SVGOptions(controller); + htmlOptions.setHtmlFormatter(aspose.slides.HtmlFormatter.createCustomFormatter(controller)); + htmlOptions.setSlideImageFormat(aspose.slides.SlideImageFormat.svg(svgOptions)); + // 保存文件 + pres.save(fileName, aspose.slides.SaveFormat.Html, htmlOptions); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**在将多个演示文稿转换为 HTML 时,Aspose.Slides 的性能如何?** +性能取决于演示文稿的大小和复杂度。Aspose.Slides 对批量操作具有高效且可扩展的性能。为了在转换大量演示文稿时获得最佳性能,建议尽可能使用多线程或并行处理。 + +**Aspose.Slides 是否支持将超链接导出为 HTML?** +是的,Aspose.Slides 完全支持将嵌入的超链接导出为 HTML。转换为 HTML 格式时,超链接会自动保留并保持可点击。 + +**在将演示文稿转换为 HTML 时,是否对幻灯片数量有限制?** +使用 Aspose.Slides 时对幻灯片数量没有限制,您可以转换任意规模的演示文稿。但是,对于包含大量幻灯片的演示文稿,性能可能取决于服务器或系统的可用资源。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md new file mode 100644 index 0000000000..5035473111 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-jpg/_index.md @@ -0,0 +1,142 @@ +--- +title: 将 PowerPoint 转换为 JPG +type: docs +weight: 60 +url: /zh/nodejs-java/convert-powerpoint-to-jpg/ +keywords: "将 PowerPoint 转换为 JPG, PPTX 转 JPEG, PPT 转 JPEG" +description: "将 PowerPoint 转换为 JPG:PPT 转 JPG,PPTX 转 JPG,使用 JavaScript" +--- + +## **关于 PowerPoint 转 JPG 转换** +使用[**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/),您可以将 PowerPoint PPT 或 PPTX 演示文稿转换为 JPG 图像。也可以将 PPT/PPTX 转换为 JPEG、PNG 或 SVG。借助这些功能,您可以轻松实现自己的演示文稿查看器,创建每个幻灯片的缩略图。如果您想保护演示文稿幻灯片免受复制,或以只读模式演示演示文稿,这将非常有用。Aspose.Slides 允许将整个演示文稿或特定幻灯片转换为图像格式。 + +{{% alert color="primary" %}} +要了解 Aspose.Slides 如何将 PowerPoint 转换为 JPG 图像,您可以尝试以下免费在线转换器:PowerPoint [PPTX to JPG](https://products.aspose.app/slides/conversion/pptx-to-jpg) 和 [PPT to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg)。 +{{% /alert %}} + +![todo:image_alt_text](ppt-to-jpg.png) + +## **将 PowerPoint PPT/PPTX 转换为 JPG** +以下是将 PPT/PPTX 转换为 JPG 的步骤: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类型的实例。 +2. 从 [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) 集合中获取 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) 类型的幻灯片对象。 +3. 为每个幻灯片创建缩略图,然后将其转换为 JPG。[**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) 方法用于获取幻灯片的缩略图,它返回 [Imagess](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Images) 对象。需要在所需的 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) 类型的幻灯片上调用 [getImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-aspose.slides.IRenderingOptions-float-float-) 方法,并将缩放比例传入该方法以生成缩略图。 +4. 获取幻灯片缩略图后,调用缩略图对象的 [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) 方法。将生成的文件名和图像格式传入该方法。 + +{{% alert color="primary" %}} + +**注意**:PPT/PPTX 转 JPG 的转换方式与 Aspose.Slides API 中转换为其他类型的方式不同。对于其他类型,通常使用 [**Presentation.Save(String fname, int format, ISaveOptions options)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) 方法,但此处需要使用 [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) 方法。 + +{{% /alert %}} +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // 创建全尺寸图像 + var slideImage = sld.getImage(1.0, 1.0); + // 将图像以 JPEG 格式保存到磁盘 + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **使用自定义尺寸将 PowerPoint PPT/PPTX 转换为 JPG** +要更改生成的缩略图和 JPG 图像的尺寸,您可以通过将 *ScaleX* 和 *ScaleY* 值传递给 [**Slide.getImage(float scaleX, float scaleY)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide#getImage-float-float-) 方法来设置。 +```javascript +var pres = new aspose.slides.Presentation("PowerPoint-Presentation.pptx"); +try { + // 定义尺寸 + var desiredX = 1200; + var desiredY = 800; + // 获取 X 和 Y 的缩放值 + var ScaleX = 1.0 / pres.getSlideSize().getSize().getWidth() * desiredX; + var ScaleY = 1.0 / pres.getSlideSize().getSize().getHeight() * desiredY; + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + // 创建全尺寸图像 + var slideImage = sld.getImage(ScaleX, ScaleY); + // 将图像以 JPEG 格式保存到磁盘 + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.jpg", sld.getSlideNumber()), aspose.slides.ImageFormat.Jpeg); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在将演示文稿保存为图像时渲染批注** +Aspose.Slides for Node.js via Java 提供了一项功能,可在将演示文稿的幻灯片转换为图像时渲染批注。以下 JavaScript 代码演示了该操作: +```javascript +var pres = new aspose.slides.Presentation("presentation.pptx"); +try { + var notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomTruncated); + var opts = new aspose.slides.RenderingOptions(); + opts.setSlidesLayoutOptions(notesOptions); + for (let i = 0; i < pres.getSlides().size(); i++) { + let sld = pres.getSlides().get_Item(i); + var slideImage = sld.getImage(opts, java.newInstanceSync("java.awt.Dimension", 740, 960)); + try { + slideImage.save(java.callStaticMethodSync("java.lang.String", "format", "Slide_%d.png", sld.getSlideNumber())); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +Aspose 提供了一个 [免费拼贴 Web 应用](https://products.aspose.app/slides/collage)。使用此在线服务,您可以合并 [JPG 到 JPG](https://products.aspose.app/slides/collage/jpg) 或 PNG 到 PNG 图像,创建 [照片网格](https://products.aspose.app/slides/collage/photo-grid) 等。 + +使用本文所述的相同原理,您可以将图像从一种格式转换为另一种格式。更多信息请参阅以下页面:转换 [image to JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/);转换 [JPG to image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/);转换 [JPG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/),转换 [PNG to JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/);转换 [PNG to SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/),转换 [SVG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/)。 + +{{% /alert %}} + +## **另请参见** + +查看将 PPT/PPTX 转换为图像的其他选项,例如: + +- [PPT/PPTX 转 SVG 转换](/slides/zh/nodejs-java/render-a-slide-as-an-svg-image/)。 + +## **常见问题** + +**此方法是否支持批量转换?** + +是的,Aspose.Slides 允许在一次操作中批量将多个幻灯片转换为 JPG。 + +**转换是否支持 SmartArt、图表和其他复杂对象?** + +是的,Aspose.Slides 渲染所有内容,包括 SmartArt、图表、表格、形状等。不过,相比 PowerPoint,渲染精度可能会有轻微差异,尤其是在使用自定义或缺失的字体时。 + +**处理的幻灯片数量是否有限制?** + +Aspose.Slides 本身对可处理的幻灯片数量没有严格限制。但在处理大型演示文稿或高分辨率图像时,可能会遇到内存不足错误。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md new file mode 100644 index 0000000000..72b7d2428f --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-markdown/_index.md @@ -0,0 +1,120 @@ +--- +title: 在 JavaScript 中将 PowerPoint 转换为 Markdown +type: docs +weight: 140 +url: /zh/nodejs-java/convert-powerpoint-to-markdown/ +keywords: "将 PowerPoint 转换为 Markdown, 将 ppt 转换为 md, PowerPoint, PPT, PPTX, 演示文稿, Markdown, Java, Aspose.Slides for Node.js via Java" +description: "在 JavaScript 中将 PowerPoint 转换为 Markdown" +--- + +{{% alert color="info" %}} + +已在 [Aspose.Slides 23.7](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-23-7-release-notes/) 中实现对 PowerPoint 到 markdown 转换的支持。 + +{{% /alert %}} + +{{% alert color="warning" %}} + +PowerPoint 到 markdown 导出默认 **不包含图像**。如果您想导出包含图像的 PowerPoint 文档,需要调用 `markdownSaveOptions.setExportType(MarkdownExportType.Visual)`,并设置 `BasePath`,以指定 markdown 文档中引用的图像保存位置。 + +{{% /alert %}} + +## **将 PowerPoint 转换为 Markdown** + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例以表示演示文稿对象。 +2. 使用 [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-aspose.slides.IXamlOptions-) 方法将对象保存为 markdown 文件。 + +下面的 JavaScript 代码演示了如何将 PowerPoint 转换为 markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.md", aspose.slides.SaveFormat.Md); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 PowerPoint 转换为 Markdown 变体** + +Aspose.Slides 允许您将 PowerPoint 转换为 markdown(包含基本语法)、CommonMark、GitHub 风格的 markdown、Trello、XWiki、GitLab 以及其他 17 种 markdown 变体。 + +下面的 JavaScript 代码演示了如何将 PowerPoint 转换为 CommonMark: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.CommonMark); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +这 23 种受支持的 markdown 变体已在来自 [MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) 类的 [Flavor 枚举](https://reference.aspose.com/slides/nodejs-java/aspose.slides/flavor/) 中列出。 + +## **将包含图像的演示文稿转换为 Markdown** + +[MarkdownSaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownsaveoptions/) 类提供属性和枚举,可让您为生成的 markdown 文件使用特定的选项或设置。例如,您可以将 [MarkdownExportType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markdownexporttype/) 枚举设置为决定图像渲染或处理方式的值:`Sequential`、`TextOnly`、`Visual`。 + +### **顺序转换图像** + +如果您希望图像在生成的 markdown 中依次单独出现,需要选择 sequential 选项。下面的 JavaScript 代码演示了如何将包含图像的演示文稿转换为 markdown: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setShowHiddenSlides(true); + markdownSaveOptions.setShowSlideNumber(true); + markdownSaveOptions.setFlavor(aspose.slides.Flavor.Github); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Sequential); + markdownSaveOptions.setNewLineType(aspose.slides.NewLineType.Windows); + pres.save("doc.md", java.newArray("int", [1, 2, 3, 4, 5, 6, 7, 8, 9]), aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **视觉转换图像** + +如果您希望图像在生成的 markdown 中一起出现,需要选择 visual 选项。在这种情况下,图像将保存到应用程序的当前目录(并在 markdown 文档中构建相对路径),您也可以指定首选的路径和文件夹名称。 + +下面的 JavaScript 代码演示了该操作: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + final var outPath = "c:/documents"; + var markdownSaveOptions = new aspose.slides.MarkdownSaveOptions(); + markdownSaveOptions.setExportType(aspose.slides.MarkdownExportType.Visual); + markdownSaveOptions.setImagesSaveFolderName("md-images"); + markdownSaveOptions.setBasePath(outPath); + pres.save("pres.md", aspose.slides.SaveFormat.Md, markdownSaveOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**超链接在导出为 Markdown 时会保留吗?** + +是的。文本[超链接](/slides/zh/nodejs-java/manage-hyperlinks/)会保留为标准的 Markdown 链接。幻灯片[切换](/slides/zh/nodejs-java/slide-transition/)和[动画](/slides/zh/nodejs-java/powerpoint-animation/)不会被转换。 + +**我可以通过多线程运行来加速转换吗?** + +可以对文件进行并行处理,但不要在多个线程之间[共享](/slides/zh/nodejs-java/multithreading/)同一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 实例。对每个文件使用单独的实例/进程以避免竞争。 + +**图像会怎样——保存在哪里,路径是相对的吗?** + +[图像](/slides/zh/nodejs-java/image/)会导出到专用文件夹,Markdown 文件默认使用相对路径引用它们。您可以配置基础输出路径和资源文件夹名称,以保持可预测的仓库结构。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md new file mode 100644 index 0000000000..8d9b7163f7 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-pdf/_index.md @@ -0,0 +1,331 @@ +--- +title: 将 PPT 和 PPTX 在 JavaScript 中转换为 PDF(包含高级功能) +linktitle: 将 PPT 和 PPTX 转换为 PDF +type: docs +weight: 40 +url: /zh/nodejs-java/convert-powerpoint-to-pdf/ +keywords: +- 转换 PowerPoint +- 转换演示文稿 +- PowerPoint 转 PDF +- 演示文稿转 PDF +- PPT 转 PDF +- 将 PPT 转换为 PDF +- PPTX 转 PDF +- 将 PPTX 转换为 PDF +- ODP 转 PDF +- 将 ODP 转换为 PDF +- 将 PowerPoint 保存为 PDF +- PDF/A1a +- PDF/A1b +- PDF/UA +- JavaScript +- Node.js +- Aspose.Slides for Node.js via Java +description: "了解如何使用 Aspose.Slides 在 JavaScript 中将 PPT、PPTX 和 ODP 演示文稿转换为 PDF。实现高级功能,如密码保护、合规标准和自定义选项,以获取高质量、可访问的 PDF 文档。" +--- + +## **概述** + +在 JavaScript 中将 PowerPoint 和 OpenDocument 演示文稿(PPT、PPTX、ODP 等)转换为 PDF 格式具有多种优势,包括在不同设备之间的兼容性以及保留演示文稿的布局和格式。本指南演示了如何将演示文稿转换为 PDF 文档、使用各种选项控制图像质量、包含隐藏幻灯片、对 PDF 文件进行密码保护、检测字体替换、选择特定幻灯片进行转换,以及对输出文档应用合规性标准。 + +## **PowerPoint 转 PDF 转换** + +使用 Aspose.Slides,您可以将以下格式的演示文稿转换为 PDF: + +* **PPT** +* **PPTX** +* **ODP** + +要将演示文稿转换为 PDF,请将文件名作为参数传递给 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类,然后使用 `save` 方法将演示文稿保存为 PDF。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类公开的 `save` 方法通常用于将演示文稿转换为 PDF。 + +{{% alert title="NOTE" color="warning" %}} + +Aspose.Slides for Node.js via Java 会将其 API 信息和版本号插入输出文档。例如,在将演示文稿转换为 PDF 时,Aspose.Slides 会在 Application 字段填入 "*Aspose.Slides*",在 PDF Producer 字段填入类似 "*Aspose.Slides v XX.XX*" 的值。**注意**,您无法指示 Aspose.Slides 更改或删除这些信息。 + +{{% /alert %}} + +Aspose.Slides 允许您转换: + +* 整个演示文稿为 PDF +* 演示文稿的特定幻灯片为 PDF + +Aspose.Slides 将演示文稿导出为 PDF,确保生成的 PDF 与原始演示文稿高度匹配。转换过程中准确呈现的元素和属性包括: + +* 图像 +* 文本框和形状 +* 文本格式 +* 段落格式 +* 超链接 +* 页眉和页脚 +* 项目符号 +* 表格 + +## **将 PowerPoint 转换为 PDF** + +标准的 PowerPoint 到 PDF 转换过程使用默认选项。在这种情况下,Aspose.Slides 会尝试使用最高质量水平的最佳设置将提供的演示文稿转换为 PDF。 + +以下代码演示了如何将演示文稿(PPT、PPTX、ODP 等)转换为 PDF: +```js +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("PowerPoint.ppt"); +try { + // 将演示文稿保存为 PDF。 + presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +{{% alert color="primary" %}} + +Aspose 提供了免费的在线 [**PowerPoint 转 PDF 转换器**](https://products.aspose.app/slides/conversion/ppt-to-pdf),演示了演示文稿到 PDF 的转换过程。您可以使用此转换器进行测试,以实时实现此处描述的步骤。 + +{{% /alert %}} + +## **使用选项将 PowerPoint 转换为 PDF** + +Aspose.Slides 提供了自定义选项——位于 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfoptions/) 类下的属性——允许您自定义生成的 PDF、使用密码锁定 PDF,或指定转换过程的行为。 + +### **使用自定义选项将 PowerPoint 转换为 PDF** + +通过自定义转换选项,您可以定义光栅图像的首选质量设置、指定元文件的处理方式、设置文本的压缩级别、配置图像的 DPI 等。 + +下面的代码示例演示了如何使用多个自定义选项将 PowerPoint 演示文稿转换为 PDF: +```js +// 实例化 PdfOptions 类。 +let pdfOptions = new aspose.slides.PdfOptions(); + +// 设置 JPG 图像的质量。 +pdfOptions.setJpegQuality(java.newByte(90)); + +// 设置图像的 DPI。 +pdfOptions.setSufficientResolution(300); + +// 设置元文件的行为。 +pdfOptions.setSaveMetafilesAsPng(true); + +// 设置文本内容的压缩级别。 +pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate); + +// 定义 PDF 合规模式。 +pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15); + +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // 将演示文稿保存为 PDF 文档。 + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **使用隐藏幻灯片将 PowerPoint 转换为 PDF** + +如果演示文稿包含隐藏幻灯片,您可以使用 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) 类的 [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions#setShowHiddenSlides) 方法将隐藏幻灯片作为页面包含在生成的 PDF 中。 + +以下 JavaScript 代码演示了如何在转换为 PDF 时包含隐藏幻灯片: +```js +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // 实例化 PdfOptions 类。 + let pdfOptions = new aspose.slides.PdfOptions(); + + // 添加隐藏幻灯片。 + pdfOptions.setShowHiddenSlides(true); + + // 将演示文稿保存为 PDF。 + presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **将 PowerPoint 转换为受密码保护的 PDF** + +以下 JavaScript 代码演示了如何使用 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) 类的保护参数将 PowerPoint 演示文稿转换为受密码保护的 PDF: +```js +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // 实例化 PdfOptions 类。 + let pdfOptions = new aspose.slides.PdfOptions(); + + // 设置 PDF 密码和访问权限。 + pdfOptions.setPassword("password"); + pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint); + + // 将演示文稿保存为 PDF。 + presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +### **检测字体替换** + +Aspose.Slides 在 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) 类下提供了 [setWarningCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setWarningCallback) 方法,使您能够在演示文稿转 PDF 的过程中检测字体替换。 + +以下 JavaScript 代码演示了如何检测字体替换: +```js +// 在 PDF 选项中设置警告回调。 +let pdfOptions = new aspose.slides.PdfOptions(); +pdfOptions.setWarningCallback(FontSubstitutionHandler); + +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("sample.pptx"); + +// 将演示文稿保存为 PDF。 +presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +presentation.dispose(); +``` + +```js +const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", { + warning: function (warning) { + if (warning.getWarningType() === aspose.slides.WarningType.DataLoss) { + console.warn("Font substitution warning: " + warning.getDescription()); + } + return aspose.slides.ReturnAction.Continue; + } +}); +``` + + +{{% alert color="primary" %}} + +有关在渲染过程中接收字体替换回调的更多信息,请参阅 [获取字体替换警告回调](/slides/zh/nodejs-java/getting-warning-callbacks-for-fonts-substitution-in-aspose-slides/)。 + +有关字体替换的更多信息,请参阅 [字体替换](/slides/zh/nodejs-java/font-substitution/) 文章。 + +{{% /alert %}} + +## **将 PowerPoint 中选定的幻灯片转换为 PDF** + +以下 JavaScript 代码演示了如何仅将 PowerPoint 演示文稿的特定幻灯片转换为 PDF: +```js +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("PowerPoint.pptx"); +try { + // 设置幻灯片编号数组。 + let slides = java.newArray("int", [1, 3]); + + // 将演示文稿保存为 PDF。 + presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf); +} finally { + presentation.dispose(); +} +``` + + +## **使用自定义幻灯片尺寸将 PowerPoint 转换为 PDF** + +以下 JavaScript 代码演示了如何使用指定的幻灯片尺寸将 PowerPoint 演示文稿转换为 PDF: +```js +const slideWidth = 612; +const slideHeight = 792; + +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); + +// 创建一个具有调整后幻灯片尺寸的新演示文稿。 +let resizedPresentation = new aspose.slides.Presentation(); + +try { + // 设置自定义幻灯片尺寸。 + resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit); + + // 从原始演示文稿克隆第一张幻灯片。 + let slide = presentation.getSlides().get_Item(0); + resizedPresentation.getSlides().insertClone(0, slide); + + // 将调整大小的演示文稿保存为带有备注的 PDF。 + resizedPresentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + resizedPresentation.dispose(); + presentation.dispose(); +} +``` + + +## **在备注幻灯片视图中将 PowerPoint 转换为 PDF** + +以下 JavaScript 代码演示了如何将包含备注的 PowerPoint 演示文稿转换为 PDF: +```js +// 实例化表示 PowerPoint 或 OpenDocument 文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("SelectedSlides.pptx"); +try { + // 配置带有备注布局的 PDF 选项。 + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setSlidesLayoutOptions(notesOptions); + + // 将演示文稿保存为带有备注的 PDF。 + presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +## **PDF 的可访问性和合规标准** + +Aspose.Slides 允许您使用符合 [Web 内容可访问性指南 (**WCAG**)](https://www.w3.org/TR/WCAG-TECHS/pdf.html) 的转换过程。您可以使用以下任意合规标准将 PowerPoint 文档导出为 PDF:**PDF/A1a**、**PDF/A1b** 和 **PDF/UA**。 + +以下 JavaScript 代码演示了基于不同合规标准生成多个 PDF 的 PowerPoint 到 PDF 转换过程: +```js +let presentation = new aspose.slides.Presentation("pres.pptx"); +try { + let pdfOptions = new aspose.slides.PdfOptions(); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a); + presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b); + presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); + pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa); + presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Note" color="warning" %}} + +Aspose.Slides 支持 PDF 转换操作,允许您将 PDF 文件转换为流行的文件格式。您可以执行 [PDF 转 HTML](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-html/)、[PDF 转 JPG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-jpg/)、以及 [PDF 转 PNG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-png/) 转换。其他针对特定格式的 PDF 转换操作——如 [PDF 转 SVG](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-svg/)、[PDF 转 TIFF](https://products.aspose.com/slides/nodejs-java/conversion/pdf-to-tiff/)——也受到支持。 + +{{% /alert %}} + +## **常见问题** + +**我可以批量将多个 PowerPoint 文件转换为 PDF 吗?** + +是的,Aspose.Slides 支持将多个 PPT 或 PPTX 文件批量转换为 PDF。您可以遍历文件并以编程方式应用转换过程。 + +**是否可以对转换后的 PDF 进行密码保护?** + +完全可以。使用 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) 类在转换过程中设置密码并定义访问权限。 + +**如何在 PDF 中包含隐藏幻灯片?** + +在 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) 类中使用 `setShowHiddenSlides` 方法即可在生成的 PDF 中包含隐藏幻灯片。 + +**Aspose.Slides 能否在 PDF 中保持高图像质量?** + +可以。您可以使用诸如 `setJpegQuality` 和 `setSufficientResolution` 等方法在 [PdfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PdfOptions) 中控制图像质量,以确保 PDF 中的图像保持高质量。 + +**Aspose.Slides 是否支持 PDF/A 合规标准?** + +是的,Aspose.Slides 允许您导出符合多种标准的 PDF,包括 PDF/A1a、PDF/A1b 和 PDF/UA,确保文档满足可访问性和归档要求。 + +## **其他资源** + +- [Aspose.Slides for Node.js via Java 文档](/slides/zh/nodejs-java/) +- [Aspose.Slides for Node.js via Java API 参考]((https://reference.aspose.com/slides/nodejs-java/)) +- [Aspose 免费在线转换器](https://products.aspose.app/slides/conversion) \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md new file mode 100644 index 0000000000..d4ee4757ae --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-png/_index.md @@ -0,0 +1,119 @@ +--- +title: 将 PowerPoint 转换为 PNG +type: docs +weight: 30 +url: /zh/nodejs-java/convert-powerpoint-to-png/ +keywords: PowerPoint 转 PNG, PPT 转 PNG, PPTX 转 PNG, java, Aspose.Slides for Node.js via Java +description: 将 PowerPoint 演示文稿转换为 PNG +--- + +## **关于 PowerPoint 到 PNG 转换** + +PNG(Portable Network Graphics)格式的流行程度不如 JPEG(Joint Photographic Experts Group),但它仍然非常流行。 + +**使用场景:** 当您有复杂的图像且大小不是问题时,PNG 比 JPEG 更适合作为图像格式。 + +{{% alert title="Tip" color="primary" %}} 您可能想了解 Aspose 免费的 **PowerPoint 转 PNG 转换器**: [PPTX to PNG](https://products.aspose.app/slides/conversion/pptx-to-png) 和 [PPT to PNG](https://products.aspose.app/slides/conversion/ppt-to-png)。它们是本页所述过程的实时实现。 {{% /alert %}} + +## **将 PowerPoint 转换为 PNG** + +按照以下步骤操作: + +1. 实例化 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类。 +2. 通过 [Presentation.getSlides()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) 方法获取返回的集合中的幻灯片对象,属于 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) 类。 +3. 使用 [Slide.getImage()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide) 方法获取每张幻灯片的缩略图。 +4. 使用 [**Image.save(String formatName, int imageFormat)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Image#save(String formatName, int imageFormat)) 方法将幻灯片缩略图保存为 PNG 格式。 + +以下 JavaScript 代码演示如何将 PowerPoint 演示文稿转换为 PNG: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **使用自定义尺寸将 PowerPoint 转换为 PNG** + +如果您想获取特定比例的 PNG 文件,可以设置 `desiredX` 和 `desiredY` 的值,以确定生成的缩略图的尺寸。 + +以下 JavaScript 代码演示上述操作: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var scaleX = 2.0; + var scaleY = 2.0; + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(scaleX, scaleY); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **使用自定义大小将 PowerPoint 转换为 PNG** + +如果您想获取特定尺寸的 PNG 文件,可以为 `ImageSize` 传递所需的 `width` 和 `height` 参数。 + +以下代码展示了在指定图像大小的情况下,将 PowerPoint 转换为 PNG 的方法: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var size = java.newInstanceSync("java.awt.Dimension", 960, 720); + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var slideImage = slide.getImage(size); + try { + slideImage.save(("image_java_" + index) + ".png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**如何仅导出特定形状(例如图表或图片),而不是整张幻灯片?** + +Aspose.Slides 支持 [为单个形状生成缩略图](/slides/zh/nodejs-java/create-shape-thumbnails/);您可以将形状渲染为 PNG 图像。 + +**服务器上是否支持并行转换?** + +可以,但请 [不要共享](/slides/zh/nodejs-java/multithreading/) 单个演示文稿实例跨线程。请为每个线程或进程使用单独的实例。 + +**试用版在导出 PNG 时有哪些限制?** + +评估模式会在输出图像上添加水印,并在加装许可证之前执行 [其他限制](/slides/zh/nodejs-java/licensing/)。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md new file mode 100644 index 0000000000..748ef0ffdb --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-swf-flash/_index.md @@ -0,0 +1,44 @@ +--- +title: 将 PowerPoint 转换为 SWF Flash +type: docs +weight: 80 +url: /zh/nodejs-java/convert-powerpoint-to-swf-flash/ +keywords: "PPT, PPTX 转换为 SWF" +description: "在 JavaScript 中将 PowerPoint PPT、PPTX 转换为 SWF" +--- + +## **将 PPT(X) 转换为 SWF** +The [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) method exposed by [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) class can be used to convert the whole presentation into **SWF** document. The following example shows how to convert a presentation into **SWF** document by using options provided by [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) class. You can also include comments in generated SWF using [**SWFOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SwfOptions) class and [**NotesCommentsLayoutingOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/NotesCommentsLayoutingOptions) class. +```javascript +var pres = new aspose.slides.Presentation("Sample.pptx"); +try { + var swfOptions = new aspose.slides.SwfOptions(); + swfOptions.setViewerIncluded(false); + swfOptions.getNotesCommentsLayouting().setNotesPosition(aspose.slides.NotesPositions.BottomFull); + // 保存演示文稿 + pres.save("Sample.swf", aspose.slides.SaveFormat.Swf, swfOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以在 SWF 中包含隐藏的幻灯片吗?** + +是的。使用 [setShowHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setshowhiddenslides/) 方法在 [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) 中。默认情况下,隐藏的幻灯片不会被导出。 + +**我如何控制压缩以及最终的 SWF 大小?** + +使用 [setCompressed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setcompressed/) 方法和 [setJpegQuality](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setjpegquality/) 来平衡文件大小和图像保真度。 + +**“setViewerIncluded”的作用是什么,何时应使用它?** + +[setViewerIncluded](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/setviewerincluded/) 添加嵌入式播放器 UI(导航控件、面板、搜索)。如果您计划使用自己的播放器或需要没有 UI 的裸 SWF 框架,请使用它。 + +**如果导出机器缺少源字体会怎样?** + +Aspose.Slides 将使用您通过 [setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) 在 [SwfOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/swfoptions/) 中指定的字体进行替换,以避免意外的回退。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md new file mode 100644 index 0000000000..36c225cd30 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff-with-notes/_index.md @@ -0,0 +1,91 @@ +--- +title: 将 PowerPoint 转换为带备注的 TIFF(JavaScript) +linktitle: PowerPoint 转 TIFF(带备注) +type: docs +weight: 100 +url: /zh/nodejs-java/convert-powerpoint-to-tiff-with-notes/ +keywords: +- 将 PowerPoint 转换为 TIFF +- 将演示文稿转换为 TIFF +- 将幻灯片转换为 TIFF +- 将 PPT 转换为 TIFF +- 将 PPTX 转换为 TIFF +- 将 ODP 转换为 TIFF +- PowerPoint 转 TIFF +- 演示文稿 转 TIFF +- 幻灯片 转 TIFF +- PPT 转 TIFF +- PPTX 转 TIFF +- ODP 转 TIFF +- 带备注的 PowerPoint +- 带备注的演示文稿 +- 带备注的幻灯片 +- 带备注的 PPT +- 带备注的 PPTX +- 带备注的 ODP +- 带备注的 TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "使用 Aspose.Slides for Node.js via Java 将 PowerPoint 和 OpenDocument 演示文稿转换为带备注的 TIFF。了解如何高效地导出演讲者备注的幻灯片。" +--- + +## **概述** + +Aspose.Slides for Node.js via Java 提供了一种简便的解决方案,可将带备注的 PowerPoint 和 OpenDocument 演示文稿(PPT、PPTX 和 ODP)转换为 TIFF 格式。该格式广泛用于高质量图像存储、打印和文档归档。使用 Aspose.Slides,您不仅可以导出包含演讲者备注的完整演示文稿,还可以在备注幻灯片视图中生成幻灯片缩略图。转换过程简单高效,利用 `save` 方法的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类将整个演示文稿转换为一系列 TIFF 图像,同时保留备注和布局。 + +## **将演示文稿转换为带备注的 TIFF** + +使用 Aspose.Slides for Node.js via Java 将 PowerPoint 或 OpenDocument 演示文稿保存为带备注的 TIFF 包括以下步骤: + +1. 实例化 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类:加载 PowerPoint 或 OpenDocument 文件。 +1. 配置输出布局选项:使用 [NotesCommentsLayoutingOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/notescommentslayoutingoptions/) 类指定备注和注释的显示方式。 +1. 将演示文稿保存为 TIFF:将配置好的选项传递给 [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save) 方法。 + +假设我们有一个名为 "speaker_notes.pptx" 的文件,其中包含以下幻灯片: + +![带有演讲者备注的演示幻灯片](slide_with_notes.png) + +下面的代码片段演示了如何使用 [setSlidesLayoutOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) 方法在备注幻灯片视图中将演示文稿转换为 TIFF 图像。 +```js +// 实例化表示演示文稿文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation("speaker_notes.pptx"); +try { + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); // 在幻灯片下方显示备注。 + + // 配置带备注布局的 TIFF 选项。 + let tiffOptions = new aspose.slides.TiffOptions(); + tiffOptions.setDpiX(300); + tiffOptions.setDpiY(300); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // 将演示文稿保存为带演讲者备注的 TIFF。 + presentation.save("TIFF_with_notes.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +结果: + +![带有演讲者备注的 TIFF 图像](TIFF_with_notes.png) + +{{% alert title="Tip" color="primary" %}} +查看 Aspose [免费 PowerPoint 转海报转换器](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online)。 +{{% /alert %}} + +## **常见问题** + +**我可以控制生成的 TIFF 中备注区域的位置吗?** + +是的。使用 [notes layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setSlidesLayoutOptions) 可在 `None`、`BottomTruncated` 或 `BottomFull` 等选项之间选择,分别对应隐藏备注、将其压缩到单页,或允许其分页显示。 + +**如何在不明显降低质量的情况下减小带备注的 TIFF 文件大小?** + +选择一种 [efficient compression](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setcompressiontype/)(例如 `LZW` 或 `RLE`),设置合适的 DPI,并且在可接受的情况下使用更低的 [pixel format](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setpixelformat/)(如 8 bpp 或单色的 1 bpp)。略微降低 [image dimensions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/setimagesize/) 也有助于减小文件大小,同时不会明显影响可读性。 + +**如果系统缺少原始字体,备注中的字体会影响结果吗?** + +是的。缺失的字体会触发 [substitution](/slides/zh/nodejs-java/font-selection-sequence/),可能导致文本度量和外观变化。为避免此问题,请 [supply the required fonts](/slides/zh/nodejs-java/custom-font/) 或设置默认的 [fallback font](/slides/zh/nodejs-java/fallback-font/),以使用预期的字体。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md new file mode 100644 index 0000000000..c2f670569b --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-tiff/_index.md @@ -0,0 +1,164 @@ +--- +title: 转换 PowerPoint 演示文稿为 TIFF(使用 JavaScript) +titlelink: PowerPoint 转 TIFF +type: docs +weight: 90 +url: /zh/nodejs-java/convert-powerpoint-to-tiff/ +keywords: +- 转换 PowerPoint +- 转换 OpenDocument +- 转换 演示文稿 +- 转换 幻灯片 +- PowerPoint 转 TIFF +- OpenDocument 转 TIFF +- 演示文稿 转 TIFF +- 幻灯片 转 TIFF +- PPT 转 TIFF +- PPTX 转 TIFF +- ODP 转 TIFF +- Node.js +- JavaScript +- Aspose.Slides +description: "了解如何使用 Aspose.Slides for Node.js(通过 Java)轻松将 PowerPoint(PPT、PPTX)和 OpenDocument(ODP)演示文稿转换为高质量的 TIFF 图像。提供包含代码示例的分步指南。" +--- + +## **概述** + +TIFF(**Tagged Image File Format**)是一种广泛使用的无损光栅图像格式,以其卓越的质量和对图形的细致保真而著称。设计师、摄影师和桌面出版人员常常选择 TIFF 来保持图像中的图层、颜色准确性和原始设置。 + +使用 Aspose.Slides,您可以轻松地将 PowerPoint 幻灯片(PPT、PPTX)和 OpenDocument 幻灯片(ODP)直接转换为高质量的 TIFF 图像,确保您的演示文稿保持最高的视觉保真度。 + +## **将演示文稿转换为 TIFF** + +使用由 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类提供的 [save](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#save-java.lang.String-int-) 方法,您可以快速将整个 PowerPoint 演示文稿转换为 TIFF。生成的 TIFF 图像对应默认的幻灯片尺寸。 + +下面的 JavaScript 代码演示了如何将 PowerPoint 演示文稿转换为 TIFF: +```js +// 实例化表示演示文稿文件 (PPT, PPTX, ODP, 等) 的 Presentation 类。 +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + // 将演示文稿保存为 TIFF。 + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff); +} finally { + presentation.dispose(); +} +``` + + +## **将演示文稿转换为黑白 TIFF** + +在 [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) 类中,方法 [setBwConversionMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setBwConversionMode-int-) 允许您指定在将彩色幻灯片或图像转换为黑白 TIFF 时使用的算法。请注意,仅当 [setCompressionType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setCompressionType-int-) 方法设置为 `CCITT4` 或 `CCITT3` 时,此设置才会生效。 + +假设我们有一个 “sample.pptx” 文件,包含以下幻灯片: + +![演示文稿幻灯片](slide_black_and_white.png) + +下面的 JavaScript 代码演示了如何将彩色幻灯片转换为黑白 TIFF: +```js +let tiffOptions = new aspose.slides.TiffOptions(); +tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.CCITT4); +tiffOptions.setBwConversionMode(aspose.slides.BlackWhiteConversionMode.Dithering); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +try { + presentation.save("output.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +结果: + +![黑白 TIFF](TIFF_black_and_white.png) + +## **将演示文稿转换为自定义尺寸的 TIFF** + +如果您需要具有特定尺寸的 TIFF 图像,可以使用 [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) 中提供的方法设置所需的数值。例如,方法 [setImageSize](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setImageSize) 允许您定义生成图像的尺寸。 + +下面的 JavaScript 代码演示了如何将 PowerPoint 演示文稿转换为具有自定义尺寸的 TIFF 图像: +```js +// 实例化表示演示文稿文件 (PPT, PPTX, ODP, 等) 的 Presentation 类。 +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + // 设置压缩类型。 + tiffOptions.setCompressionType(aspose.slides.TiffCompressionTypes.Default); + /* + 压缩类型: + Default - 指定默认的压缩方案 (LZW)。 + None - 指定不进行压缩。 + CCITT3 + CCITT4 + LZW + RLE + */ + + // 位深取决于压缩类型,无法手动设置。 + + // 设置图像 DPI。 + tiffOptions.setDpiX(200); + tiffOptions.setDpiY(200); + + // 设置图像尺寸。 + tiffOptions.setImageSize(java.newInstanceSync("java.awt.Dimension", 1728, 1078)); + + let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions(); + notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull); + tiffOptions.setSlidesLayoutOptions(notesOptions); + + // 使用指定尺寸保存演示文稿为 TIFF。 + presentation.save("tiff-ImageSize.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +## **将演示文稿转换为自定义像素格式的 TIFF** + +使用来自 [TiffOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/) 类的 [setPixelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tiffoptions/#setPixelFormat) 方法,您可以为生成的 TIFF 图像指定首选的像素格式。 + +下面的 JavaScript 代码演示了如何将 PowerPoint 演示文稿转换为具有自定义像素格式的 TIFF 图像: +```js +// 实例化表示演示文稿文件 (PPT, PPTX, ODP, 等) 的 Presentation 类。 +let presentation = new aspose.slides.Presentation("presentation.pptx"); +try { + let tiffOptions = new aspose.slides.TiffOptions(); + + tiffOptions.setPixelFormat(aspose.slides.ImagePixelFormat.Format8bppIndexed); + /* + ImagePixelFormat 包含以下值(如文档所述): + Format1bppIndexed - 每像素 1 位,索引。 + Format4bppIndexed - 每像素 4 位,索引。 + Format8bppIndexed - 每像素 8 位,索引。 + Format24bppRgb - 每像素 24 位,RGB。 + Format32bppArgb - 每像素 32 位,ARGB。 + */ + + /// 使用指定的图像尺寸保存演示文稿为 TIFF。 + presentation.save("Tiff-PixelFormat.tiff", aspose.slides.SaveFormat.Tiff, tiffOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Tip" color="primary" %}} +查看 Aspose 的 [免费 PowerPoint 转海报转换器](https://products.aspose.app/slides/conversion/convert-ppt-to-poster-online)。 +{{% /alert %}} + +## **常见问题** + +**我可以将单个幻灯片而不是整个 PowerPoint 演示文稿转换为 TIFF 吗?** + +可以。Aspose.Slides 允许您将 PowerPoint 和 OpenDocument 演示文稿中的单个幻灯片单独转换为 TIFF 图像。 + +**在将演示文稿转换为 TIFF 时,对幻灯片数量有任何限制吗?** + +没有,Aspose.Slides 对幻灯片数量没有任何限制。您可以将任意大小的演示文稿转换为 TIFF 格式。 + +**在将幻灯片转换为 TIFF 时,PowerPoint 动画和过渡效果会被保留吗?** + +不会,TIFF 是一种静态图像格式。因此,动画和过渡效果不会被保留,仅导出幻灯片的静态快照。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md new file mode 100644 index 0000000000..883df28c8a --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-video/_index.md @@ -0,0 +1,330 @@ +--- +title: 将 PowerPoint 转换为视频 +type: docs +weight: 130 +url: /zh/nodejs-java/convert-powerpoint-to-video/ +keywords: "转换 PowerPoint, PPT, PPTX, 演示文稿, 视频, MP4, PPT 转视频, PPT 转 MP4, Java, Aspose.Slides" +description: "在 JavaScript 中将 PowerPoint 转换为视频" +--- + +通过将 PowerPoint 演示文稿转换为视频,您可以获得 + +* **可访问性提升:** 与演示文稿打开应用程序相比,所有设备(无论平台)默认都配备视频播放器,因此用户打开或播放视频更容易。 +* **覆盖范围更广:** 通过视频,您可以触及更大的受众,并向他们提供在演示文稿中可能显得枯燥的信息。大多数调查和统计数据显示,人们观看和消费视频的频率高于其他形式的内容,并且他们通常更喜欢此类内容。 + +{{% alert color="primary" %}} +您可能想要查看我们的[**PowerPoint to Video Online Converter**](https://products.aspose.app/slides/conversion/ppt-to-word),因为它是本文所述过程的实时且有效的实现。 +{{% /alert %}} + +## **Aspose.Slides 中的 PowerPoint 到视频转换** + +在[Aspose.Slides 22.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-22-11-release-notes/)中,我们实现了对演示文稿到视频转换的支持。 + +* 使用**Aspose.Slides**生成一组帧(来自演示文稿的幻灯片),这些帧对应于特定的 FPS(每秒帧数)。 +* 使用诸如**ffmpeg**([for java](https://github.com/bramp/ffmpeg-cli-wrapper))的第三方工具根据这些帧创建视频。 + +### **将 PowerPoint 转换为视频** + +1. 在[此处](https://ffmpeg.org/download.html)下载 ffmpeg。 +2. 运行 PowerPoint 到视频的 JavaScript 代码。 + +此 JavaScript 代码展示了如何将包含图形和两个动画效果的演示文稿转换为视频: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // 添加一个笑脸形状并对其进行动画 + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // 配置 ffmpeg 二进制文件夹。参见此页面: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **视频效果** + +您可以对幻灯片上的对象应用动画并使用幻灯片之间的切换。 + +{{% alert color="primary" %}} +您可能想要查看以下文章:[PowerPoint Animation](https://docs.aspose.com/slides/nodejs-java/powerpoint-animation/)、[Shape Animation](https://docs.aspose.com/slides/nodejs-java/shape-animation/)和[Shape Effect](https://docs.aspose.com/slides/nodejs-java/shape-effect/)。 +{{% /alert %}} + +动画和切换使幻灯片放映更具吸引力和趣味性——它们对视频也有相同的作用。让我们为前面的演示文稿的代码添加另一张幻灯片和切换: +```javascript +// 添加一个笑脸形状并对其进行动画 +// ... +// 添加新幻灯片并添加动画切换 +var newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide()); +newSlide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); +newSlide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); +newSlide.getSlideShowTransition().setType(aspose.slides.TransitionType.Push); +``` + + +Aspose.Slides 还支持文本动画。因此我们对对象上的段落进行动画处理,它们将一个接一个出现(延迟设置为一秒): +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // 添加文本和动画 + var autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 120, 300, 300); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Aspose Slides for Node.js via Java")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("convert PowerPoint Presentation with text to video")); + var para3 = new aspose.slides.Paragraph(); + para3.getPortions().add(new aspose.slides.Portion("paragraph by paragraph")); + var paragraphCollection = autoShape.getTextFrame().getParagraphs(); + paragraphCollection.add(para1); + paragraphCollection.add(para2); + paragraphCollection.add(para3); + paragraphCollection.add(new aspose.slides.Paragraph()); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effect1 = mainSequence.addEffect(para1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect2 = mainSequence.addEffect(para2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect3 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + var effect4 = mainSequence.addEffect(para3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + effect1.getTiming().setTriggerDelayTime(1.0); + effect2.getTiming().setTriggerDelayTime(1.0); + effect3.getTiming().setTriggerDelayTime(1.0); + effect4.getTiming().setTriggerDelayTime(1.0); + final var fps = 33; + var frames = java.newInstanceSync("java.util.ArrayList"); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, fps); + try { + player.setFrameTick((sender, arguments) -> { + try { + var frame = java.callStaticMethodSync("java.lang.String", "format", "frame_%04d.png", sender.getFrameIndex()); + arguments.getFrame().save(frame, aspose.slides.ImageFormat.Png); + frames.add(frame); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } + // 配置 ffmpeg 二进制文件夹。参见此页面: https://github.com/rosenbjerg/FFMpegCore#installation + var ffmpeg = java.newInstanceSync("FFmpeg", "path/to/ffmpeg"); + var ffprobe = java.newInstanceSync("FFprobe", "path/to/ffprobe"); + var builder = java.newInstanceSync("FFmpegBuilder").addExtraArgs("-start_number", "1").setInput("frame_%04d.png").addOutput("output.avi").setVideoFrameRate(java.getStaticFieldValue("FFmpeg", "FPS_24")).setFormat("avi").done(); + var executor = java.newInstanceSync("FFmpegExecutor", ffmpeg, ffprobe); + executor.createJob(builder).run(); +} catch (e) {console.log(e); + console.log(e); +} +``` + + +## **视频转换类** + +为了让您能够执行 PowerPoint 到视频的转换任务,Aspose.Slides 提供了[PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/)和[PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/)类。 + +PresentationAnimationsGenerator 允许您通过其构造函数设置视频(以后将创建)的帧大小。如果传入演示文稿实例,将使用 `Presentation.getSlideSize`,并生成供 PresentationPlayer 使用的动画。 + +生成动画时,会为每个后续动画生成一个 `NewAnimation` 事件,其中包含[PresentationAnimationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/) 参数。后者是表示单独动画播放器的类。 + +要使用 PresentationAnimationPlayer,需要使用 [getDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#getDuration--)(动画的完整持续时间)方法和 [setTimePosition](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationplayer/#setTimePosition-double-) 方法。每个动画位置在 *0 到 duration* 范围内设置,然后 `getFrame` 方法将返回对应于该时刻动画状态的 BufferedImage: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // 添加一个笑脸形状并对其进行动画 + var smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.SmileyFace, 110, 20, 500, 500); + var mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence(); + var effectIn = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.TopLeft, aspose.slides.EffectTriggerType.AfterPrevious); + var effectOut = mainSequence.addEffect(smile, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.BottomRight, aspose.slides.EffectTriggerType.AfterPrevious); + effectIn.getTiming().setDuration(2.0); + effectOut.setPresetClassType(aspose.slides.EffectPresetClassType.Exit); + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + animationsGenerator.setNewAnimation(animationPlayer -> { + console.log(java.callStaticMethodSync("java.lang.String", "format", "Animation total duration: %f", animationPlayer.getDuration())); + animationPlayer.setTimePosition(0);// 初始动画状态 + try { + // 初始动画状态位图 + animationPlayer.getFrame().save("firstFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + animationPlayer.setTimePosition(animationPlayer.getDuration());// 最终动画状态 + try { + // 动画的最后一帧 + animationPlayer.getFrame().save("lastFrame.png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +为了让演示文稿中的所有动画一次性播放,使用 [PresentationPlayer](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationplayer/) 类。该类在构造函数中接受一个 [PresentationAnimationsGenerator](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentationanimationsgenerator/) 实例和 FPS,然后调用所有动画的 `FrameTick` 事件以实现播放: +```javascript +var presentation = new aspose.slides.Presentation("animated.pptx"); +try { + var animationsGenerator = new aspose.slides.PresentationAnimationsGenerator(presentation); + try { + var player = new aspose.slides.PresentationPlayer(animationsGenerator, 33); + try { + player.setFrameTick((sender, arguments) -> { + try { + arguments.getFrame().save(("frame_" + sender.getFrameIndex()) + ".png", aspose.slides.ImageFormat.Png); + } catch (e) {console.log(e); + throw java.newInstanceSync("java.lang.RuntimeException", e); + } + }); + animationsGenerator.run(presentation.getSlides()); + } finally { + if (player != null) { + player.dispose(); + } + } + } finally { + if (animationsGenerator != null) { + animationsGenerator.dispose(); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +随后可以将生成的帧编译为视频。请参阅 [Convert PowerPoint to Video](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-video/#convert-powerpoint-to-video) 部分。 + +## **支持的动画和效果** + +**Entrance**: + +| **Animation Type** | **Aspose.Slides** | **PowerPoint** | +|---|---|---| +| **Appear** | ![不支持](x.png) | ![支持](v.png) | +| **Fade** | ![支持](v.png) | ![支持](v.png) | +| **Fly In** | ![支持](v.png) | ![支持](v.png) | +| **Float In** | ![支持](v.png) | ![支持](v.png) | +| **Split** | ![支持](v.png) | ![支持](v.png) | +| **Wipe** | ![支持](v.png) | ![支持](v.png) | +| **Shape** | ![支持](v.png) | ![支持](v.png) | +| **Wheel** | ![支持](v.png) | ![支持](v.png) | +| **Random Bars** | ![支持](v.png) | ![支持](v.png) | +| **Grow & Turn** | ![不支持](x.png) | ![支持](v.png) | +| **Zoom** | ![支持](v.png) | ![支持](v.png) | +| **Swivel** | ![支持](v.png) | ![支持](v.png) | +| **Bounce** | ![支持](v.png) | ![支持](v.png) | + +**Emphasis**: + +| **Animation Type** | **Aspose.Slides** | **PowerPoint** | +|---|---|---| +| **Pulse** | ![不支持](x.png) | ![支持](v.png) | +| **Color Pulse** | ![不支持](x.png) | ![支持](v.png) | +| **Teeter** | ![支持](v.png) | ![支持](v.png) | +| **Spin** | ![支持](v.png) | ![支持](v.png) | +| **Grow/Shrink** | ![不支持](x.png) | ![支持](v.png) | +| **Desaturate** | ![不支持](x.png) | ![支持](v.png) | +| **Darken** | ![不支持](x.png) | ![支持](v.png) | +| **Lighten** | ![不支持](x.png) | ![支持](v.png) | +| **Transparency** | ![不支持](x.png) | ![支持](v.png) | +| **Object Color** | ![不支持](x.png) | ![支持](v.png) | +| **Complementary Color** | ![不支持](x.png) | ![支持](v.png) | +| **Line Color** | ![不支持](x.png) | ![支持](v.png) | +| **Fill Color** | ![不支持](x.png) | ![支持](v.png) | + +**Exit**: + +| **Animation Type** | **Aspose.Slides** | **PowerPoint** | +|---|---|---| +| **Disappear** | ![不支持](x.png) | ![支持](v.png) | +| **Fade** | ![支持](v.png) | ![支持](v.png) | +| **Fly Out** | ![支持](v.png) | ![支持](v.png) | +| **Float Out** | ![支持](v.png) | ![支持](v.png) | +| **Split** | ![支持](v.png) | ![支持](v.png) | +| **Wipe** | ![支持](v.png) | ![支持](v.png) | +| **Shape** | ![支持](v.png) | ![支持](v.png) | +| **Random Bars** | ![支持](v.png) | ![支持](v.png) | +| **Shrink & Turn** | ![不支持](x.png) | ![支持](v.png) | +| **Zoom** | ![支持](v.png) | ![支持](v.png) | +| **Swivel** | ![支持](v.png) | ![支持](v.png) | +| **Bounce** | ![支持](v.png) | ![支持](v.png) | + +**Motion Paths**: + +| **Animation Type** | **Aspose.Slides** | **PowerPoint** | +|---|---|---| +| **Lines** | ![支持](v.png) | ![支持](v.png) | +| **Arcs** | ![支持](v.png) | ![支持](v.png) | +| **Turns** | ![支持](v.png) | ![支持](v.png) | +| **Shapes** | ![支持](v.png) | ![支持](v.png) | +| **Loops** | ![支持](v.png) | ![支持](v.png) | +| **Custom Path** | ![支持](v.png) | ![支持](v.png) | + +## **常见问题** + +**是否可以转换受密码保护的演示文稿?** + +是的,Aspose.Slides 允许处理受密码保护的演示文稿。处理此类文件时,您需要提供正确的密码,以便库能够访问演示文稿的内容。 + +**Aspose.Slides 是否支持在云解决方案中使用?** + +是的,Aspose.Slides 可以集成到云应用程序和服务中。该库专为服务器环境设计,能够在批量处理文件时提供高性能和可伸缩性。 + +**在转换过程中对演示文稿的大小是否有限制?** + +Aspose.Slides 能够处理几乎任何大小的演示文稿。然而,在处理非常大的文件时,可能需要额外的系统资源,通常建议对演示文稿进行优化以提升性能。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md new file mode 100644 index 0000000000..84b61f2f4b --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-powerpoint-to-xps/_index.md @@ -0,0 +1,91 @@ +--- +title: 将 PowerPoint 转换为 XPS +type: docs +weight: 70 +url: /zh/nodejs-java/convert-powerpoint-to-xps/ +keywords: "PPT, PPTX 转 XPS" +description: "在 JavaScript 中将 PowerPoint PPT(X) 转换为 XPS" +--- + +## **关于 XPS** + +Microsoft 将 [XPS](https://docs.fileformat.com/page-description-language/xps/) 开发为 [PDF](https://docs.fileformat.com/pdf/) 的替代方案。它允许您通过输出与 PDF 非常相似的文件来打印内容。XPS 格式基于 XML。XPS 文件的布局或结构在所有操作系统和打印机上保持一致。 + +## **何时使用 Microsoft XPS 格式** + +{{% alert color="primary" %}} +要了解 Aspose.Slides 如何将 PPT 或 PPTX 演示文稿转换为 XPS 格式,您可以查看 [此免费在线转换应用](https://products.aspose.app/slides/conversion)。 +{{% /alert %}} + +如果您想降低存储成本,可以将 Microsoft PowerPoint 演示文稿转换为 XPS 格式。这样,您会发现保存、共享和打印文档更加容易。 + +Microsoft 继续在 Windows(甚至在 Windows 10)中实现对 XPS 的强力支持,因此您可以考虑将文件保存为此格式。如果您使用 Windows 8.1、Windows 8、Windows 7 和 Windows Vista,则 XPS 可能是某些操作的最佳选项。 + +- **Windows 8** 使用 OXPS(Open XPS)格式来保存 XPS 文件。OXPS 是原始 XPS 格式的标准化版本。Windows 8 对 XPS 文件的支持优于对 PDF 文件的支持。 + - **XPS:** 内置 XPS 查看器/阅读器并提供打印到 XPS 的功能。 + - **PDF:** 提供 PDF 阅读器,但不具备打印到 PDF 的功能。 + +- **Windows 7 和 Windows Vista** 使用原始 XPS 格式。这些操作系统对 XPS 文件的支持也优于对 PDF 的支持。 + - **XPS:** 内置 XPS 查看器并提供打印到 XPS 的功能。 + - **PDF:** 没有 PDF 阅读器,也没有打印到 PDF 的功能。 + +|

**输入 PPT(X):

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_1.png)**

|

**输出 XPS:

**![todo:image_alt_text](convert-powerpoint-ppt-and-pptx-to-microsoft-xps-document_2.png)**

| + +Microsoft 最终通过 Windows 10 中的“Print to PDF”功能实现了对 PDF 打印操作的支持。此前,用户需要通过 XPS 格式来打印文档。 + +## **使用 Aspose.Slides 进行 XPS 转换** + +在 [**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/) 中,您可以使用由 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类公开的 [**save**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-aspose.slides.ISaveOptions-) 方法将整个演示文稿转换为 XPS 文档。 + +在将演示文稿转换为 XPS 时,必须使用以下任一设置保存演示文稿: + +- 默认设置(不使用 [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) +- 自定义设置(使用 [**XPSOptions**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions)) + +### **使用默认设置将演示文稿转换为 XPS** + +此 JavaScript 示例代码演示如何使用标准设置将演示文稿转换为 XPS 文档: +```javascript +// 实例化一个表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("Convert_XPS.pptx"); +try { + // 将演示文稿保存为 XPS 文档 + pres.save("XPS_Output_Without_XPSOption.xps", aspose.slides.SaveFormat.Xps); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **使用自定义设置将演示文稿转换为 XPS** + +此示例代码演示如何在 JavaScript 中使用自定义设置将演示文稿转换为 XPS 文档: +```javascript +// 实例化一个表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("Convert_XPS_Options.pptx"); +try { + // 实例化 TiffOptions 类 + var options = new aspose.slides.XpsOptions(); + // 将 MetaFiles 保存为 PNG + options.setSaveMetafilesAsPng(true); + // 将演示文稿保存为 XPS 文档 + pres.save("XPS_Output_With_Options.xps", aspose.slides.SaveFormat.Xps, options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以将 XPS 保存到流中而不是文件吗?** + +是的——Aspose.Slides 允许您直接导出到流,这对于 Web API、服务器端管道或任何希望在不接触文件系统的情况下发送 XPS 的场景都非常理想。 + +**隐藏幻灯片会被携带到 XPS 中吗?我可以排除它们吗?** + +默认情况下,仅渲染常规(可见)幻灯片。您可以通过在保存为 XPS 之前使用 [包含或排除隐藏幻灯片](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/setshowhiddenslides/)的 [导出设置](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xpsoptions/)来实现,确保输出恰好包含您想要的页面。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md new file mode 100644 index 0000000000..a83ab94654 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-ppt-to-pptx/_index.md @@ -0,0 +1,101 @@ +--- +title: 在 JavaScript 中将 PPT 转换为 PPTX +linktitle: 将 PPT 转换为 PPTX +type: docs +weight: 20 +url: /zh/nodejs-java/convert-ppt-to-pptx/ +keywords: "Java 将 PPT 转换为 PPTX, PowerPoint PPT 在 JavaScript 中转换为 PPTX" +description: "在 JavaScript 中将 PowerPoint PPT 转换为 PPTX。" +--- + +## **概述** + +本文介绍如何使用 JavaScript 将 PowerPoint 演示文稿从 PPT 格式转换为 PPTX 格式,以及使用在线 PPT 转 PPTX 转换应用程序。涵盖以下主题。 + +- 在 JavaScript 中将 PPT 转换为 PPTX + +## **Java 将 PPT 转换为 PPTX** + +有关将 PPT 转换为 PPTX 的 JavaScript 示例代码,请参见下面的章节 [转换 PPT 为 PPTX](#convert-ppt-to-pptx)。它仅加载 PPT 文件并以 PPTX 格式保存。通过指定不同的保存格式,还可以将 PPT 文件保存为 PDF、XPS、ODP、HTML 等多种格式,详见这些文章。 + +- [Java 将 PPT 转换为 PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java 将 PPT 转换为 XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java 将 PPT 转换为 HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java 将 PPT 转换为 ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java 将 PPT 转换为图像](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **关于 PPT 转 PPTX 转换** +使用 Aspose.Slides API 将旧的 PPT 格式转换为 PPTX。如果需要将数千个 PPT 演示文稿转换为 PPTX 格式,最佳方案是以编程方式完成。借助 Aspose.Slides API,只需几行代码即可实现。该 API 完全兼容将 PPT 演示文稿转换为 PPTX,并且可以: + +- 转换包含复杂母版、版式和幻灯片的结构。 +- 转换包含图表的演示文稿。 +- 转换包含组合形状、自动形状(如矩形和椭圆)、具有自定义几何形状的演示文稿。 +- 转换具有纹理和图片填充样式的自动形状的演示文稿。 +- 转换包含占位符、文本框和文本持有者的演示文稿。 + +{{% alert color="primary" %}} + +查看 [**Aspose.Slides PPT 转换为 PPTX**](https://products.aspose.app/slides/conversion/ppt-to-pptx) 应用: + +[](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +[![todo:image_alt_text](ppt-to-pptx.png)](https://products.aspose.app/slides/conversion/ppt-to-pptx) + +此应用基于 [**Aspose.Slides API**](https://products.aspose.com/slides/nodejs-java/) 构建,您可以看到基本 PPT 转 PPTX 转换功能的实时示例。Aspose.Slides Conversion 是一个 Web 应用,允许将 PPT 格式的演示文件拖入并下载已转换为 PPTX 的文件。 + +查找其他实时 [**Aspose.Slides Conversion**](https://products.aspose.app/slides/conversion/) 示例。 +{{% /alert %}} + +## **将 PPT 转换为 PPTX** +Aspose.Slides for Node.js via Java 现已支持开发者使用 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类实例访问 PPT,并将其转换为相应的 [PPTX](https://docs.fileformat.com/presentation/pptx/) 格式。目前,它支持将 [PPT](https://docs.fileformat.com/presentation/ppt/) 部分转换为 PPTX。有关 PPT 转 PPTX 转换支持和不支持的功能的更多详细信息,请参阅此文档 [link](/slides/zh/nodejs-java/ppt-to-pptx-conversion/)。 + +Aspose.Slides for Node.js via Java 提供了表示 **PPTX** 演示文稿文件的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类。当实例化对象时,Presentation 类现在也可以访问 **PPT**。下面的示例演示如何将 PPT 演示文稿转换为 PPTX 演示文稿。 +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("Aspose.ppt"); +try { + // 将 PPTX 演示文稿保存为 PPTX 格式 + pres.save("ConvertedAspose.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +|![todo:image_alt_text](http://i.imgur.com/Y9jaUtI.png)| +| :- | +|**图:源 PPT 演示文稿**| + +上述代码片段在转换后生成了以下 PPTX 演示文稿 + +|![todo:image_alt_text](http://i.imgur.com/tBXF3nA.png)| +| :- | +|**图:转换后生成的 PPTX 演示文稿**| + +## **常见问题** + +**PPT 和 PPTX 格式有什么区别?** + +PPT 是 Microsoft PowerPoint 使用的旧二进制文件格式,而 PPTX 是随 Microsoft Office 2007 引入的基于 XML 的新格式。PPTX 文件提供更好的性能、更小的文件大小以及改进的数据恢复能力。 + +**Aspose.Slides 是否支持批量将多个 PPT 文件转换为 PPTX?** + +是的,您可以在循环中使用 Aspose.Slides 以编程方式批量将多个 PPT 文件转换为 PPTX,适用于批量转换场景。 + +**转换后内容和格式会被保留吗?** + +Aspose.Slides 在转换演示文稿时保持高度保真。幻灯片版式、动画、形状、图表和其他设计元素在 PPT 转 PPTX 转换过程中都会被保留。 + +**我可以将 PPT 文件转换为 PDF 或 HTML 等其他格式吗?** + +是的,Aspose.Slides 支持将 PPT 文件转换为多种格式,包括 PDF、XPS、HTML、ODP 以及 PNG、JPEG 等图像格式。 + +**是否可以在未安装 Microsoft PowerPoint 的情况下将 PPT 转换为 PPTX?** + +可以,Aspose.Slides 是独立的 API,无需 Microsoft PowerPoint 或任何第三方软件即可执行转换。 + +**是否有在线工具可用于 PPT 转 PPTX 转换?** + +是的,您可以使用免费的 [Aspose.Slides PPT 转 PPTX 转换器](https://products.aspose.app/slides/conversion/ppt-to-pptx) Web 应用直接在浏览器中完成转换,无需编写任何代码。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md new file mode 100644 index 0000000000..c9e2954e97 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/convert-pptx-to-ppt/_index.md @@ -0,0 +1,50 @@ +--- +title: 在 JavaScript 中将 PPTX 转换为 PPT +linktitle: 将 PPTX 转换为 PPT +type: docs +weight: 21 +url: /zh/nodejs-java/convert-pptx-to-ppt/ +keywords: "Java 将 PPTX 转换为 PPT, 转换 PowerPoint 演示文稿, PPTX 转 PPT, Java, Aspose.Slides" +description: "在 JavaScript 中将 PowerPoint PPTX 转换为 PPT" +--- + +## **概述** + +本文介绍如何使用 JavaScript 将 PPTX 格式的 PowerPoint 演示文稿转换为 PPT 格式。涵盖以下主题。 + +- 在 JavaScript 中将 PPTX 转换为 PPT + +## **Java 将 PPTX 转换为 PPT** + +有关在 JavaScript 中将 PPTX 转换为 PPT 的示例代码,请参阅以下章节,即[转换 PPTX 为 PPT](#convert-pptx-to-ppt)。它仅加载 PPTX 文件并以 PPT 格式保存。通过指定不同的保存格式,还可以将 PPTX 文件保存为 PDF、XPS、ODP、HTML 等多种格式,详情请参见这些文章。 + +- [Java 将 PPTX 转换为 PDF](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-pdf/) +- [Java 将 PPTX 转换为 XPS](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-xps/) +- [Java 将 PPTX 转换为 HTML](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-html/) +- [Java 将 PPTX 转换为 ODP](https://docs.aspose.com/slides/nodejs-java/save-presentation/) +- [Java 将 PPTX 转换为图像](https://docs.aspose.com/slides/nodejs-java/convert-powerpoint-to-png/) + +## **转换 PPTX 为 PPT** + +要将 PPTX 转换为 PPT,只需将文件名和保存格式传递给 [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的 **Save** 方法。下面的 JavaScript 示例代码使用默认选项将演示文稿从 PPTX 转换为 PPT。 +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 对象 +var presentation = new aspose.slides.Presentation("template.pptx"); +// 将演示文稿保存为 PPT +presentation.save("output.ppt", aspose.slides.SaveFormat.Ppt); +``` + + +## **常见问题** + +**在保存为传统 PPT(97–2003)格式时,所有 PPTX 的效果和功能都会保留吗?** + +并非总是如此。PPT 格式缺少一些较新的功能(例如某些效果、对象和行为),因此在转换过程中可能会对这些功能进行简化或栅格化。 + +**我可以只将选定的幻灯片转换为 PPT,而不是整个演示文稿吗?** + +直接保存会针对整个演示文稿。若要转换特定幻灯片,需要先创建仅包含这些幻灯片的新演示文稿并将其保存为 PPT;或者使用支持逐幻灯片转换参数的服务/API。 + +**是否支持受密码保护的演示文稿?** + +支持。您可以检测文件是否受保护,使用密码打开,并且还可以[配置保护/加密设置](/slides/zh/nodejs-java/password-protected-presentation/)以保存受密码保护的 PPT。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md new file mode 100644 index 0000000000..09beb69728 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/ppt-vs-pptx/_index.md @@ -0,0 +1,65 @@ +--- +title: PPT 与 PPTX +type: docs +weight: 10 +url: /zh/nodejs-java/ppt-vs-pptx/ +keywords: "PPT 与 PPTX" +description: "了解 Aspose.Slides 中 PPT 与 PPTX 的区别。" +--- + +## **什么是 PPT?** + +[**PPT**](https://docs.fileformat.com/presentation/ppt/) 是一种二进制文件格式,即没有特殊工具无法查看其内容。首个 PowerPoint 97-2003 版本使用 PPT 文件格式,但其可扩展性有限。 + +## **什么是 PPTX?** + +[**PPTX**](https://docs.fileformat.com/presentation/pptx/) 是一种基于 Office Open XML(ISO 29500:2008-2016,ECMA-376)标准的新演示文稿文件格式。PPTX 是一组已归档的 XML 和媒体文件。PPTX 格式易于扩展。例如,可以轻松添加对新图表类型或形状类型的支持,而无需在每个新 PowerPoint 版本中更改 PPTX 格式。PPTX 格式自 PowerPoint 2007 起使用。 + +## **PPT 与 PPTX** + +虽然 PPTX 提供了更广泛的功能,PPT 仍然相当流行。将 PPT 转换为 PPTX 或相反的需求非常高。 + +然而,在其他 Microsoft Office 格式中,旧 PPT 与新 PPTX 之间的转换是最复杂的挑战。虽然 PPT 格式的规范是公开的,但使用起来仍然困难。PowerPoint 可以在 PPT 文件中创建特殊部分(MetroBlob)来存储 PPTX 中不受 PPT 格式支持且旧 PowerPoint 版本无法显示的信息。当在现代 PowerPoint 版本中加载 PPT 文件或转换为 PPTX 格式时,这些信息可以恢复。 + +Aspose.Slides 提供了一个通用类来处理所有演示文稿格式。它可以非常简单地实现 PPT 转 PPTX 和 PPTX 转 PPT 的转换。Aspose.Slides 完全支持 PPT 转 PPTX 的转换,也支持 PPTX 转 PPT,但有一些限制。我们建议尽可能使用 PPTX 格式。 + +{{% alert color="primary" %}} + +检查 PPT 转 PPTX 和 PPTX 转 PPT 转换的质量,请使用在线 [**Aspose.Slides Conversion app**](https://products.aspose.app/slides/conversion/)。 + +{{% /alert %}} +```javascript +// 实例化一个表示 PPT 文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("PPTtoPPTX.ppt"); +try { + // 将 PPT 演示文稿保存为 PPTX 格式 + pres.save("PPTtoPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +阅读更多 [**如何将演示文稿从 PPT 转换为 PPTX**.]( /slides/nodejs-java/convert-ppt-to-pptx/) +{{% /alert %}} + +## **FAQ** + +**是否有必要保留可以正常打开的旧 PPT 演示文稿?** + +如果演示文稿能够可靠打开且不需要协作或新功能,可以保留为 PPT。但为了未来的兼容性和可扩展性,最好 [转换为 PPTX](/slides/zh/nodejs-java/convert-ppt-to-pptx/):该格式基于开放的 OOXML 标准,现代工具更容易支持。 + +**如何决定哪些文件应优先转换为 PPTX?** + +首先转换以下演示文稿:由多人编辑的;包含复杂的 [图表](/slides/zh/nodejs-java/create-chart/)/[形状](/slides/zh/nodejs-java/shape-manipulations/);用于外部通信的;或在 [打开](/slides/zh/nodejs-java/open-presentation/) 时触发警告的。 + +**在 PPT 与 PPTX 相互转换时,密码保护会被保留吗?** + +只有在使用的工具正确转换并支持加密时,密码才会保留下来。更可靠的做法是先 [移除保护](/slides/zh/nodejs-java/password-protected-presentation/),再 [转换](/slides/zh/nodejs-java/convert-ppt-to-pptx/),然后根据安全策略重新应用保护。 + +**为何某些效果在 PPTX 转回 PPT 时消失或被简化?** + +因为 PPT 不支持某些新对象/属性。PowerPoint 和工具可以将这些信息的 “痕迹” 存储在特殊块中以供以后恢复,但旧版本的 PowerPoint 无法渲染它们。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md new file mode 100644 index 0000000000..9a77a12267 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/convert-powerpoint/render-a-slide-as-an-svg-image/_index.md @@ -0,0 +1,68 @@ +--- +title: 将幻灯片渲染为 SVG 图像 +type: docs +weight: 50 +url: /zh/nodejs-java/render-a-slide-as-an-svg-image/ +--- + +## **SVG 格式** + +SVG(Scalable Vector Graphics 的缩写)是一种用于呈现二维图像的标准图形类型或格式。SVG 将图像以向量形式存储在 XML 中,并包含定义其行为或外观的细节。 + +SVG 是少数在可伸缩性、交互性、性能、可访问性、可编程性等方面都符合极高标准的图像格式之一。因此,它在 Web 开发中被广泛使用。 + +当您需要时,可能希望使用 SVG 文件 + +- **以*超大尺寸*打印您的演示文稿**。SVG 图像可以扩展到任意分辨率或级别。您可以根据需要多次调整 SVG 图像大小,而不会降低质量。 +- **在*不同媒介或平台*中使用幻灯片中的图表和图形**。大多数阅读器都能解释 SVG 文件。 +- **使用*尽可能小的图像尺寸***。SVG 文件通常比其他格式的高分辨率等价文件更小,尤其是基于位图的格式(JPEG 或 PNG)。 + +## **将幻灯片渲染为 SVG 图像** + +Aspose.Slides for Node.js via Java 允许您将演示文稿中的幻灯片导出为 SVG 图像。请按照以下步骤生成 SVG 图像: + +1. 创建 Presentation 类的实例。 +2. 遍历演示文稿中的所有幻灯片。 +3. 使用 FileOutputStream 将每张幻灯片写入各自的 SVG 文件。 + +{{% alert color="primary" %}} + +您可以尝试我们的[免费网络应用程序](https://products.aspose.app/slides/conversion/ppt-to-svg),其中实现了来自 Aspose.Slides for Node.js via Java 的 PPT 转 SVG 转换功能。 + +{{% /alert %}} + +下面的 JavaScript 示例代码展示了如何使用 Aspose.Slides 将 PPT 转换为 SVG: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + for (var index = 0; index < pres.getSlides().size(); index++) { + var slide = pres.getSlides().get_Item(index); + var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg"); + try { + slide.writeAsSvg(fileStream); + } finally { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**为什么生成的 SVG 在不同浏览器中可能显示不同?** + +不同浏览器引擎对特定 SVG 特性的支持实现不同。[SVGOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/svgoptions/) 参数有助于平滑这些不兼容之处。 + +**是否可以不仅导出幻灯片,还导出单个形状为 SVG?** + +可以。任何[形状都可以保存为单独的 SVG](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/writeassvg/),这对于图标、象形图以及重复使用图形非常方便。 + +**是否可以将多张幻灯片合并为单个 SVG(条带/文档)?** + +标准场景是一张幻灯片对应一个 SVG。将多张幻灯片合并到同一 SVG 画布是需要在应用层进行的后处理步骤。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md new file mode 100644 index 0000000000..b0b975ea7e --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-html5/_index.md @@ -0,0 +1,154 @@ +--- +title: 导出为 HTML5 +type: docs +weight: 40 +url: /zh/nodejs-java/export-to-html5/ +keywords: +- PowerPoint 转 HTML +- 幻灯片转 HTML +- HTML5 +- HTML 导出 +- 导出演示文稿 +- 转换演示文稿 +- 转换幻灯片 +- Java +- 适用于 Node.js via Java 的 Aspose.Slides +description: 在 JavaScript 中将 PowerPoint 导出为 HTML5 +--- + +{{% alert title="Info" color="info" %}} + +在 [Aspose.Slides 21.9](/slides/zh/nodejs-java/aspose-slides-for-java-21-9-release-notes/) 中,我们实现了对 HTML5 导出的支持。 + +{{% /alert %}} + +此处的 HTML5 导出过程允许您在不使用 Web 扩展或依赖项的情况下将 PowerPoint 转换为 HTML。这样,使用您自己的模板,您可以应用非常灵活的选项来定义导出过程及生成的 HTML、CSS、JavaScript 和动画属性。 + +## **将 PowerPoint 导出为 HTML5** + +以下 JavaScript 代码演示如何在没有 Web 扩展和依赖项的情况下将演示文稿导出为 HTML5: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html5); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} + +在这种情况下,您会得到干净的 HTML。 + +{{% /alert %}} + +您可以通过以下方式指定形状动画和幻灯片切换的设置: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(false); + html5Options.setAnimateTransitions(false); + pres.save("pres5.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 PowerPoint 导出为 HTML** + +以下 JavaScript 演示标准的 PowerPoint 到 HTML 的导出过程: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save("pres.html", aspose.slides.SaveFormat.Html); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +在此情况下,演示文稿内容通过 SVG 渲染,形式如下: +```html + +
+ + THE SLIDE CONTENT GOES HERE + +
+ +``` + + +{{% alert title="Note" color="warning" %}} + +使用此方法将 PowerPoint 导出为 HTML 时,由于 SVG 渲染,您将无法对特定元素应用样式或进行动画。 + +{{% /alert %}} + +## **将 PowerPoint 导出为 HTML5 幻灯片视图** + +**Aspose.Slides** 允许您将 PowerPoint 演示文稿转换为 HTML5 文档,幻灯片以幻灯片视图模式呈现。此时,在浏览器中打开生成的 HTML5 文件,您将在网页上看到幻灯片视图模式的演示文稿。 + +以下 JavaScript 代码演示 PowerPoint 到 HTML5 幻灯片视图的导出过程: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var html5Options = new aspose.slides.Html5Options(); + html5Options.setAnimateShapes(true); + html5Options.setAnimateTransitions(true); + pres.save("HTML5-slide-view.html", aspose.slides.SaveFormat.Html5, html5Options); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将演示文稿转换为包含批注的 HTML5 文档** + +PowerPoint 中的批注是一种工具,允许用户在演示幻灯片上留下备注或反馈。它们在协作项目中尤为有用,多个人员可以对特定幻灯片元素添加建议或备注,而不会更改主体内容。每条批注都会显示作者姓名,便于追踪是谁留下的备注。 + +假设我们有以下保存在 “sample.pptx” 文件中的 PowerPoint 演示文稿。 + +![Two comments on the presentation slide](two_comments_pptx.png) + +将 PowerPoint 演示文稿转换为 HTML5 文档时,您可以轻松指定是否在输出文档中包含演示文稿的批注。为此,需要在 [Html5Options](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/) 类的 `notes_comments_layouting` 属性中指定批注的显示参数。 + +以下代码示例将演示文稿转换为在幻灯片右侧显示批注的 HTML5 文档。 +```javascript +let html5Options = new aspose.slides.Html5Options(); +html5Options.getNotesCommentsLayouting().setCommentsPosition(aspose.slides.CommentsPositions.Right); + +let presentation = new aspose.slides.Presentation("sample.pptx"); +presentation.save("output.html", aspose.slides.SaveFormat.Html5, html5Options); +presentation.dispose(); +``` + + +下面的图片展示了 “output.html” 文档的效果。 + +![The comments in the output HTML5 document](two_comments_html5.png) + +## **FAQ** + +**我能控制对象动画和幻灯片切换在 HTML5 中是否播放吗?** + +可以,HTML5 提供了单独的选项来启用或禁用 [shape animations](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimateshapes/) 和 [slide transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/setanimatetransitions/)。 + +**批注的输出是否受支持?它们可以相对于幻灯片放置在哪里?** + +支持批注的输出,且可以通过 [layout settings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/html5options/#setNotesCommentsLayouting) 将其定位(例如放在幻灯片右侧)。 + +**我能出于安全或 CSP 考虑跳过调用 JavaScript 的链接吗?** + +可以,有一个 [setting](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setSkipJavaScriptLinks) 允许在保存时跳过包含 JavaScript 调用的超链接。这有助于遵守严格的安全策略。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md new file mode 100644 index 0000000000..2a624bbbd6 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/convert-presentation/export-to-xaml/_index.md @@ -0,0 +1,68 @@ +--- +title: 导出为 XAML +type: docs +weight: 30 +url: /zh/nodejs-java/export-to-xaml/ +--- + +## **将演示文稿导出为 XAML** + +{{% alert color="primary" %}} + +在[Aspose.Slides 21.6](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-6-release-notes/),我们实现了对 XAML 导出的支持。现在您可以将演示文稿导出为 XAML。 + +{{% /alert %}} + +## **关于 XAML** + +XAML 是一种描述性编程语言,可帮助您为应用程序构建或编写用户类,特别是那些使用 WPF(Windows Presentation Foundation)、UWP(Universal Windows Platform)和 Xamarin Forms 的应用程序。 + +XAML 是基于 XML 的语言,是 Microsoft 用于描述 GUI 的变体。您大多数情况下可能会使用设计器来处理 XAML 文件,但仍然可以手动编写和编辑 GUI。 + +## **使用默认选项将演示文稿导出为 XAML** + +以下 JavaScript 代码演示如何使用默认设置将演示文稿导出为 XAML: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + pres.save(new aspose.slides.XamlOptions()); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **使用自定义选项将演示文稿导出为 XAML** + +您可以从[XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions)类中选择选项,以控制导出过程并决定 Aspose.Slides 如何将演示文稿导出为 XAML。 + +例如,如果您希望 Aspose.Slides 在导出为 XAML 时添加演示文稿中的隐藏幻灯片,可以将[setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/XamlOptions#setExportHiddenSlides-boolean-)方法设置为 true。请参阅以下示例 JavaScript 代码: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var xamlOptions = new aspose.slides.XamlOptions(); + xamlOptions.setExportHiddenSlides(true); + pres.save(xamlOptions); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**如果原始字体在机器上不可用,如何确保使用可预测的字体?** + +在[XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/)中使用[setDefaultRegularFont](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setDefaultRegularFont) —— 当原始字体缺失时,它会作为回退字体使用。这样可以避免意外的字体替换。 + +**导出的 XAML 仅针对 WPF,还是也可以用于其他 XAML 框架?** + +XAML 是一种用于 WPF、UWP 和 Xamarin.Forms 的通用 UI 标记语言。导出旨在兼容 Microsoft 的 XAML 堆栈;具体行为及对特定结构的支持取决于目标平台。请在您的环境中测试该标记。 + +**是否支持隐藏幻灯片,如何防止默认导出它们?** + +默认情况下,不会包含隐藏幻灯片。您可以通过在[XamlOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/)中使用[setExportHiddenSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/xamloptions/setexporthiddenslides/)来控制此行为——如果不需要导出隐藏幻灯片,请保持该选项为禁用状态。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md new file mode 100644 index 0000000000..cc523727c5 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/create-presentation/_index.md @@ -0,0 +1,74 @@ +--- +title: 用 JavaScript 创建 PowerPoint 演示文稿 +linktitle: 创建演示文稿 +type: docs +weight: 10 +url: /zh/nodejs-java/create-presentation/ +keywords: 用 JavaScript 创建 PPT, 用 JavaScript 创建 PPT 演示文稿, 用 JavaScript 创建 PPTX +description: 学习如何使用 JavaScript 从头创建 PowerPoint 演示文稿,例如 PPT、PPTX。 +--- + +## **创建 PowerPoint 演示文稿** + +要向演示文稿的选定幻灯片添加一条简单的直线,请按以下步骤操作: + +1. 创建 Presentation 类的实例。 +1. 通过其 Index 获取幻灯片的引用。 +1. 使用 Shapes 对象公开的 addAutoShape 方法添加 Line 类型的 AutoShape。 +1. 将修改后的演示文稿写入为 PPTX 文件。 + +在下面的示例中,我们向演示文稿的第一张幻灯片添加了一条直线。 +```javascript +// 实例化一个表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加类型为线的自动形状 + slide.getShapes().addAutoShape(aspose.slides.ShapeType.Line, 50, 150, 300, 0); + pres.save("NewPresentation_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以将新演示文稿保存为何种格式?** + +您可以保存为 [PPTX, PPT, and ODP](/slides/zh/nodejs-java/save-presentation/),并导出为 [PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/)、[XPS](/slides/zh/nodejs-java/convert-powerpoint-to-xps/)、[HTML](/slides/zh/nodejs-java/convert-powerpoint-to-html/)、[SVG](/slides/zh/nodejs-java/convert-powerpoint-to-png/) 和 [images](/slides/zh/nodejs-java/convert-powerpoint-to-png/),等等。 + +**我可以从模板(POTX/POTM)开始并保存为普通 PPTX 吗?** + +可以。加载模板并保存为所需格式;POTX/POTM/PPTM 等类似格式 [受支持](/slides/zh/nodejs-java/supported-file-formats/)。 + +**创建演示文稿时,如何控制幻灯片尺寸/宽高比?** + +设置 [slide size](/slides/zh/nodejs-java/slide-size/)(包括 4:3、16:9 等预设或自定义尺寸),并选择内容的缩放方式。 + +**尺寸和坐标使用何种单位?** + +使用点(point):1 英寸等于 72 单位。 + +**如何处理包含大量媒体文件的超大型演示文稿以降低内存使用?** + +使用 [BLOB management strategies](/slides/zh/nodejs-java/manage-blob/),通过利用临时文件限制内存中存储,并优先使用基于文件的工作流而非纯内存流。 + +**我可以并行创建/保存演示文稿吗?** + +不能在 [multiple threads](/slides/zh/nodejs-java/multithreading/) 中对同一 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 实例进行操作。请为每个线程或进程运行独立的实例。 + +**如何移除试用版水印和限制?** + +[Apply a license](/slides/zh/nodejs-java/licensing/) 每个进程一次。许可 XML 必须保持未修改,如果涉及多个线程,许可设置应同步进行。 + +**我可以对创建的 PPTX 进行数字签名吗?** + +可以。[Digital signatures](/slides/zh/nodejs-java/digital-signature-in-powerpoint/)(添加和验证)在演示文稿中受支持。 + +**在创建的演示文稿中是否支持宏(VBA)?** + +可以。您可以 [create/edit VBA projects](/slides/zh/nodejs-java/presentation-via-vba/) 并保存为支持宏的文件,例如 PPTM/PPSM。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md new file mode 100644 index 0000000000..82e83b8ffe --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/examine-presentation/_index.md @@ -0,0 +1,117 @@ +--- +title: 检查演示文稿 +type: docs +weight: 30 +url: /zh/nodejs-java/examine-presentation/ +keywords: +- PowerPoint +- 演示文稿 +- 演示文稿格式 +- 演示文稿属性 +- 文档属性 +- 获取属性 +- 读取属性 +- 更改属性 +- 修改属性 +- PPTX +- PPT +- JavaScript +- Node +description: "在 Node 中读取和修改 PowerPoint 演示文稿属性" +--- + +Aspose.Slides for Node.js via Java 允许您检查演示文稿以了解其属性并理解其行为。 + +{{% alert title="Info" color="info" %}} + +The [PresentationInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo) and [DocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/) classes contain the properties and methods used in operations here. + +{{% /alert %}} + +## **检查演示文稿格式** + +在处理演示文稿之前,您可能想了解当前演示文稿的格式(PPT、PPTX、ODP 等)。 + +您可以在不加载演示文稿的情况下检查其格式。参考以下 JavaScript 代码: +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +console.log(info.getLoadFormat());// PPTX +var info2 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.ppt"); +console.log(info2.getLoadFormat());// PPT +var info3 = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.odp"); +console.log(info3.getLoadFormat());// ODP +``` + + +## **获取演示文稿属性** + +此 JavaScript 代码演示了如何获取演示文稿属性(关于演示文稿的信息): +```javascript +var info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo("pres.pptx"); +var props = info.readDocumentProperties(); +console.log(props.getCreatedTime()); +console.log(props.getSubject()); +console.log(props.getTitle()); +// .. +``` + + +您可能想查看 [DocumentProperties 类下的属性](https://reference.aspose.com/slides/nodejs-java/aspose.slides/documentproperties/#DocumentProperties--)。 + +## **更新演示文稿属性** + +Aspose.Slides 提供的 [PresentationInfo.updateDocumentProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationInfo#updateDocumentProperties-aspose.slides.IDocumentProperties-) 方法允许您更改演示文稿属性。 + +假设我们有一个 PowerPoint 演示文稿,其文档属性如下所示。 + +![PowerPoint 演示文稿的原始文档属性](input_properties.png) + +以下代码示例演示如何编辑部分演示文稿属性: +```javascript +let fileName = "sample.pptx"; + +let info = aspose.slides.PresentationFactory.getInstance().getPresentationInfo(fileName); + +let properties = info.readDocumentProperties(); +properties.setTitle("My title"); +properties.setLastSavedTime(java.newInstanceSync("java.util.Date")); + +info.updateDocumentProperties(properties); +info.writeBindedPresentation(fileName); +``` + + +更改文档属性后的结果如下所示。 + +![PowerPoint 演示文稿的已更改文档属性](output_properties.png) + +## **有用链接** + +若想获取有关演示文稿及其安全属性的更多信息,以下链接可能对您有帮助: + +- [检查演示文稿是否已加密](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-encrypted) +- [检查演示文稿是否受写保护(只读)](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-write-protected) +- [在加载前检查演示文稿是否受密码保护](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#checking-whether-a-presentation-is-password-protected-before-loading-it) +- [确认用于保护演示文稿的密码](https://docs.aspose.com/slides/nodejs-java/password-protected-presentation/#validating-or-confirming-that-a-specific-password-has-been-used-to-protect-a-presentation). + +## **常见问题** + +**如何检查是否嵌入了字体以及具体是哪一些?** + +在演示文稿层面查找 [embedded‑font 信息](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getembeddedfonts/),然后将这些条目与 [实际在内容中使用的字体集合](https://reference.aspose.com/slides/nodejs-java/aspose.slides/fontsmanager/getfonts/) 对比,以确定哪些字体对渲染至关重要。 + +**如何快速判断文件是否包含隐藏幻灯片以及数量?** + +遍历 [slide collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/),检查每个幻灯片的 [visibility flag](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/gethidden/)。 + +**是否能检测自定义幻灯片尺寸和方向是否被使用,以及它们是否与默认值不同?** + +可以。将当前的 [slide size](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getslidesize/) 和方向与标准预设进行比较;这有助于在打印和导出时预估行为。 + +**有没有快速方式查看图表是否引用了外部数据源?** + +有。遍历所有 [charts](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/),检查它们的 [data source](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/getdatasourcetype/),并记录数据是内部的还是基于链接的,包括任何失效的链接。 + +**如何评估可能导致渲染或 PDF 导出缓慢的“繁重”幻灯片?** + +对每张幻灯片统计对象数量,留意大尺寸图像、透明度、阴影、动画和多媒体;根据这些因素给出一个粗略的复杂度评分,以标记潜在的性能热点。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md new file mode 100644 index 0000000000..bb676dad47 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/import-presentation/_index.md @@ -0,0 +1,85 @@ +--- +title: 导入演示文稿 +type: docs +weight: 60 +url: /zh/nodejs-java/import-presentation/ +keywords: "导入 PowerPoint, PDF 转演示文稿, PDF 转 PPTX, PDF 转 PPT, Java, Aspose.Slides for Node.js via Java" +description: "从 PDF 导入 PowerPoint 演示文稿。将 PDF 转换为 PowerPoint" +--- + +使用[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/),您可以从其他格式的文件导入演示文稿。Aspose.Slides 提供了 [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/) 类,以允许您从 PDF、HTML 文档等导入演示文稿。 + +## **从 PDF 导入 PowerPoint** + +在这种情况下,您可以将 PDF 转换为 PowerPoint 演示文稿。 + +pdf-to-powerpoint + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/) 类的实例。 +2. 调用 [addFromPdf()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addFromPdf-java.lang.String-) 方法并传入 PDF 文件。 +3. 使用 [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) 方法将文件保存为 PowerPoint 格式。 + +此 JavaScript 代码演示了 PDF 转 PowerPoint 的操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().addFromPdf("InputPDF.pdf"); + pres.save("OutputPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +您可能想查看 **Aspose 免费** [PDF to PowerPoint](https://products.aspose.app/slides/import/pdf-to-powerpoint) 网络应用,因为它是此处描述过程的实时实现。 +{{% /alert %}} + +## **从 HTML 导入 PowerPoint** + +在这种情况下,您可以将 HTML 文档转换为 PowerPoint 演示文稿。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/) 类的实例。 +2. 调用 [addFromHtml()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slidecollection/#addFromHtml-java.io.InputStream-) 方法并传入 HTML 文件。 +3. 使用 [save()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#save-java.lang.String-int-) 方法将文件保存为 PowerPoint 格式。 + +此 JavaScript 代码演示了 HTML 转 PowerPoint 的操作: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var htmlStream = java.newInstanceSync("java.io.FileInputStream", "page.html"); + try { + presentation.getSlides().addFromHtml(htmlStream); + } finally { + if (htmlStream != null) { + htmlStream.close(); + } + } + presentation.save("MyPresentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) { + console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **常见问题** + +**在导入 PDF 时表格会被保留吗?是否可以改进其检测?** + +在导入过程中可以检测到表格;[PdfImportOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/) 包含一个 [setDetectTables](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pdfimportoptions/#setDetectTables) 方法,可启用表格识别。其有效性取决于 PDF 的结构。 + +{{% alert title="Note" color="warning" %}} +您还可以使用 Aspose.Slides 将 HTML 转换为其他常用文件格式: + +* [HTML 转图片](https://products.aspose.com/slides/nodejs-java/conversion/html-to-image/) +* [HTML 转 JPG](https://products.aspose.com/slides/nodejs-java/conversion/html-to-jpg/) +* [HTML 转 XML](https://products.aspose.com/slides/nodejs-java/conversion/html-to-xml/) +* [HTML 转 TIFF](https://products.aspose.com/slides/nodejs-java/conversion/html-to-tiff/) + +{{% /alert %}} \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md new file mode 100644 index 0000000000..8008078f08 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/manage-slide-show/_index.md @@ -0,0 +1,123 @@ +--- +title: 管理幻灯片放映 +type: docs +weight: 90 +url: /zh/nodejs-java/manage-slide-show/ +keywords: +- 放映类型 +- 由演讲者呈现 +- 个人浏览 +- 信息亭浏览 +- 放映选项 +- 持续循环 +- 无旁白放映 +- 无动画放映 +- 笔颜色 +- 放映幻灯片 +- 自定义放映 +- 前进幻灯片 +- 手动 +- 使用计时 +- PowerPoint +- 演示文稿 +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "使用 JavaScript 在 PowerPoint 演示文稿中管理幻灯片放映设置" +--- + +在 Microsoft PowerPoint 中,**Slide Show** 设置是准备和呈现专业演示文稿的重要工具。本节最重要的功能之一是**Set Up Show**,它允许您根据特定情境和受众定制演示文稿,确保灵活性和便利性。使用此功能,您可以选择放映类型(例如,由演讲者呈现、个人浏览或在信息亭浏览),启用或禁用循环,选择要显示的特定幻灯片,并使用计时。此准备步骤对提升演示文稿的效果和专业性至关重要。 + +`getSlideShowSettings` 是 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的一个方法,返回类型为 [SlideShowSettings](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slideshowsettings/) 的对象,您可以使用它来管理 PowerPoint 演示文稿中的幻灯片放映设置。本文将探讨如何使用此方法配置和控制幻灯片放映设置的各个方面。 + +## **选择放映类型** + +`SlideShowSettings.setSlideShowType` 定义幻灯片放映的类型,可以是以下类的实例之一:[PresentedBySpeaker](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentedbyspeaker/)、[BrowsedByIndividual](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedbyindividual/) 或 [BrowsedAtKiosk](https://reference.aspose.com/slides/nodejs-java/aspose.slides/browsedatkiosk/)。使用此方法可以使演示文稿适应不同的使用场景,例如自动信息亭或手动演示。 + +下面的代码示例创建一个新演示文稿,并将放映类型设置为“Browsed by an individual”,且不显示滚动条。 +```js +var presentation = new asposeSlides.Presentation(); + +var showType = new asposeSlides.BrowsedByIndividual(); +showType.setShowScrollbar(false); + +presentation.getSlideShowSettings().setSlideShowType(showType); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **启用放映选项** + +`SlideShowSettings.setLoop` 决定幻灯片放映是否应循环重复,直至手动停止。这对需要连续运行的自动化演示文稿很有用。`SlideShowSettings.setShowNarration` 决定是否在放映期间播放声音旁白。这对包含面向观众的语音指导的自动化演示文稿很有用。`SlideShowSettings.setShowAnimation` 决定是否播放添加到幻灯片对象的动画。这有助于呈现演示文稿的完整视觉效果。 + +下面的代码示例创建一个新演示文稿并循环放映。 +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setLoop(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **选择要放映的幻灯片** + +`SlideShowSettings.setSlides` 方法允许您选择在演示期间要显示的幻灯片范围。当只需展示演示文稿的部分内容而非全部幻灯片时,这非常有用。以下代码示例创建一个新演示文稿,并将幻灯片范围设置为显示第 `2` 至 `9` 张幻灯片。 +```js +var presentation = new asposeSlides.Presentation(); + +var slideRange = new asposeSlides.SlidesRange(); +slideRange.setStart(2); +slideRange.setEnd(9); + +presentation.getSlideShowSettings().setSlides(slideRange); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **使用计时推进幻灯片** + +`SlideShowSettings.setUseTimings` 方法允许您启用或禁用对每张幻灯片使用预设计时。这对于自动按预定义显示时长播放幻灯片非常有用。下面的代码示例创建一个新演示文稿并禁用计时的使用。 +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setUseTimings(false); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **显示媒体控制** + +`SlideShowSettings.setShowMediaControls` 方法决定在播放多媒体内容(例如视频或音频)时,是否在放映期间显示媒体控制(如播放、暂停和停止)。当您希望在演示过程中让演示者能够控制媒体播放时,这非常有用。 + +以下代码示例创建一个新演示文稿并启用显示媒体控制。 +```js +var presentation = new asposeSlides.Presentation(); + +presentation.getSlideShowSettings().setShowMediaControls(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **常见问题** + +**我能将演示文稿保存为直接在放映模式下打开吗?** + +可以。将文件另存为 PPSX 或 PPSM;这些格式在 PowerPoint 中打开时会直接进入放映模式。在 Aspose.Slides 中,可在[导出期间](/slides/zh/nodejs-java/save-presentation/)选择相应的保存格式。 + +**我可以在不删除文件中幻灯片的情况下将单个幻灯片排除在放映之外吗?** + +可以。将幻灯片标记为[隐藏](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/sethidden/)。隐藏的幻灯片仍保留在演示文稿中,但在放映时不会显示。 + +**Aspose.Slides 能否在屏幕上播放幻灯片放映或控制实时演示?** + +不能。Aspose.Slides 负责编辑、分析和转换演示文稿文件;实际的播放由如 PowerPoint 等查看器应用程序完成。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md new file mode 100644 index 0000000000..568f95d49e --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/merge-presentation/_index.md @@ -0,0 +1,266 @@ +--- +title: 合并演示文稿 +type: docs +weight: 40 +url: /zh/nodejs-java/merge-presentation/ +keywords: "合并 PowerPoint, PPTX, PPT, 组合 PowerPoint, 合并演示文稿, 组合演示文稿, Java" +description: "在 JavaScript 中合并或组合 PowerPoint 演示文稿" +--- + +## **演示文稿合并** + +当您将一个演示文稿合并到另一个时,实际上是将它们的幻灯片合并到一个演示文稿中以获得单个文件。 + +{{% alert title="Info" color="info" %}} +大多数演示文稿程序(PowerPoint 或 OpenOffice)缺少允许用户以这种方式合并演示文稿的功能。 + +[**Aspose.Slides for Node.js via Java**](https://products.aspose.com/slides/nodejs-java/),然而,允许您以不同方式合并演示文稿。您可以在不担心质量或数据丢失的情况下,合并演示文稿及其所有形状、样式、文本、格式、批注、动画等。 + +**另见** +[克隆幻灯片](https://docs.aspose.com/slides/nodejs-java/clone-slides/)。 +{{% /alert %}} + +### **可以合并的内容** + +With Aspose.Slides, you can merge + +* 整个演示文稿。所有演示文稿中的幻灯片最终汇入一个演示文稿。 +* 特定幻灯片。选定的幻灯片汇入一个演示文稿。 +* 相同格式的演示文稿(PPT 到 PPT、PPTX 到 PPTX 等)以及不同格式的演示文稿(PPT 到 PPTX、PPTX 到 ODP 等)之间的合并。 + +{{% alert title="Note" color="warning" %}} +除了演示文稿,Aspose.Slides 允许您合并其他文件: + +* [图像转换](https://products.aspose.com/slides/nodejs-java/merger/image-to-image/),例如 [JPG 到 JPG](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-jpg/) 或 [PNG 到 PNG](https://products.aspose.com/slides/nodejs-java/merger/png-to-png/)。 +* 文档,例如 [PDF 到 PDF](https://products.aspose.com/slides/nodejs-java/merger/pdf-to-pdf/) 或 [HTML 到 HTML](https://products.aspose.com/slides/nodejs-java/merger/html-to-html/)。 +* 以及两种不同的文件,例如 [图像到 PDF](https://products.aspose.com/slides/nodejs-java/merger/image-to-pdf/) 或 [JPG 到 PDF](https://products.aspose.com/slides/nodejs-java/merger/jpg-to-pdf/) 或 [TIFF 到 PDF](https://products.aspose.com/slides/nodejs-java/merger/tiff-to-pdf/)。 +{{% /alert %}} + +### **合并选项** + +您可以应用选项,以确定是否 + +* 输出演示文稿中的每个幻灯片保持唯一样式。 +* 在输出演示文稿中为所有幻灯片使用特定样式。 + +要合并演示文稿,Aspose.Slides 提供了 [addClone](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) 方法(来自 [SlideCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection) 类)。`addClone` 方法有多种实现,定义了演示文稿合并过程的参数。每个 Presentation 对象都有一个 [Slides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getSlides--) 集合,因此您可以从要合并幻灯片的演示文稿调用 `addClone` 方法。 + +`addClone` 方法返回一个 `Slide` 对象,即源幻灯片的克隆。输出演示文稿中的幻灯片仅是源幻灯片的副本。因此,您可以更改生成的幻灯片(例如,应用样式、格式选项或布局),而无需担心源演示文稿受到影响。 + +## **合并演示文稿** + +Aspose.Slides 提供了 [**AddClone(ISlide)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-) 方法,可在幻灯片保留其布局和样式的情况下(默认参数)合并幻灯片。 + +以下 JavaScript 代码演示了如何合并演示文稿: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **使用幻灯片母版合并演示文稿** + +Aspose.Slides 提供了 [**AddClone(ISlide, IMasterSlide, boolean)**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.IMasterSlide-boolean-) 方法,可在应用幻灯片母版演示文稿模板的同时合并幻灯片。这样,必要时您可以更改输出演示文稿中幻灯片的样式。 + +以下 JavaScript 代码演示了上述操作: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +幻灯片母版的布局会自动确定。当无法确定合适的布局时,如果 `addClone` 方法的 `allowCloneMissingLayout` 布尔参数设置为 true,则使用源幻灯片的布局。否则,将抛出 [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException)。 +{{% /alert %}} + +如果希望输出演示文稿中的幻灯片采用不同的布局,请在合并时改用 [addClone(ISlide, ILayoutSlide)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideCollection#addClone-aspose.slides.ISlide-aspose.slides.ILayoutSlide-) 方法。 + +## **合并来自演示文稿的特定幻灯片** + +从多个演示文稿中合并特定幻灯片对于创建自定义幻灯片组很有用。Aspose.Slides for Node.js via Java 允许您仅选择并导入所需的幻灯片。API 保留原始幻灯片的格式、布局和设计。 + +以下 JavaScript 代码创建一个新演示文稿,添加来自两个其他演示文稿的标题幻灯片,并将结果保存为文件: +```js +function getTitleSlide(presentation) { + for (let i = 0; i < presentation.getSlides().size(); i++) { + let slide = presentation.getSlides().get_Item(i); + if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) { + return slide; + } + } + return null; +} +``` + +```js +let presentation = new aspose.slides.Presentation(); +let presentation1 = new aspose.slides.Presentation("presentation1.pptx"); +let presentation2 = new aspose.slides.Presentation("presentation2.pptx"); +try { + presentation.getSlides().removeAt(0); + + let slide1 = getTitleSlide(presentation1); + + if (slide1 != null) + presentation.getSlides().addClone(slide1); + + let slide2 = getTitleSlide(presentation2); + + if (slide2 != null) + presentation.getSlides().addClone(slide2); + + presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation2.dispose(); + presentation1.dispose(); + presentation.dispose(); +} +``` + + +## **使用幻灯片布局合并演示文稿** + +以下 JavaScript 代码演示了如何在合并演示文稿的幻灯片时应用您首选的幻灯片布局,以获得一个输出演示文稿: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **合并具有不同幻灯片尺寸的演示文稿** + +{{% alert title="Note" color="warning" %}} +无法合并具有不同幻灯片尺寸的演示文稿。 +{{% /alert %}} + +要合并尺寸不同的两个演示文稿,必须调整其中一个演示文稿的尺寸,使其与另一个演示文稿的尺寸匹配。 + +以下示例代码演示了上述操作: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit); + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +## **将幻灯片合并到演示文稿章节** + +以下 JavaScript 代码演示了如何将特定幻灯片合并到演示文稿的章节中: +```javascript +let pres1 = new aspose.slides.Presentation("pres1.pptx"); +try { + let pres2 = new aspose.slides.Presentation("pres2.pptx"); + try { + for (let i = 0; i < pres2.getSlides().size(); i++) { + let slide = pres2.getSlides().get_Item(i); + pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0)); + } + } finally { + if (pres2 != null) { + pres2.dispose(); + } + } + pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres1 != null) { + pres1.dispose(); + } +} +``` + + +该幻灯片被添加到该章节的末尾。 + +## **常见问题** + +**合并期间是否保留演讲者备注?** + +是的。克隆幻灯片时,Aspose.Slides 会保留所有幻灯片元素,包括备注、格式和动画。 + +**评论及其作者是否被转移?** + +评论作为幻灯片内容的一部分,会随幻灯片一起复制。评论作者标签在生成的演示文稿中作为评论对象保留。 + +**如果源演示文稿受密码保护怎么办?** + +必须通过 [LoadOptions.setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/setpassword/) [使用密码打开](/slides/zh/nodejs-java/password-protected-presentation/);加载后,这些幻灯片可以安全地克隆到未受保护的目标文件(或受保护的文件)。 + +**合并操作的线程安全性如何?** + +不要在 [多个线程](/slides/zh/nodejs-java/multithreading/) 中使用相同的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 实例。推荐的规则是“一个文档‑一个线程”;不同的文件可以在不同线程中并行处理。 + +## **另请参阅** + +Aspose 提供了一个 [免费在线拼贴制作器](https://products.aspose.app/slides/collage)。使用此在线服务,您可以合并 [JPG 到 JPG](https://products.aspose.app/slides/collage/jpg) 或 PNG 到 PNG 图像,创建 [照片网格](https://products.aspose.app/slides/collage/photo-grid),以及其他功能。 + +查看 [Aspose 免费在线合并工具](https://products.aspose.app/slides/merger)。它允许您在相同格式(例如 PPT 到 PPT、PPTX 到 PPTX)或跨不同格式(例如 PPT 到 PPTX、PPTX 到 ODP)合并 PowerPoint 演示文稿。 + +[![Aspose FREE Online Merger](slides-merger.png)](https://products.aspose.app/slides/merger) \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md new file mode 100644 index 0000000000..6c7d4f9933 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/open-presentation/_index.md @@ -0,0 +1,176 @@ +--- +title: 在 JavaScript 中打开演示文稿 +linktitle: 打开演示文稿 +type: docs +weight: 20 +url: /zh/nodejs-java/open-presentation/ +keywords: +- 打开 PowerPoint +- 打开演示文稿 +- 打开 PPTX +- 打开 PPT +- 打开 ODP +- 加载演示文稿 +- 加载 PPTX +- 加载 PPT +- 加载 ODP +- 受保护的演示文稿 +- 大型演示文稿 +- 外部资源 +- 二进制对象 +- Node.js +- JavaScript +- Aspose.Slides +description: "使用 Aspose.Slides for Node.js 轻松打开 PowerPoint(.pptx、.ppt)和 OpenDocument(.odp)演示文稿——快速、可靠、功能齐全。" +--- + +## **概述** + +除了从头创建 PowerPoint 演示文稿外,Aspose.Slides 还可以打开现有的演示文稿。加载演示文稿后,您可以检索其信息、编辑幻灯片内容、添加新幻灯片、删除现有幻灯片等。 + +## **打开演示文稿** + +要打开现有演示文稿,请实例化[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/)类并将文件路径传递给其构造函数。 + +以下 JavaScript 示例演示了如何打开演示文稿并获取其幻灯片计数: +```js +// 实例化 Presentation 类,并将文件路径传递给其构造函数。 +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + // 打印演示文稿中的幻灯片总数。 + console.log(presentation.getSlides().size()); +} finally { + presentation.dispose(); +} +``` + + +## **打开受密码保护的演示文稿** + +当需要打开受密码保护的演示文稿时,请通过[LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/)类的[setPassword](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setPassword)方法传入密码以解密并加载。以下 JavaScript 代码演示了此操作: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setPassword("YOUR_PASSWORD"); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +try { + // 对已解密的演示文稿执行操作。 +} finally { + presentation.dispose(); +} +``` + + +## **打开大型演示文稿** + +Aspose.Slides 提供选项——特别是[LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/)类中的[getBlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#getBlobManagementOptions)方法——帮助您加载大型演示文稿。 + +以下 JavaScript 代码演示了加载大型演示文稿(例如 2 GB): +```js +const filePath = "LargePresentation.pptx"; + +let loadOptions = new aspose.slides.LoadOptions(); +// 选择 KeepLocked 行为——演示文稿文件将在整个生命周期内保持锁定 +// Presentation 实例,但不需要加载到内存或复制到临时文件。 +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB + +let presentation = new aspose.slides.Presentation(filePath, loadOptions); +try { + // 已加载大型演示文稿并可使用,同时内存占用保持低水平。 + + // 对演示文稿进行更改。 + presentation.getSlides().get_Item(0).setName("Large presentation"); + + // 将演示文稿保存到另一个文件。此操作期间内存占用保持低水平。 + presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx); + + // 不要这样做!由于文件被锁定,直到释放演示文稿对象前会抛出 I/O 异常。 + //fs.unlinkSync(filePath); +} finally { + presentation.dispose(); +} + +// 这里这样做是可以的。源文件已不再被演示文稿对象锁定。 +fs.unlinkSync(filePath); +``` + + +{{% alert color="info" title="Info" %}} +为了解决在使用流时的某些限制,Aspose.Slides 可能会复制流的内容。从流加载大型演示文稿会导致演示文稿被复制,从而减慢加载速度。因此,当需要加载大型演示文稿时,我们强烈建议使用演示文稿文件路径而非流。 + +在创建包含大型对象(视频、音频、高分辨率图像等)的演示文稿时,您可以使用[BLOB 管理](/slides/zh/nodejs-java/manage-blob/)来降低内存消耗。 +{{%/alert %}} + +## **控制外部资源** + +Aspose.Slides 提供[IResourceLoadingCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iresourceloadingcallback/)接口,让您管理外部资源。以下 JavaScript 代码展示了如何使用 `IResourceLoadingCallback` 接口: +```js +const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", { + resourceLoading: function(args) { + if (args.getOriginalUri().endsWith(".jpg")) { + try { + // 加载替代图像。 + const imageData = fs.readFileSync("aspose-logo.jpg"); + args.setData(imageData); + return aspose.slides.ResourceLoadingAction.UserProvided; + } catch { + return aspose.slides.ResourceLoadingAction.Skip; + } + } else if (args.getOriginalUri().endsWith(".png")) { + // 设置替代 URL。 + args.setUri("http://www.google.com/images/logos/ps_logo2.png"); + return aspose.slides.ResourceLoadingAction.Default; + } + // 跳过所有其他图像。 + return aspose.slides.ResourceLoadingAction.Skip; + } +}); +``` + +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setResourceLoadingCallback(ImageLoadingHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions); +``` + + +## **加载不含嵌入二进制对象的演示文稿** + +PowerPoint 演示文稿可能包含以下类型的嵌入二进制对象: + +- VBA 项目(通过[Presentation.getVbaProject](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/#getVbaProject)访问); +- OLE 对象嵌入数据(通过[OleEmbeddedDataInfo.getEmbeddedFileData](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleembeddeddatainfo/#getEmbeddedFileData)访问); +- ActiveX 控件二进制数据(通过[Control.getActiveXControlBinary](https://reference.aspose.com/slides/nodejs-java/aspose.slides/control/#getActiveXControlBinary)访问)。 + +使用[LoadOptions.setDeleteEmbeddedBinaryObjects](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/#setDeleteEmbeddedBinaryObjects)方法,您可以在不加载任何嵌入二进制对象的情况下打开演示文稿。 + +此方法可帮助移除可能的恶意二进制内容。以下 JavaScript 代码演示了如何在不加载任何嵌入二进制内容的情况下打开演示文稿: +```js +let loadOptions = new aspose.slides.LoadOptions(); +loadOptions.setDeleteEmbeddedBinaryObjects(true); + +let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions); +try { + // 对演示文稿执行操作。 +} finally { + presentation.dispose(); +} +``` + + +## **常见问题** + +**如何判断文件已损坏且无法打开?** + +加载时会抛出解析/格式验证异常。此类错误通常提到 ZIP 结构无效或 PowerPoint 记录损坏。 + +**打开时缺少必需的字体会怎样?** + +文件仍会打开,但后续[渲染/导出](/slides/zh/nodejs-java/convert-presentation/)可能会自动替代字体。请[配置字体替代](/slides/zh/nodejs-java/font-substitution/)或[将必需字体添加到运行时环境](/slides/zh/nodejs-java/custom-font/)。 + +**打开时嵌入的媒体(视频/音频)会怎样?** + +它们会作为演示文稿资源可用。如果媒体通过外部路径引用,请确保这些路径在您的环境中可访问;否则[渲染/导出](/slides/zh/nodejs-java/convert-presentation/)可能会省略这些媒体。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md b/zh/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md new file mode 100644 index 0000000000..120c6a45f1 --- /dev/null +++ b/zh/nodejs-java/developer-guide/manage-presentation/save-presentation/_index.md @@ -0,0 +1,205 @@ +--- +title: 在 JavaScript 中保存演示文稿 +linktitle: 保存演示文稿 +type: docs +weight: 80 +url: /zh/nodejs-java/save-presentation/ +keywords: +- 保存 PowerPoint +- 保存 OpenDocument +- 保存演示文稿 +- 保存幻灯片 +- 保存 PPT +- 保存 PPTX +- 保存 ODP +- 将演示文稿保存为文件 +- 将演示文稿保存为流 +- 预定义视图类型 +- 严格的 Office Open XML 格式 +- Zip64 模式 +- 刷新缩略图 +- 保存进度 +- Node.js +- JavaScript +- Aspose.Slides +description: "了解如何使用 Aspose.Slides 在 JavaScript 中保存演示文稿——导出为 PowerPoint 或 OpenDocument,同时保留布局、字体和效果。" +--- + +## **概述** + +[在 JavaScript 中打开演示文稿](/slides/zh/nodejs-java/open-presentation/) 介绍了如何使用 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类打开演示文稿。本文说明了如何创建和保存演示文稿。[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类包含演示文稿的内容。无论是从头创建演示文稿还是修改现有演示文稿,完成后都需要保存。使用 Aspose.Slides for Node.js,您可以保存到 **file** 或 **stream**。本文解释了保存演示文稿的不同方式。 + +## **将演示文稿保存到文件** + +通过调用 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的 `save` 方法将演示文稿保存到文件。向该方法传递文件名和保存格式。以下示例展示了如何使用 Aspose.Slides 保存演示文稿。 +```js +// 实例化表示演示文稿文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation(); +try { + // 在此执行一些操作... + + // 将演示文稿保存到文件。 + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **将演示文稿保存到流** + +您可以通过向 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的 `save` 方法传递输出流,将演示文稿保存到流。演示文稿可以写入多种流类型。在下面的示例中,我们创建一个新演示文稿并将其保存到文件流。 +```js +// 实例化表示演示文稿文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation(); +try { + let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx"); + try { + // 将演示文稿保存到流中。 + presentation.save(fileStream, aspose.slides.SaveFormat.Pptx); + } finally { + fileStream.close(); + } +} finally { + presentation.dispose(); +} +``` + + +## **使用预定义视图类型保存演示文稿** + +Aspose.Slides 允许您通过 [ViewProperties](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/) 类设置生成的演示文稿打开时 PowerPoint 使用的初始视图。使用来自 [ViewType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewtype/) 枚举的值调用 [setLastView](https://reference.aspose.com/slides/nodejs-java/aspose.slides/viewproperties/#setLastView) 方法。 +```js +let presentation = new aspose.slides.Presentation(); +try { + presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView); + presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **以严格的 Office Open XML 格式保存演示文稿** + +Aspose.Slides 允许您以严格的 Office Open XML 格式保存演示文稿。保存时使用 [PptxOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/) 类并设置其 conformance 属性。如果设置 [Conformance.Iso29500_2008_Strict](https://reference.aspose.com/slides/nodejs-java/aspose.slides/conformance/#Iso29500_2008_Strict),输出文件将以严格的 Office Open XML 格式保存。 + +以下示例创建一个演示文稿并以严格的 Office Open XML 格式保存它。 +```js +let options = new aspose.slides.PptxOptions(); +options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict); + +// 实例化表示演示文稿文件的 Presentation 类。 +let presentation = new aspose.slides.Presentation(); +try { + // 以严格的 Office Open XML 格式保存演示文稿。 + presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options); +} finally { + presentation.dispose(); +} +``` + + +## **在 Zip64 模式下以 Office Open XML 格式保存演示文稿** + +Office Open XML 文件是一个 ZIP 存档,对任何文件的未压缩大小、压缩大小以及存档的总大小都施加 4 GB (2^32 字节) 的限制,并且将文件数量限制为 65,535 (2^16‑1) 个。ZIP64 格式扩展将这些限制提升至 2^64。 + +[PptxOptions.setZip64Mode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#getZip64Mode) 方法允许您在保存 Office Open XML 文件时选择何时使用 ZIP64 格式扩展。 + +此方法可配合以下模式使用: + +- [IfNecessary] 仅在演示文稿超出上述限制时使用 ZIP64 格式扩展。这是默认模式。 +- [Never] 从不使用 ZIP64 格式扩展。 +- [Always] 始终使用 ZIP64 格式扩展。 + +以下代码演示了如何在启用 ZIP64 格式扩展的情况下将演示文稿保存为 PPTX: +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="注意" color="warning" %}} +当使用 [Zip64Mode.Never](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zip64mode/#Never) 保存时,如果演示文稿无法以 ZIP32 格式保存,将抛出 [PptxException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxexception/)。 +{{% /alert %}} + +## **保存演示文稿时不刷新缩略图** + +[PptxOptions.setRefreshThumbnail](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pptxoptions/#setRefreshThumbnail) 方法控制将演示文稿保存为 PPTX 时的缩略图生成: + +- 若设为 `true`,保存期间刷新缩略图。这是默认值。 +- 若设为 `false`,保留当前缩略图。如果演示文稿没有缩略图,则不生成。 + +以下代码将演示文稿保存为 PPTX,且不刷新其缩略图。 +```js +let pptxOptions = new aspose.slides.PptxOptions(); +pptxOptions.setRefreshThumbnail(false); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions); +} +finally { + presentation.dispose(); +} +``` + + +{{% alert title="信息" color="info" %}} +此选项有助于减少以 PPTX 格式保存演示文稿所需的时间。 +{{% /alert %}} + +## **以百分比保存进度更新** + +通过在 [SaveOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/) 及其子类上使用 [setProgressCallback](https://reference.aspose.com/slides/nodejs-java/aspose.slides/saveoptions/#setProgressCallback) 方法来配置保存进度报告。提供实现了 [IProgressCallback](https://reference.aspose.com/slides/java/com.aspose.slides/iprogresscallback/) 接口的 Java 代理;在导出期间,回调会接收定期的百分比更新。 + +以下代码片段展示了如何使用 `IProgressCallback`。 +```javascript +const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", { + reporting: function(progressValue) { + // 在此使用进度百分比值。 + const progress = Math.floor(progressValue); + console.log(`${progress}% of the file has been converted.`); + } +}); + +let saveOptions = new aspose.slides.PdfOptions(); +saveOptions.setProgressCallback(ExportProgressHandler); + +let presentation = new aspose.slides.Presentation("Sample.pptx"); +try { + presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="信息" color="info" %}} +Aspose 使用其自身 API 开发了一个 [免费 PowerPoint Splitter 应用](https://products.aspose.app/slides/splitter)。该应用可通过将选定幻灯片另存为新的 PPTX 或 PPT 文件,将演示文稿拆分为多个文件。 +{{% /alert %}} + +## **常见问题** + +**是否支持“快速保存”(增量保存),仅写入更改?** + +否。每次保存都会创建完整的目标文件;不支持增量“快速保存”。 + +**从多个线程保存相同的 Presentation 实例是否线程安全?** + +否。一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 实例[不是线程安全的](/slides/zh/nodejs-java/multithreading/);请在单个线程中进行保存。 + +**保存时超链接和外部链接文件会怎样?** + +[Hyperlinks](/slides/zh/nodejs-java/manage-hyperlinks/) 会被保留。外部链接文件(例如通过相对路径的视频)不会自动复制——请确保引用的路径仍然可访问。 + +**我可以设置/保存文档元数据(作者、标题、公司、日期)吗?** + +是。支持标准 [document properties](/slides/zh/nodejs-java/presentation-properties/),并将在保存时写入文件。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/modern-api/_index.md b/zh/nodejs-java/developer-guide/modern-api/_index.md index 09eb663557..5fb10d692f 100644 --- a/zh/nodejs-java/developer-guide/modern-api/_index.md +++ b/zh/nodejs-java/developer-guide/modern-api/_index.md @@ -7,48 +7,47 @@ keywords: "跨平台 现代 API" description: "现代 API" --- -## 介绍 +## **简介** -Aspose Slides 在历史上依赖于 java.awt,并在公共 API 中包含以下类: +Historically, Aspose Slides has a dependency on java.awt and has in the public API the following classes from there: - [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) - [BufferedImage](https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html) -从版本 24.4 开始,这个公共 API 被声明为过时。 +As of version 24.4, this public API is declared deprecated. -为了解决对这些类的依赖,我们添加了所谓的“现代 API”——即应该代替过时 API 使用的 API,其签名包含对 BufferedImage 的依赖。Graphics2D 被声明为过时,其支持从公共 Slides API 中移除。 +In order to get rid of dependencies on these classes, we added the so-called "Modern API" - i.e. the API that should be used instead of the deprecated one, whose signatures contain dependencies on BufferedImage. Graphics2D is declared deprecated and its support is removed from the public Slides API. -对依赖 System.Drawing 的过时公共 API 的移除将在 24.8 版本中进行。 +Removal of the deprecated public API with dependencies on System.Drawing will be in release 24.8. -## 现代 API +## **现代 API** -向公共 API 添加了以下类和枚举: +Added the following classes and enums to the public API: -- IImage - 表示光栅或矢量图像。 -- ImageFormat - 表示图像的文件格式。 -- Images - 实例化和处理 IImage 接口的方法。 +- IImage - represents the raster or vector image. +- ImageFormat - represents the file format of the image. +- Images - methods to instantiate and work with the IImage class. -请注意,IImage 是可处置的(它实现了 IDisposable 接口,其使用应包裹在 using 中或以其他方便的方式处置)。 - -使用新 API 的典型场景如下所示: +Please note that IImage is disposable (it implements the IDisposable class and its use should be wrapped in using or dispose-it in another convenient way). +A typical scenario of using the new API may look as follows: ``` javascript var pres = new aspose.slides.Presentation(); try { var ppImage; - // 从磁盘文件实例化 IImage 的可处置实例。 + // 实例化一个可释放的 IImage 实例,来自磁盘上的文件。 var image = aspose.slides.Images.fromFile("image.png"); try { - // 通过将 IImage 实例添加到演示文稿的图像中来创建 PowerPoint 图像。 + // 通过向演示文稿的图像集合添加 IImage 实例来创建 PowerPoint 图像。 ppImage = pres.getImages().addImage(image); } finally { if (image != null) image.dispose(); } - // 在幻灯片 #1 上添加图片形状 + // 在第 1 张幻灯片上添加图片形状。 pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, ppImage); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); - // 获取表示幻灯片 #1 的 IImage 实例。 + // 获取表示第 1 张幻灯片的 IImage 实例。 var slideImage = pres.getSlides().get_Item(0).getImage(size); try { // 将图像保存到磁盘。 @@ -61,11 +60,12 @@ try { } ``` -## 用现代 API 替换旧代码 -一般来说,您需要用新的方法替换对旧方法(使用 ImageIO)的调用。 +## **用现代 API 替换旧代码** + +In general, you will need to replace the call to the old method using ImageIO with the new one. -旧: +Old: ``` javascript var imageio = java.import("javax.imageio.ImageIO"); var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); @@ -73,7 +73,8 @@ var slideImage = pres.getSlides().get_Item(0).getThumbnail(size); var file = java.newInstanceSync("java.io.File", "image.png"); imageio.write(slideImage, "PNG", file); ``` -新: + +New: ``` javascript var size = java.newInstanceSync("java.awt.Dimension", 1920, 1080); var slideImage = pres.getSlides().get_Item(0).getImage(size); @@ -81,10 +82,10 @@ slideImage.save("image.png", aspose.slides.ImageFormat.Png); slideImage.dispose(); ``` -### 获取幻灯片缩略图 -使用过时 API 的代码: +### **获取幻灯片缩略图** +Code using a deprecated API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -97,8 +98,8 @@ try { } ``` -现代 API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -110,10 +111,10 @@ try { } ``` -### 获取形状缩略图 -使用过时 API 的代码: +### **获取形状缩略图** +Code using a deprecated API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -126,8 +127,8 @@ try { } ``` -现代 API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -139,10 +140,10 @@ try { } ``` -### 获取演示文稿缩略图 -使用过时 API 的代码: +### **获取演示文稿缩略图** +Code using a deprecated API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -160,8 +161,8 @@ try { } ``` -现代 API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation("pres.pptx"); try { @@ -184,10 +185,10 @@ try { } ``` -### 向演示文稿添加图片 -使用过时 API 的代码: +### **向演示文稿添加图片** +Code using a deprecated API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -202,8 +203,8 @@ try { } ``` -现代 API: +Modern API: ``` javascript var pres = new aspose.slides.Presentation(); try { @@ -217,26 +218,27 @@ try { } ``` -## 将要移除的方法及其在现代 API 中的替换 -### 演示文稿 -| 方法签名 | 替换方法签名 | +## **将在现代 API 中被删除的方法及其替代方案** + +### **Presentation** +| 方法签名 | 替代方法签名 | |-----------------------------------------------|---------------------------------------------------------| -| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | -| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options) | public final IImage[] getImages(IRenderingOptions options) | +| public final BufferedImage[] getThumbnails(IRenderingOptions options, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides) | public final IImage[] getImages(IRenderingOptions options, int[] slides) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | public final IImage[] getImages(IRenderingOptions options, int[] slides, float scaleX, float scaleY) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, int[] slides, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, int[] slides, Dimension imageSize) | | public final BufferedImage[] getThumbnails(IRenderingOptions options, Dimension imageSize) | public final IImage[] getImages(IRenderingOptions options, Dimension imageSize) | -### 形状 -| 方法签名 | 替换方法签名 | +### **Shape** +| 方法签名 | 替代方法签名 | |----------------------------------------------------------------------|-------------------------------------------------------------------| -| public final BufferedImage getThumbnail() | public final IImage getImage() | +| public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(int bounds, float scaleX, float scaleY) | public final IImage getImage(int bounds, float scaleX, float scaleY) | -### 幻灯片 -| 方法签名 | 替换方法签名 | +### **Slide** +| 方法签名 | 替代方法签名 | |----------------------------------------------------------------------|-----------------------------------------------------------------------| | public final BufferedImage getThumbnail() | public final IImage getImage() | | public final BufferedImage getThumbnail(float scaleX, float scaleY) | public final IImage getImage(float scaleX, float scaleY) | @@ -245,45 +247,53 @@ try { | public final BufferedImage getThumbnail(IRenderingOptions options, Dimension imageSize) | public final IImage getImage(IRenderingOptions options, Dimension imageSize) | | public final BufferedImage getThumbnail(ITiffOptions options) | public final IImage getImage(ITiffOptions options) | | public final BufferedImage getThumbnail(Dimension imageSize) | public final IImage getImage(Dimension imageSize) | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | 将完全删除 | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | 将完全删除 | -| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | 将完全删除 | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY) | Will be deleted completely | +| public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize) | Will be deleted completely | -### 输出 -| 方法签名 | 替换方法签名 | +### **Output** +| 方法签名 | 替代方法签名 | |-----------------------------------------------------------------|-------------------------------------------------------------| | public final IOutputFile add(String path, BufferedImage image) | public final IOutputFile add(String path, IImage image) | -### ImageCollection -| 方法签名 | 替换方法签名 | +### **ImageCollection** +| 方法签名 | 替代方法签名 | |-------------------------------------------|--------------------------------------------| -| public final IPPImage addImage(BufferedImage image) | public final IPPImage addImage(IImage image) | +| public final PPImage addImage(BufferedImage image) | public final PPImage addImage(IImage image) | -### PPImage -| 方法签名 | 替换方法签名 | +### **PPImage** +| 方法签名 | 替代方法签名 | |--------------------------------------|-----------------------------------------| | public final BufferedImage getSystemImage() | public final IImage getImage() | -### PatternFormat -| 方法签名 | 替换方法签名 | +### **PatternFormat** +| 方法签名 | 替代方法签名 | |-----------------------------------------------------------|-----------------------------------------------------| -| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | -| public final BufferedImage getTileImage(Color background, Color foreground) |public final IImage getTile(Color background, Color foreground) | +| public final BufferedImage getTileImage(Color styleColor) | public final IImage getTile(Color styleColor) | +| public final BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTile(Color background, Color foreground) | -### PatternFormatEffectiveData -| 方法签名 | 替换方法签名 | +### **PatternFormatEffectiveData** +| 方法签名 | 替代方法签名 | |-----------------------------------------------------------|-----------------------------------------------------| | public final java.awt.image.BufferedImage getTileImage(Color background, Color foreground) | public final IImage getTileIImage(Color background, Color foreground) | +## **Graphics2D 支持将被取消** + +Methods with [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) are declared deprecated and their support will be removed from the public API. + +The part of the API that uses it will be removed: +[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) + +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) +- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/#renderToGraphics-aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) -## API 对 Graphics2D 的支持将被中止 +# **常见问题** -包含 [Graphics2D](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) 的方法被声明为过时,其支持将从公共 API 中移除。 +**IImage 相较于 Image/Bitmap 的实际优势是什么?** -使用它的 API 部分将被移除: +[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) 统一了光栅图和矢量图的操作,并通过 [ImageFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/imageformat/) 简化了多种格式的保存。 -[幻灯片](https://reference.aspose.com/slides/java/com.aspose.slides/slide/) +**Modern API 会影响生成缩略图的性能吗?** -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, float scaleX, float scaleY)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-float-float-) -- [public final void renderToGraphics(IRenderingOptions options, Graphics2D graphics, Dimension renderingSize)](https://reference.aspose.com/slides/java/com.aspose.slides/slide/#renderToGraphics-com.aspose.slides.IRenderingOptions-java.awt.Graphics2D-java.awt.Dimension-) \ No newline at end of file +将 `getThumbnail` 切换为 `getImage` 并不会导致性能下降:新方法在保留渲染选项的同时,提供了相同的图像生成能力。具体的提升或下降取决于使用场景,但功能上两者是等价的。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/powerpoint-animation/_index.md b/zh/nodejs-java/developer-guide/powerpoint-animation/_index.md new file mode 100644 index 0000000000..6e09250b09 --- /dev/null +++ b/zh/nodejs-java/developer-guide/powerpoint-animation/_index.md @@ -0,0 +1,82 @@ +--- +title: PowerPoint 动画 +type: docs +weight: 150 +url: /zh/nodejs-java/powerpoint-animation/ +keywords: "PowerPoint 动画" +description: "PowerPoint 动画,使用 Aspose.Slides 的 PowerPoint 幻灯片动画。" +--- + +由于演示文稿旨在展示内容,在创建它们时始终会考虑其视觉外观和交互行为。 + +**PowerPoint animation** 在使演示文稿引人注目、吸引观众方面发挥着重要作用。Aspose.Slides for Node.js via Java 提供了广泛的选项来为 PowerPoint 演示文稿添加动画: + +- 对形状、图表、表格、OLE 对象及其他演示文稿元素应用各种类型的 PowerPoint 动画效果。 +- 在单个形状上使用多个 PowerPoint 动画效果。 +- 使用动画时间线来控制动画效果。 +- 创建自定义动画。 + +在 Aspose.Slides for Node.js via Java 中,可以在形状上应用各种动画效果。由于幻灯片上的每个元素(包括文本、图片、OLE 对象、表格等)都被视为形状,这意味着我们可以对幻灯片的每个元素应用动画效果。 + +## **动画效果** +Aspose.Slides 支持 **150+ 动画效果**,包括诸如 Bounce、PathFootball、Zoom 效果等基础动画效果,以及 OLEObjectShow、OLEObjectOpen 等特定动画效果。您可以在 [**EffectType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/effecttype/) 枚举中找到动画效果的完整列表。 + +此外,这些动画效果还可以与以下效果组合使用: + +- [ColorEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ColorEffect) +- [CommandEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommandEffect) +- [FilterEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/FilterEffect) +- [MotionEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/MotionEffect) +- [PropertyEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PropertyEffect) +- [RotationEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/RotationEffect) +- [ScaleEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ScaleEffect) +- [SetEffect](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SetEffect) + +## **自定义动画** +在 Aspose.Slides 中可以创建自己的 **自定义动画**。通过将多个行为组合成新的自定义动画即可实现此目的。 + +[**Behavior**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Behavior) 是任何 PowerPoint 动画效果的构建单元。所有动画效果实际上是一组行为组合成的策略。您可以将行为组合成一次自定义动画,并在其他演示文稿中重复使用。如果向标准 PowerPoint 动画效果中添加新的行为——它将成为另一个自定义动画。例如,您可以向动画添加重复行为,使其重复若干次。 + +[**Animation Point**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Point) 是应应用行为的点。 + +## **动画时间线** +[**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) 是一组应用于特定形状的动画效果的集合。 + +[**Timeline**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AnimationTimeLine) 是在特定幻灯片中使用的 Sequence 集合。它是自 PowerPoint 2002 起引入的动画引擎。在早期 PowerPoint 版本中,向演示文稿添加动画效果非常困难,只能通过各种变通方法实现。Timeline 用于取代旧的 AnimationSettings 类,并为 PowerPoint 动画提供更清晰的对象模型。每个幻灯片只能拥有一个动画时间线。 + +## **交互式动画** +[**Trigger**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectTriggerType) 允许定义用户操作(例如按钮点击),从而启动特定动画。Trigger 仅在最新的 PowerPoint 版本中加入。 + +## **形状动画** +Aspose.Slides 允许对形状应用动画,形状可以是文本、矩形、线条、框架、OLE 对象等。 + +{{% alert color="primary" %}} +了解更多 [**About Shape Animation**](/slides/zh/nodejs-java/shape-animation/). +{{% /alert %}} + +## **动画图表** +要创建动画图表,您应使用与形状相同的所有类。不过,PowerPoint 动画只能作用于图表分类或图表系列。您也可以对分类元素或系列元素应用动画效果。 + +{{% alert color="primary" %}} +了解更多 [**About Animated Charts**](/slides/zh/nodejs-java/animated-charts/). +{{% /alert %}} + +## **动画文本** +除了动画文本之外,还可以对段落应用动画。 + +{{% alert color="primary" %}} +了解更多 [**About Animated Text**](/slides/zh/nodejs-java/animated-text/). +{{% /alert %}} + +## **常见问题** +**导出为 PDF 时动画会被保留吗?** + +不。PDF 是静态格式,动画和 [slide transitions](/slides/zh/nodejs-java/slide-transition/) 不会播放。如果需要动态效果,请导出为 [HTML5](/slides/zh/nodejs-java/export-to-html5/)、[animated GIF](/slides/zh/nodejs-java/convert-powerpoint-to-animated-gif/) 或 [video](/slides/zh/nodejs-java/convert-powerpoint-to-video/) 等格式。 + +**我可以将动画演示文稿转换为视频并控制帧率和帧大小吗?** + +可以。您可以 [render the presentation as frames](/slides/zh/nodejs-java/convert-powerpoint-to-video/) 并将其编码为视频(例如通过 ffmpeg),从而选择 FPS 和分辨率。渲染期间会播放动画和幻灯片切换效果。 + +**在使用 ODP(而不仅是 PPTX)时动画是否保持完整?** + +PPT、PPTX 和 ODP 均受支持,可用于 [reading](/slides/zh/nodejs-java/open-presentation/) 和 [writing](/slides/zh/nodejs-java/save-presentation/),但格式差异可能导致某些效果在外观或行为上略有不同。请使用真实样本验证关键情况。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-comments/_index.md b/zh/nodejs-java/developer-guide/presentation-comments/_index.md new file mode 100644 index 0000000000..628cbd6d36 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-comments/_index.md @@ -0,0 +1,225 @@ +--- +title: 演示文稿批注 +type: docs +weight: 100 +url: /zh/nodejs-java/presentation-comments/ +keywords: "批注, PowerPoint 批注, PowerPoint 演示文稿, Java, Aspose.Slides for Node.js via Java" +description: "在 PowerPoint 演示文稿中使用 JavaScript 添加批注和回复" +--- + +在 PowerPoint 中,批注显示为幻灯片上的备注或注释。点击批注后,批注的内容或信息会显示出来。 + +## **为什么向演示文稿添加批注?** + +在审阅演示文稿时,您可能希望使用批注来提供反馈或与同事沟通。 + +为了让您在 PowerPoint 演示文稿中使用批注,Aspose.Slides for Node.js via Java 提供以下功能: + +* [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类,包含作者集合(来自 [CommentAuthorCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthorCollection) 类)。作者向幻灯片添加批注。 +* [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection) 类,包含各个作者的批注集合。 +* [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) 类,包含作者及其批注的信息:谁添加了批注、添加批注的时间、批注的位置等。 +* [CommentAuthor](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentAuthor) 类,包含单个作者的信息:作者姓名、缩写、与作者姓名关联的批注等。 + +## **添加幻灯片批注** +下面的 JavaScript 代码展示了如何向 PowerPoint 演示文稿中的幻灯片添加批注: +```javascript +// 实例化 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 添加一个空幻灯片 + pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0)); + // 添加作者 + var author = pres.getCommentAuthors().addAuthor("Jawad", "MF"); + // 设置批注位置 + var point = java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)); + // 为作者在幻灯片 1 上添加批注 + author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, java.newInstanceSync("java.util.Date")); + // 为作者在幻灯片 2 上添加批注 + author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, java.newInstanceSync("java.util.Date")); + // 访问 ISlide 1 + var slide = pres.getSlides().get_Item(0); + // 当参数为 null 时,会将所有作者的批注带到选定的幻灯片 + var Comments = slide.getSlideComments(author); + // 访问幻灯片 1 上索引 0 的批注 + var str = Comments[0].getText(); + pres.save("Comments_out.pptx", aspose.slides.SaveFormat.Pptx); + if (Comments.length > 0) { + // 选择索引 0 处的作者批注集合 + var commentCollection = Comments[0].getAuthor().getComments(); + var Comment = commentCollection.get_Item(0).getText(); + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **访问幻灯片批注** +下面的 JavaScript 代码展示了如何访问 PowerPoint 演示文稿中幻灯片的现有批注: +```javascript +var pres = new aspose.slides.Presentation("Comments1.pptx"); +try { + for (let i = 0; i < pres.getCommentAuthors().size(); i++) { + let commentAuthor = pres.getCommentAuthors().get_Item(i); + for (let j = 0; j < commentAuthor.getComments().size(); j++) { + const comment = commentAuthor.getComments().get_Item(j); + console.log("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() + " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n"); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **回复批注** +父批注是批注或回复层级结构中的顶层或原始批注。使用来自 [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) 类的 [getParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#getParentComment--) 或 [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) 方法,您可以设置或获取父批注。 + +下面的 JavaScript 代码展示了如何添加批注并获取其回复: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 添加批注 + var author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A."); + var comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + // 为 comment1 添加回复 + var author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B."); + var reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply1.setParentComment(comment1); + // 为 comment1 添加另一个回复 + var reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply2.setParentComment(comment1); + // 为已有回复添加回复 + var subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + subReply.setParentComment(reply2); + var comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + var reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(10), java.newFloat(10)), java.newInstanceSync("java.util.Date")); + reply3.setParentComment(comment3); + // 在控制台显示批注层级结构 + var slide = pres.getSlides().get_Item(0); + var comments = slide.getSlideComments(null); + for (var i = 0; i < comments.length; i++) { + var comment = comments[i]; + while (comment.getParentComment() != null) { + console.log("\t"); + comment = comment.getParentComment(); + } + console.log((comments[i].getAuthor().getName() + " : ") + comments[i].getText()); + console.log(); + } + pres.save("parent_comment.pptx", aspose.slides.SaveFormat.Pptx); + // 删除 comment1 以及它的所有回复 + comment1.remove(); + pres.save("remove_comment.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" title="Attention" %}} + +* 当使用来自 [Comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment) 类的 [Remove](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#remove--) 方法删除批注时,该批注的回复也会被删除。 +* 如果 [setParentComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Comment#setParentComment-aspose.slides.IComment-) 的设置导致循环引用,将抛出 [PptxEditException](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PptxEditException)。 + +{{% /alert %}} + +## **添加现代批注** +2021 年,Microsoft 在 PowerPoint 中引入了 *现代批注*。现代批注功能显著提升了 PowerPoint 的协作能力。通过现代批注,PowerPoint 用户可以解决批注、将批注锚定到对象和文本上,并且更轻松地进行交互。 + +在 [Aspose.Slides for Node.js via Java 21.11](https://docs.aspose.com/slides/nodejs-java/aspose-slides-for-java-21-11-release-notes/) 中,我们通过添加 [ModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ModernComment) 类实现了对现代批注的支持。向 [CommentCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection) 类中添加了 [addModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#addModernComment-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) 和 [insertModernComment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CommentCollection#insertModernComment-int-java.lang.String-aspose.slides.ISlide-aspose.slides.IShape-java.awt.geom.Point2D$Float-java.util.Date-) 方法。 + +下面的 JavaScript 代码展示了如何向 PowerPoint 演示文稿的幻灯片添加现代批注: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA"); + var modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(100), java.newFloat(100)), java.newInstanceSync("java.util.Date")); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **删除批注** + +### **删除所有批注和作者** +下面的 JavaScript 代码展示了如何在演示文稿中删除所有批注和作者: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // 删除演示文稿中的所有批注 + for (let i = 0; i < presentation.getCommentAuthors().size(); i++) { + var author = presentation.getCommentAuthors().get_Item(i) + author.getComments().clear(); + } + // 删除所有作者 + presentation.getCommentAuthors().clear(); + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **删除特定批注** +下面的 JavaScript 代码展示了如何删除幻灯片上的特定批注: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var slide = presentation.getSlides().get_Item(0); + // 添加批注... + var author = presentation.getCommentAuthors().addAuthor("Author", "A"); + author.getComments().addComment("comment 1", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.2), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + author.getComments().addComment("comment 2", slide, java.newInstanceSync("com.aspose.slides.Point2DFloat", java.newFloat(0.3), java.newFloat(0.2)), java.newInstanceSync("java.util.Date")); + // 删除所有包含 "comment 1" 文本的批注 + + + for (var i = 0; i < presentation.getCommentAuthors().length; i++) { + var commentAuthor = presentation.getCommentAuthors().get_Item(i); + var toRemove = java.newInstanceSync("java.util.ArrayList"); + for (let j = 0; j < slide.getSlideComments(commentAuthor).size(); j++) { + let comment = slide.getSlideComments(commentAuthor).get_Item(j); + if (comment.getText() === "comment 1") { + toRemove.add(comment); + } + } + for (var i = 0; i < toRemove.length; i++) { + var comment = toRemove.get_Item(i); + commentAuthor.getComments().remove(comment); + } + } + presentation.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **常见问题** + +**Aspose.Slides 是否支持现代批注的“已解决”等状态?** + +是的。[Modern comments](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/) 提供了 [getStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/getstatus/) 和 [setStatus](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncomment/setStatus/) 方法;您可以读取和设置 [comment’s state](https://reference.aspose.com/slides/nodejs-java/aspose.slides/moderncommentstatus/)(例如,将其标记为已解决),此状态会保存在文件中并被 PowerPoint 识别。 + +**是否支持线程式讨论(回复链),以及是否有嵌套深度限制?** + +是的。每个批注都可以引用其 [parent comment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/comment/getparentcomment/),从而实现任意的回复链。API 未声明具体的嵌套深度限制。 + +**批注标记的位置在幻灯片上使用的坐标系是什么?** + +该位置以浮点坐标点的形式存储在幻灯片的坐标系中。这使您能够将批注标记精确放置在所需位置。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md new file mode 100644 index 0000000000..4704cce41d --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-blob/_index.md @@ -0,0 +1,209 @@ +--- +title: 管理 Blob +type: docs +weight: 10 +url: /zh/nodejs-java/manage-blob/ +description: 使用 JavaScript 在 PowerPoint 演示文稿中管理 Blob。使用 Blob 通过 JavaScript 减少 PowerPoint 演示文稿的内存消耗。使用 JavaScript 通过 Blob 将大型文件添加到 PowerPoint 演示文稿。使用 JavaScript 通过 Blob 从 PowerPoint 演示文稿导出大型文件。使用 JavaScript 将大型 PowerPoint 演示文稿以 Blob 形式加载。 +--- + +## **关于 BLOB** + +**BLOB**(**Binary Large Object**)通常是以二进制格式保存的大型项目(照片、演示文稿、文档或媒体)。 + +Aspose.Slides for Node.js via Java 允许您以一种在处理大型文件时减少内存消耗的方式为对象使用 BLOB。 + +{{% alert title="Info" color="info" %}} +为了规避与流交互时的某些限制,Aspose.Slides 可能会复制流的内容。通过流加载大型演示文稿会导致复制演示文稿的内容,从而导致加载缓慢。因此,当您打算加载大型演示文稿时,我们强烈建议使用演示文稿的文件路径,而不是其流。 +{{% /alert %}} + +## **使用 BLOB 减少内存消耗** + +### **通过 BLOB 将大型文件添加到演示文稿** + +[Aspose.Slides](/slides/zh/nodejs-java/) for Node.js via Java 允许您通过 BLOB 过程将大型文件(在本例中为大型视频文件)添加到演示文稿,以减少内存消耗。 + +此 JavaScript 示例展示了如何通过 BLOB 过程将大型视频文件添加到演示文稿: +```javascript +var pathToVeryLargeVideo = "veryLargeVideo.avi"; +// 创建一个将添加视频的新演示文稿 +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToVeryLargeVideo); + try { + // 让我们将视频添加到演示文稿 - 我们选择 KeepLocked 行为,因为我们 + // 不打算访问 "veryLargeVideo.avi" 文件. + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addVideoFrame(0, 0, 480, 270, video); + // 保存演示文稿。当输出大型演示文稿时,内存消耗 + // 在整个 pres 对象的生命周期内保持低水平 + pres.save("presentationWithLargeVideo.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **通过 BLOB 从演示文稿导出大型文件** + +Aspose.Slides for Node.js via Java 允许您通过 BLOB 过程从演示文稿中导出大型文件(本例中为音频或视频文件)。例如,您可能需要从演示文稿中提取大型媒体文件,但不希望该文件加载到计算机内存中。通过 BLOB 过程导出文件,可保持内存消耗低。 + +以下 JavaScript 代码演示了上述操作: +```javascript +var hugePresentationWithAudiosAndVideosFile = "LargeVideoFileTest.pptx"; +var loadOptions = new aspose.slides.LoadOptions(); +// 锁定源文件且不将其加载到内存中 +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +// 创建 Presentation 实例,并锁定 "hugePresentationWithAudiosAndVideos.pptx" 文件。 +var pres = new aspose.slides.Presentation(hugePresentationWithAudiosAndVideosFile, loadOptions); +try { + // 将每个视频保存到文件。为防止高内存使用,我们需要一个缓冲区来 + // 将演示文稿的视频流数据传输到新创建的视频文件的流中。 + var buffer = new byte[8 * 1024]; + // 遍历所有视频 + for (var index = 0; index < pres.getVideos().size(); index++) { + var video = pres.getVideos().get_Item(index); + // 打开演示文稿的视频流。请注意,我们有意避免访问属性 + // 如 video.BinaryData - 因为此属性返回包含完整视频的字节数组,进而 + // 导致字节被加载到内存中。我们使用 video.GetStream,它返回 Stream 且不会 + // 需要我们将整个视频加载到内存中。 + var presVideoStream = video.getStream(); + try { + var outputFileStream = java.newInstanceSync("java.io.FileOutputStream", ("video" + index) + ".avi"); + try { + var bytesRead; + while ((bytesRead = presVideoStream.read(buffer, 0, buffer.length)) > 0) { + outputFileStream.write(buffer, 0, bytesRead); + } + } finally { + outputFileStream.close(); + } + } finally { + presVideoStream.close(); + } + // 无论视频或演示文稿的大小如何,内存消耗都将保持低水平。 + } + // 如有必要,您可以对音频文件执行相同的步骤。 +} catch (e) {console.log(e); +} finally { + pres.dispose(); +} +``` + + +### **在演示文稿中以 BLOB 形式添加图像** + +使用 [**ImageCollection**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) 类和 [**ImageCollection** ](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) 类的方法,您可以将大型图像作为流添加,以使其被视为 BLOB。 + +此 JavaScript 代码展示了如何通过 BLOB 过程添加大型图像: +```javascript +var pathToLargeImage = "large_image.jpg"; +// 创建一个将要添加图像的新演示文稿。 +var pres = new aspose.slides.Presentation(); +try { + var fileStream = java.newInstanceSync("java.io.FileInputStream", pathToLargeImage); + try { + // 将图像添加到演示文稿 - 我们选择 KeepLocked 行为,因为我们 + // 不打算访问 "largeImage.png" 文件。 + var img = pres.getImages().addImage(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, 300, 200, img); + // 保存演示文稿。当输出大型演示文稿时,内存消耗 + // 在整个 pres 对象的生命周期内保持低水平。 + pres.save("presentationWithLargeImage.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (fileStream != null) { + fileStream.close(); + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **内存和大型演示文稿** + +通常,加载大型演示文稿时,计算机需要大量临时内存。演示文稿的所有内容都会加载到内存中,而加载该演示文稿的文件则不再被使用。 + +考虑一个包含 1.5 GB 视频文件的大型 PowerPoint 演示文稿(large.pptx)。加载该演示文稿的标准方法在以下 JavaScript 代码中描述: + +```javascript +var pres = new aspose.slides.Presentation("large.pptx"); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +但此方法会消耗约 1.6 GB 的临时内存。 + +### **以 BLOB 方式加载大型演示文稿** + +通过 BLOB 过程,您可以在使用很少内存的情况下加载大型演示文稿。以下 JavaScript 代码展示了使用 BLOB 过程加载大型演示文稿文件(large.pptx)的实现: + +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +var pres = new aspose.slides.Presentation("large.pptx", loadOptions); +try { + pres.save("large.pdf", aspose.slides.SaveFormat.Pdf); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **更改临时文件夹** + +使用 BLOB 过程时,计算机会在默认的临时文件夹中创建临时文件。如果您希望将临时文件保存在其他文件夹中,可使用 `setTempFilesRootPath` 更改存储设置: + +```javascript +var loadOptions = new aspose.slides.LoadOptions(); +loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked); +loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true); +loadOptions.getBlobManagementOptions().setTempFilesRootPath("temp"); +``` + + +{{% alert title="Info" color="info" %}} +当您使用 `setTempFilesRootPath` 时,Aspose.Slides 不会自动创建用于存储临时文件的文件夹。您需要手动创建该文件夹。 +{{% /alert %}} + +## **常见问题** + +**Aspose.Slides 演示文稿中哪些数据被视为 BLOB 并受 BLOB 选项控制?** + +图像、音频和视频等大型二进制对象被视为 BLOB。当演示文稿被加载或保存时,整个演示文稿文件也涉及 BLOB 处理。这些对象受 BLOB 策略控制,允许您管理内存使用并在需要时将数据转存到临时文件。 + +**在加载演示文稿时,我在哪里配置 BLOB 处理规则?** + +使用 [LoadOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/loadoptions/) 与 [BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/)。在此可以设置 BLOB 的内存上限,是否允许临时文件,选择临时文件根路径,并选择源锁定行为。 + +**BLOB 设置会影响性能吗?我该如何在速度与内存之间平衡?** + +是的。将 BLOB 保持在内存中可最大化速度,但会增加 RAM 消耗;降低内存上限会将更多工作转移到临时文件,从而在牺牲额外 I/O 的情况下减少 RAM。使用 [setMaxBlobsBytesInMemory](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/setmaxblobsbytesinmemory/) 方法可为您的工作负载与环境找到合适的平衡。 + +**在打开极大(例如数 GB)演示文稿时,BLOB 选项有帮助吗?** + +是的。[BlobManagementOptions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/blobmanagementoptions/) 专为此类场景设计:启用临时文件并使用源锁定可显著降低峰值 RAM 使用并在处理极大演示文稿时保持稳定。 + +**在从流而非磁盘文件加载时,我可以使用 BLOB 策略吗?** + +是的。相同规则适用于流:演示文稿实例可以拥有并锁定输入流(取决于所选锁定模式),在允许时会使用临时文件,从而在处理过程中保持内存使用可预测。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md new file mode 100644 index 0000000000..19cf934764 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-hyperlinks/_index.md @@ -0,0 +1,313 @@ +--- +title: 管理超链接 +type: docs +weight: 20 +url: /zh/nodejs-java/manage-hyperlinks/ +keywords: "PowerPoint 超链接, 文本超链接, 幻灯片超链接, 形状超链接, 图像超链接, 视频超链接, Java" +description: "如何在 JavaScript 中向 PowerPoint 演示文稿添加超链接" +--- + +超链接是对对象、数据或某处位置的引用。以下是 PowerPoint 演示文稿中常见的超链接: + +* 链接到文本、形状或媒体中的网站 +* 链接到幻灯片 + +Aspose.Slides for Node.js via Java 使您能够在演示文稿中执行许多与超链接相关的任务。 + +{{% alert color="primary" %}} + +您可能想查看 Aspose 简单版,[免费在线 PowerPoint 编辑器。](https://products.aspose.app/slides/editor) + +{{% /alert %}} + +## **添加 URL 超链接** + +### **添加 URL 超链接到文本** + +此 JavaScript 代码演示如何向文本添加网站超链接: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + presentation.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +### **添加 URL 超链接到形状或框架** + +此 JavaScript 示例代码演示如何向形状添加网站超链接: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50); + shape.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **添加 URL 超链接到媒体** + +Aspose.Slides 允许您向图像、音频和视频文件添加超链接。 + +此示例代码演示如何向 **图像** 添加超链接: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加图像 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + // 在幻灯片 1 上基于先前添加的图像创建图片框 + var pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pictureFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +此示例代码演示如何向 **音频文件** 添加超链接: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var audio = pres.getAudios().addAudio(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.mp3"))); + var audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio); + audioFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +此示例代码演示如何向 **视频** 添加超链接: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var video = pres.getVideos().addVideo(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "video.avi"))); + var videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video); + videoFrame.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} + +您可能想查看 *[管理 OLE](/slides/zh/nodejs-java/manage-ole/)*。 + +{{% /alert %}} + +## **使用超链接创建目录** + +由于超链接允许您添加对对象或位置的引用,您可以使用它们创建目录。 + +此示例代码演示如何使用超链接创建目录: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var firstSlide = pres.getSlides().get_Item(0); + var secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide()); + var contentTable = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 40, 40, 300, 100); + contentTable.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + contentTable.getTextFrame().getParagraphs().clear(); + var paragraph = new aspose.slides.Paragraph(); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + paragraph.setText("Title of slide 2 .......... "); + var linkPortion = new aspose.slides.Portion(); + linkPortion.setText("Page 2"); + linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide); + paragraph.getPortions().add(linkPortion); + contentTable.getTextFrame().getParagraphs().add(paragraph); + pres.save("link_to_slide.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **格式化超链接** + +### **颜色** + +使用 [setColorSource](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setColorSource-int-) 方法在 [Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) 类中,您可以设置超链接的颜色,也可以获取超链接的颜色信息。此功能首次在 PowerPoint 2019 中引入,因此涉及该属性的更改不适用于较旧的 PowerPoint 版本。 + +此示例代码演示在同一幻灯片上添加不同颜色的超链接的操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 450, 50, false); + shape1.addTextFrame("This is a sample of colored hyperlink."); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setColorSource(aspose.slides.HyperlinkColorSource.PortionFormat); + portionFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portionFormat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + var shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 450, 50, false); + shape2.addTextFrame("This is a sample of usual hyperlink."); + shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + pres.save("presentation-out-hyperlink.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在演示文稿中删除超链接** + +### **删除文本中的超链接** + +此 JavaScript 代码演示如何从演示文稿幻灯片中的文本删除超链接: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + // 检查形状是否支持文本框 (IAutoShape)。 + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // 遍历文本框中的段落 + for (let i1 = 0; i1 < autoShape.getTextFrame().getParagraphs().getCount(); i1++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i1); + // 遍历段落中的每个文本段 + for (let j1 = 0; j1 < paragraph.getPortions().getCount(); j1++) { + let portion = paragraph.getPortions().get_Item(j1) + portion.setText(portion.getText().replace("years", "months"));// 更改文本 + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// 更改格式 + } + } + } + } + } + // 保存修改后的演示文稿 + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **删除形状或框架中的超链接** + +此 JavaScript 代码演示如何从演示文稿幻灯片中的形状删除超链接: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + shape.getHyperlinkManager().removeHyperlinkClick(); + } + pres.save("pres-removed-hyperlinks.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **可变超链接** + +[Hyperlink](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink) 类是可变的。使用此类,您可以更改以下属性的值: + +- [Hyperlink.setTargetFrame(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTargetFrame-java.lang.String-) +- [Hyperlink.setTooltip(String value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setTooltip-java.lang.String-) +- [Hyperlink.setHistory(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHistory-boolean-) +- [Hyperlink.setHighlightClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setHighlightClick-boolean-) +- [Hyperlink.setStopSoundOnClick(boolean value)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Hyperlink#setStopSoundOnClick-boolean-) + +此代码片段演示如何向幻灯片添加超链接并随后编辑其工具提示: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 600, 50, false); + shape1.addTextFrame("Aspose: File Format APIs"); + var portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat(); + portionFormat.setHyperlinkClick(new aspose.slides.Hyperlink("https://www.aspose.com/")); + portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs"); + portionFormat.setFontHeight(32); + pres.save("presentation-out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **IHyperlinkQueries 支持的属性** + +您可以从演示文稿、幻灯片或定义了超链接的文本中访问 [HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries)。 + +- [Presentation.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation#getHyperlinkQueries--) +- [BaseSlide.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getHyperlinkQueries--) +- [TextFrame.getHyperlinkQueries()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getHyperlinkQueries--) + +[HyperlinkQueries](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries) 类支持以下方法和属性: + +- [HyperlinkQueries.getHyperlinkClicks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkClicks--) +- [HyperlinkQueries.getHyperlinkMouseOvers()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getHyperlinkMouseOvers--) +- [HyperlinkQueries.getAnyHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#getAnyHyperlinks--) +- [HyperlinkQueries.removeAllHyperlinks()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/HyperlinkQueries#removeAllHyperlinks--) + +## **常见问题** + +**如何创建不仅跳转到幻灯片,而是跳转到“节”或该节的第一张幻灯片的内部导航?** + +PowerPoint 中的节是幻灯片的分组;导航在技术上定位到特定幻灯片。要“跳转到节”,通常需要链接到该节的第一张幻灯片。 + +**我可以将超链接附加到母版幻灯片元素,使其在所有幻灯片上都有效吗?** + +可以。母版幻灯片和布局元素支持超链接。这些链接会出现在子幻灯片上,并在放映过程中可点击。 + +**导出为 PDF、HTML、图像或视频时,超链接会保留下来吗?** + +在 [PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/) 和 [HTML](/slides/zh/nodejs-java/convert-powerpoint-to-html/) 中会保留——链接通常会被保留。导出为 [images](/slides/zh/nodejs-java/convert-powerpoint-to-png/) 和 [video](/slides/zh/nodejs-java/convert-powerpoint-to-video/) 时,由于这些格式的性质(光栅帧/视频不支持超链接),点击功能不会保留。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md new file mode 100644 index 0000000000..d38cd25c7c --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/audio-frame/_index.md @@ -0,0 +1,237 @@ +--- +title: 使用 JavaScript 管理演示文稿中的音频 +linktitle: 音频帧 +type: docs +weight: 10 +url: /zh/nodejs-java/audio-frame/ +keywords: +- 音频 +- 音频帧 +- 缩略图 +- 添加音频 +- 音频属性 +- 音频选项 +- 提取音频 +- Node.js +- JavaScript +- Aspose.Slides +description: "在 Aspose.Slides for Node.js 中创建和控制音频帧——提供 JavaScript 示例,实现嵌入、修剪、循环以及在 PPT、PPTX 和 ODP 演示文稿中的播放配置。" +--- + +## **创建音频帧** + +Aspose.Slides for Node.js via Java 允许您向幻灯片添加音频文件。音频文件以音频帧的形式嵌入到幻灯片中。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 加载您想要嵌入到幻灯片中的音频文件流。 +4. 将嵌入的音频帧(包含音频文件)添加到幻灯片中。 +5. 设置由 [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioFrame) 对象公开的 [PlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AudioPlayModePreset) 和 `Volume`。 +6. 保存修改后的演示文稿。 + +下面的 JavaScript 代码演示了如何向幻灯片添加嵌入的音频帧: +```javascript +// 实例化一个表示演示文稿文件的 Presentation 类 +const pres = new aspose.slides.Presentation(); +try { + // 获取第一页幻灯片 + const sld = pres.getSlides().get_Item(0); + // 将 wav 音频文件加载为流 + const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav")); + // 添加音频帧 + const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr); + fstr.close(); + // 设置音频的播放模式和音量 + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto); + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud); + // 将 PowerPoint 文件写入磁盘 + pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **更改音频帧缩略图** + +将音频文件添加到演示文稿时,音频会以带有标准默认图像的帧形式显示(请参见下节中的图像)。您可以更改音频帧的预览图像(设置您喜欢的图像)。 + +下面的 JavaScript 代码演示了如何更改音频帧的缩略图或预览图像: +```javascript +const presentation = new aspose.slides.Presentation(); +try { + const slide = presentation.getSlides().get_Item(0); + // 向幻灯片添加音频帧并指定位置和尺寸。 + const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3"); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream); + audioStream.close(); + // 向演示文稿资源添加图像。 + let picture; + const image = aspose.slides.Images.fromFile("eagle.jpeg"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 为音频帧设置图像。 + audioFrame.getPictureFormat().getPicture().setImage(picture);// <----- + // 将修改后的演示文稿保存到磁盘 + presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **更改音频播放选项** + +Aspose.Slides for Node.js via Java 允许您更改控制音频播放或属性的选项。例如,您可以调节音频音量、设置音频循环播放,甚至隐藏音频图标。 + +The **Audio Options** pane in Microsoft PowerPoint: + +![示例1_图像](audio_frame_0.png) + +PowerPoint **音频选项** 与 Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) 属性对应: + +- **Start** 下拉列表对应 [AudioFrame.setPlayMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayMode) 方法 +- **Volume** 对应 [AudioFrame.setVolume](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolume) 方法 +- **Play Across Slides** 对应 [AudioFrame.setPlayAcrossSlides](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayAcrossSlides) 方法 +- **Loop until Stopped** 对应 [AudioFrame.setPlayLoopMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setPlayLoopMode) 方法 +- **Hide During Show** 对应 [AudioFrame.setHideAtShowing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setHideAtShowing) 方法 +- **Rewind after Playing** 对应 [AudioFrame.setRewindAudio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setRewindAudio) 方法 + +PowerPoint **编辑** 选项与 Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/) 属性对应: + +- **Fade In** 对应 [AudioFrame.setFadeInDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeInDuration) 方法 +- **Fade Out** 对应 [AudioFrame.setFadeOutDuration](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setFadeOutDuration) 方法 +- **Trim Audio Start Time** 对应 [AudioFrame.setTrimFromStart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromStart) 方法 +- **Trim Audio End Time** 的值等于音频时长减去 [AudioFrame.setTrimFromEnd](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setTrimFromEnd) 方法的值 + +PowerPoint **音量控制** 在音频控制面板上对应 [AudioFrame.setVolumeValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/#setVolumeValue) 方法。它允许您以百分比方式更改音频音量。 + +以下是更改音频播放选项的方法: + +1. [创建](#create-audio-frame) 或获取音频帧。 +2. 为要调整的音频帧属性设置新值。 +3. 保存修改后的 PowerPoint 文件。 + +下面的 JavaScript 代码演示了一个调整音频选项的操作: +```javascript +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + // 获取 AudioFrame 形状 + const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0); + // 将播放模式设置为点击播放 + audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick); + // 将音量设置为低 + audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low); + // 将音频设置为跨幻灯片播放 + audioFrame.setPlayAcrossSlides(true); + // 禁用音频循环 + audioFrame.setPlayLoopMode(false); + // 在幻灯片放映期间隐藏 AudioFrame + audioFrame.setHideAtShowing(true); + // 播放后将音频倒带到开始 + audioFrame.setRewindAudio(true); + // 将 PowerPoint 文件保存到磁盘 + pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +下面的 JavaScript 示例展示了如何添加带嵌入音频的新音频帧、进行修剪并设置淡入淡出时长: +```js +const pres = new aspose.slides.Presentation(); +try { + const slide = pres.getSlides().get_Item(0); + + const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3"))); + const audio = pres.getAudios().addAudio(audioData); + const audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio); + + // 设置剪辑开始偏移为 1.5 秒 + // 设置剪辑结束偏移为 2 秒 + // 设置淡入持续时间为 200 毫秒 + // 设置淡出持续时间为 500 毫秒 + + pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +以下代码示例展示了如何检索带嵌入音频的音频帧并将其音量设置为 85%: +```js +const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + + // 获取音频帧形状 + const audioFrame = slide.getShapes().get_Item(0); + + // 将音频音量设置为 85% + audioFrame.setVolumeValue(85.0); + + pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx); +} +finally { + pres.dispose(); +} +``` + + +## **提取音频** + +Aspose.Slides for Node.js via Java 允许您提取幻灯片放映过渡中使用的声音。例如,您可以提取特定幻灯片使用的声音。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例并加载包含音频的演示文稿。 +2. 通过索引获取相关幻灯片的引用。 +3. 访问该幻灯片的 [slideshow transitions](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BaseSlide#getSlideShowTransition--)。 +4. 以字节数据形式提取声音。 + +下面的 JavaScript 代码演示了如何提取幻灯片中使用的音频: +```javascript +// 实例化一个表示演示文稿文件的 Presentation 类 +const pres = new aspose.slides.Presentation("AudioSlide.pptx"); +try { + // 访问所需的幻灯片 + const slide = pres.getSlides().get_Item(0); + // 获取该幻灯片的幻灯片放映过渡效果 + const transition = slide.getSlideShowTransition(); + // 将声音提取为字节数组 + const audio = transition.getSound().getBinaryData(); + console.log("Length: " + audio.length); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**是否可以在多个幻灯片中重复使用相同的音频资源而不增加文件大小?** + +是的。将音频一次添加到演示文稿的共享 [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/),然后创建引用该现有资源的额外音频帧。这避免了媒体数据的重复,并使演示文稿大小保持可控。 + +**是否可以在不重新创建形状的情况下替换现有音频帧中的声音?** + +是的。对于链接声音,更新 [link path](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setlinkpathlong/) 以指向新文件。对于嵌入声音,使用演示文稿的另一个 [audio collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/getaudios/) 中的音频替换 [embedded audio](https://reference.aspose.com/slides/nodejs-java/aspose.slides/audioframe/setembeddedaudio/) 对象。帧的格式和大多数播放设置保持不变。 + +**修剪是否会更改存储在演示文稿中的底层音频数据?** + +否。修剪仅调整播放边界。原始音频字节保持未修改,可通过嵌入音频或演示文稿的 audio collection 访问。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md new file mode 100644 index 0000000000..171a59b1d2 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/flash/_index.md @@ -0,0 +1,48 @@ +--- +title: Flash +type: docs +weight: 10 +url: /zh/nodejs-java/flash/ +description: 使用 JavaScript 从 PowerPoint 演示文稿中提取 Flash 对象 +--- + +## **从演示文稿中提取 Flash 对象** + +Aspose.Slides for Node.js via Java 提供了从演示文稿中提取 Flash 对象的功能。您可以按名称访问 Flash 控件并将其从演示文稿中提取出来,包括存储 SWF 对象数据。 +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var controls = pres.getSlides().get_Item(0).getControls(); + var flashControl = null; + for (var i = 0; i < controls.size(); i++) { + var control = controls.get_Item(i); + console.log(control.getName() === "ShockwaveFlash1"); + if (control.getName() === "ShockwaveFlash1") { + flashControl = control; + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**在提取 Flash 内容时支持哪些演示文稿格式?** + +[Aspose.Slides supports](/slides/zh/nodejs-java/supported-file-formats/) 主要的 PowerPoint 格式,如 PPT 和 PPTX,因为它可以加载这些容器并访问其中的控件,包括与 Flash 相关的 ActiveX 元素。 + +**我可以将包含 Flash 的演示文稿转换为 HTML5 并保留 Flash 的交互性吗?** + +不可以。Aspose.Slides 不会执行 SWF 内容或转换其交互性。虽然支持导出为 [HTML](/slides/zh/nodejs-java/convert-powerpoint-to-html/)/[HTML5](/slides/zh/nodejs-java/export-to-html5/),但由于已停止支持,Flash 在现代浏览器中无法播放。建议在导出之前将 Flash 替换为视频或 HTML5 动画等替代方案。 + +**从安全角度来看,Aspose.Slides 在读取演示文稿时会执行 SWF 文件吗?** + +不会。Aspose.Slides 将 Flash 视为嵌入文件中的二进制数据,在处理过程中不执行 SWF 内容。 + +**当演示文稿中包含 Flash 以及通过 OLE 嵌入的其他文件时,我该如何处理?** + +Aspose.Slides 支持 [extracting embedded OLE objects](/slides/zh/nodejs-java/manage-ole/),因此您可以一次性处理所有相关的嵌入内容,同时处理 Flash 控件和其他 OLE 嵌入的文档。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md new file mode 100644 index 0000000000..df11732cab --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/image/_index.md @@ -0,0 +1,294 @@ +--- +title: 图像 +type: docs +weight: 10 +url: /zh/nodejs-java/image/ +keywords: +- 添加图像 +- 添加图片 +- 添加位图 +- 替换图像 +- 替换图片 +- 来自网络 +- 背景 +- 添加 PNG +- 添加 JPG +- 添加 SVG +- 添加 EMF +- 添加 WMF +- 添加 TIFF +- PowerPoint +- OpenDocument +- 演示文稿 +- EMF +- SVG +- Node.js +- Aspose.Slides +description: "使用 Aspose.Slides for Node.js 简化 PowerPoint 和 OpenDocument 中的图像管理,优化性能并自动化工作流程。" +--- + +## **演示文稿中幻灯片的图像** + +图像使演示文稿更具吸引力和趣味性。在 Microsoft PowerPoint 中,您可以从文件、互联网或其他位置向幻灯片插入图片。同样,Aspose.Slides 也允许您通过多种方式向演示文稿的幻灯片添加图像。 + +{{% alert title="Tip" color="primary" %}} +Aspose 提供免费转换器——[JPEG to PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) 和 [PNG to PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)——使用户能够快速从图像创建演示文稿。 +{{% /alert %}} + +{{% alert title="Info" color="info" %}} +如果您想将图像作为帧对象添加——尤其是计划使用标准格式选项来更改其大小、添加效果等——请参阅 [Picture Frame](https://docs.aspose.com/slides/nodejs-java/picture-frame/)。 +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} +您可以操作涉及图像和 PowerPoint 演示文稿的输入/输出,以将图像从一种格式转换为另一种格式。请参阅以下页面:将 [image to JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/) 转换;将 [JPG to image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/) 转换;将 [JPG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/) 转换, 将 [PNG to JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/) 转换;将 [PNG to SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/) 转换, 将 [SVG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/) 转换。 +{{% /alert %}} + +Aspose.Slides 支持在这些常用格式中对图像进行操作:JPEG、PNG、GIF 等。 + +## **向幻灯片添加本地存储的图像** + +您可以将计算机上的一张或多张图像添加到演示文稿的幻灯片中。下面的 JavaScript 示例代码展示了如何向幻灯片添加图像: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **从流向幻灯片添加图像** + +如果要添加到幻灯片的图像在本地不可用,您可以直接从网络添加该图像。 + +下面的示例代码展示了如何在 JavaScript 中将网络图像添加到幻灯片: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 加载 Excel 文件到流 + var readStream = fs.readFileSync("book1.xlsx"); + var byteArray = Array.from(readStream); + // 创建用于嵌入的数据对象 + var dataInfo = new aspose.slides.OleEmbeddedDataInfo(java.newArray("byte", byteArray), "xlsx"); + // 添加 Ole 对象框架形状 + var oleObjectFrame = sld.getShapes().addOleObjectFrame(0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), dataInfo); + // 将 PPTX 文件写入磁盘 + pres.save("OleEmbed_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **向幻灯片母版添加图像** + +幻灯片母版是存储并控制其下所有幻灯片信息(主题、布局等)的顶层幻灯片。因此,当您向幻灯片母版添加图像时,该图像会出现在该母版下的每一张幻灯片上。 + +下面的 JavaScript 示例代码展示了如何向幻灯片母版添加图像: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var masterSlide = slide.getLayoutSlide().getMasterSlide(); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + masterSlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 100, picture); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将图像设为幻灯片背景** + +您可能决定将图片用作特定幻灯片或多张幻灯片的背景。在这种情况下,请参阅 *[Setting Images as Backgrounds for Slides](https://docs.aspose.com/slides/nodejs-java/presentation-background/#setting-images-as-background-for-slides)*。 + +## **向演示文稿添加 SVG** +您可以使用属于 [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) 类的 [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) 方法将任何图像添加或插入到演示文稿中。 + +要基于 SVG 图像创建图像对象,可按以下方式操作: + +1. 创建 SvgImage 对象以将其插入 ImageShapeCollection +2. 从 ISvgImage 创建 PPImage 对象 +3. 使用 PPImage 类创建 PictureFrame 对象 + +下面的示例代码展示了如何实现上述步骤以将 SVG 图像添加到演示文稿中: +```javascript +// 实例化表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + var svgContent = java.newInstanceSync("java.lang.String", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg"))); + var svgImage = new aspose.slides.SvgImage(svgContent); + var ppImage = pres.getImages().addImage(svgImage); + pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, ppImage.getWidth(), ppImage.getHeight(), ppImage); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 SVG 转换为形状集合** +Aspose.Slides 将 SVG 转换为形状集合的功能与 PowerPoint 用于处理 SVG 图像的功能类似: + +![PowerPoint 弹出菜单](img_01_01.png) + +该功能由 [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) 类的一个重载的 [addGroupShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addGroupShape-aspose.slides.ISvgImage-float-float-float-float-) 方法提供,首个参数为 [SvgImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SvgImage) 对象。 + +下面的示例代码展示了如何使用上述方法将 SVG 文件转换为形状集合: +```javascript +// 创建新的演示文稿 +var presentation = new aspose.slides.Presentation(); +try { + // 读取 SVG 文件内容 + var svgContent = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "image.svg")); + // 创建 SvgImage 对象 + var svgImage = new aspose.slides.SvgImage(svgContent); + // 获取幻灯片尺寸 + var slideSize = presentation.getSlideSize().getSize(); + // 将 SVG 图像转换为形状组,并按幻灯片尺寸进行缩放 + presentation.getSlides().get_Item(0).getShapes().addGroupShape(svgImage, 0.0, 0.0, slideSize.getWidth(), slideSize.getHeight()); + // 以 PPTX 格式保存演示文稿 + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **在幻灯片中将图像添加为 EMF** +Aspose.Slides for Node.js via Java 允许您从 Excel 工作表生成 EMF 图像,并使用 Aspose.Cells 将这些图像以 EMF 形式添加到幻灯片中。 + +下面的示例代码展示了如何完成上述任务: +```javascript +var book = java.newInstanceSync("aspose.cells.Workbook", "chart.xlsx"); +var sheet = book.getWorksheets().get(0); +var options = java.newInstanceSync("aspose.cells.ImageOrPrintOptions"); +options.setHorizontalResolution(200); +options.setVerticalResolution(200); +options.setImageType(java.getStaticFieldValue("ImageType", "EMF")); +// Save the workbook to stream +var sr = java.newInstanceSync("SheetRender", sheet, options); +var pres = new aspose.slides.Presentation(); +try { + pres.getSlides().removeAt(0); + var EmfSheetName = ""; + for (var j = 0; j < sr.getPageCount(); j++) { + EmfSheetName = ((("test" + sheet.getName()) + " Page") + (j + 1)) + ".out.emf"; + sr.toImage(j, EmfSheetName); + var picture; + var image = aspose.slides.Images.fromFile(EmfSheetName); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Blank)); + var m = slide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 0, 0, pres.getSlideSize().getSize().getWidth(), pres.getSlideSize().getSize().getHeight(), picture); + } + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **替换图像集合中的图像** + +Aspose.Slides 让您能够替换演示文稿图像集合(包括幻灯片形状使用的图像)中的图像。本节展示了更新集合中图像的几种方法。API 提供了直接使用原始字节数据、[IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) 实例或集合中已存在的另一图像来替换图像的简便方法。 + +请按以下步骤操作: + +1. 使用 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类加载包含图像的演示文稿文件。 +2. 将新图像从文件加载到字节数组中。 +3. 使用字节数组将目标图像替换为新图像。 +4. 在第二种方法中,将图像加载到 [IImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/iimage/) 对象并使用该对象替换目标图像。 +5. 在第三种方法中,将目标图像替换为演示文稿图像集合中已存在的图像。 +6. 将修改后的演示文稿写入为 PPTX 文件。 +```js +// 实例化表示演示文稿文件的 Presentation 类。 +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + // 第一种方法。 + const imageData = java.newArray("byte", Array.from(fs.readFileSync("image0.jpeg"))); + let oldImage = presentation.getImages().get_Item(0); + oldImage.replaceImage(imageData); + + // 第二种方法。 + const newImage = aspose.slides.Images.fromFile("image1.png"); + oldImage = presentation.getImages().get_Item(1); + oldImage.replaceImage(newImage); + newImage.dispose(); + + // 第三种方法。 + oldImage = presentation.getImages().get_Item(2); + oldImage.replaceImage(presentation.getImages().get_Item(3)); + + // 将演示文稿保存到文件。 + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +{{% alert title="Info" color="info" %}} +使用 Aspose 免费的 [Text to GIF](https://products.aspose.app/slides/text-to-gif) 转换器,您可以轻松为文本添加动画、从文本创建 GIF 等。 +{{% /alert %}} + +## **FAQ** + +**插入后原始图像分辨率是否保持不变?** +是的。源像素会被保留,但最终外观取决于幻灯片上 [picture](/slides/zh/nodejs-java/picture-frame/) 的缩放方式以及保存时是否应用了压缩。 + +**一次性在数十张幻灯片上替换同一徽标的最佳方法是什么?** +将徽标放在母版幻灯片或布局上,并在演示文稿的图像集合中替换它——更改会传播到所有使用该资源的元素。 + +**插入的 SVG 能否转换为可编辑的形状?** +可以。您可以将 SVG 转换为一组形状,之后单独的部分即可使用标准形状属性进行编辑。 + +**如何一次性为多张幻灯片设置图片作为背景?** +在母版幻灯片或相关布局上 [Assign the image as the background](/slides/zh/nodejs-java/presentation-background/),使用该母版/布局的所有幻灯片都会继承该背景。 + +**如何防止因大量图片导致演示文稿体积“膨胀”?** +复用单一图像资源而非重复,选择合适的分辨率,保存时进行压缩,并在适当情况下将重复图形放在母版上。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md new file mode 100644 index 0000000000..48951f75b3 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/picture-frame/_index.md @@ -0,0 +1,434 @@ +--- +title: 图片框 +type: docs +weight: 10 +url: /zh/nodejs-java/picture-frame/ +keywords: +- 图片框 +- 添加图片框 +- 创建图片框 +- 添加图像 +- 创建图像 +- 提取图像 +- 裁剪图像 +- StretchOff 属性 +- 图片框格式化 +- 图片框属性 +- 图像效果 +- 纵横比 +- PowerPoint +- 演示文稿 +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "在 JavaScript 中向 PowerPoint 演示文稿添加图片框" +--- + +图片框是一种包含图像的形状——它就像框中的图片。 + +您可以通过图片框将图像添加到幻灯片中。这样,您可以通过格式化图片框来格式化图像。 + +{{% alert title="Tip" color="primary" %}} +Aspose 提供免费转换器——[JPEG 到 PowerPoint](https://products.aspose.app/slides/import/jpg-to-ppt) 和 [PNG 到 PowerPoint](https://products.aspose.app/slides/import/png-to-ppt)——可帮助用户快速从图像创建演示文稿。 +{{% /alert %}} + +## **创建图片框** + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 通过向与演示文稿对象关联的 [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) 中添加图像,创建一个 `PPImage` 对象,以填充形状。 +4. 指定图像的宽度和高度。 +5. 通过引用幻灯片关联的形状对象公开的 `addPictureFrame` 方法,基于图像的宽度和高度创建一个 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame)。 +6. 将图片框(包含图片)添加到幻灯片。 +7. 将修改后的演示文稿写入为 PPTX 文件。 + +此 JavaScript 代码演示了如何创建图片框: +```javascript +// 实例化表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 实例化 Image 类 + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // 添加一个图片框,其高度和宽度与图片相同 + sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // 将 PPTX 文件写入磁盘 + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="warning" %}} +图片框使您能够快速基于图像创建演示幻灯片。将图片框与 Aspose.Slides 保存选项结合使用,可操作输入/输出以实现图像格式之间的转换。您可能想查看以下页面:转换 [image to JPG](https://products.aspose.com/slides/nodejs-java/conversion/image-to-jpg/);转换 [JPG to image](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-image/);转换 [JPG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/jpg-to-png/),转换 [PNG to JPG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-jpg/);转换 [PNG to SVG](https://products.aspose.com/slides/nodejs-java/conversion/png-to-svg/),转换 [SVG to PNG](https://products.aspose.com/slides/nodejs-java/conversion/svg-to-png/)。 +{{% /alert %}} + +## **创建带相对比例的图片框** + +通过调整图像的相对缩放,您可以创建更复杂的图片框。 + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 向演示文稿的图像集合中添加图像。 +4. 通过向与演示文稿对象关联的 [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) 中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以填充形状。 +5. 在图片框中指定图像的相对宽度和高度。 +6. 将修改后的演示文稿写入为 PPTX 文件。 + +此 JavaScript 代码演示了如何创建具有相对比例的图片框: +```javascript +// 实例化表示 PPTX 的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 实例化 Image 类 + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // 添加图片框,其高度和宽度等同于图片 + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // 设置相对缩放宽度和高度 + pf.setRelativeScaleHeight(0.8); + pf.setRelativeScaleWidth(1.35); + // 将 PPTX 文件写入磁盘 + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **提取图片框中的光栅图像** + +您可以从 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFrame) 对象中提取光栅图像,并将其保存为 PNG、JPG 等格式。下面的代码示例演示如何从文档 “sample.pptx” 中提取图像并以 PNG 格式保存。 +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + var firstSlide = presentation.getSlides().get_Item(0); + var firstShape = firstSlide.getShapes().get_Item(0); + if (java.instanceOf(firstShape, "com.aspose.slides.IPictureFrame")) { + var pictureFrame = firstShape; + try { + var slideImage = pictureFrame.getPictureFormat().getPicture().getImage().getImage(); + slideImage.save("slide_1_shape_1.png", aspose.slides.ImageFormat.Png); + } finally { + if (slideImage != null) { + slideImage.dispose(); + } + } + } +} catch (e) {console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **提取图片框中的 SVG 图像** + +当演示文稿在 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 形状中包含 SVG 图形时,Aspose.Slides for Node.js via Java 可让您以完整保真度检索原始矢量图像。通过遍历幻灯片的形状集合,您可以识别每个 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/),检查其底层的 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) 是否包含 SVG 内容,然后将该图像以原生 SVG 格式保存到磁盘或流中。 + +以下代码示例演示如何从图片框中提取 SVG 图像: +```js +var presentation = new aspose.slides.Presentation("sample.pptx"); + +try { + var slide = presentation.getSlides().get_Item(0); + var shape = slide.getShapes().get_Item(0); + + if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) { + const svgImage = shape.getPictureFormat().getPicture().getImage().getSvgImage(); + + if (svgImage) { + fs.writeFileSync("output.svg", svgImage.getSvgData()); + } + } +} catch (e) { + console.log(e); +} finally { + presentation.dispose(); +} +``` + + +## **获取图像的透明度** + +Aspose.Slides 允许您获取图像的透明度效果。此 JavaScript 代码演示了该操作: +```javascript +var presentation = new aspose.slides.Presentation("Test.pptx"); +var pictureFrame = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var imageTransform = pictureFrame.getPictureFormat().getPicture().getImageTransform(); +for (var i = 0; i < imageTransform.size(); i++) { + var effect = imageTransform.get_Item(i); + if (java.instanceOf(effect, "com.aspose.slides.IAlphaModulateFixed")) { + var alphaModulateFixed = effect; + var transparencyValue = 100 - alphaModulateFixed.getAmount(); + console.log("Picture transparency: " + transparencyValue); + } +} +``` + + +## **图片框格式化** + +Aspose.Slides 提供许多可应用于图片框的格式化选项。使用这些选项,您可以调整图片框以满足特定需求。 + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 通过向与演示文稿对象关联的 [ImagesCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ImageCollection) 中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以填充形状。 +4. 指定图像的宽度和高度。 +5. 通过 [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) 关联的 [addPictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection#addPictureFrame-int-float-float-float-float-aspose.slides.PPImage-) 方法,基于图像的宽度和高度创建一个 `PictureFrame`。 +6. 将图片框(包含图片)添加到幻灯片。 +7. 设置图片框的线条颜色。 +8. 设置图片框的线条宽度。 +9. 通过提供正值或负值旋转图片框。 + * 正值表示顺时针旋转。 + * 负值表示逆时针旋转。 +10. 将图片框(包含图片)添加到幻灯片。 +11. 将修改后的演示文稿写入为 PPTX 文件。 + +此 JavaScript 代码演示了图片框格式化过程: +```javascript +// 实例化表示 PPTX 的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 实例化 Image 类 + var imgx = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "asp1.jpg"))); + // 添加图片框,其高度和宽度等同于图片 + var pf = sld.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, imgx.getWidth(), imgx.getHeight(), imgx); + // 对 PictureFrameEx 应用一些格式设置 + pf.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + pf.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pf.getLineFormat().setWidth(20); + pf.setRotation(45); + // 将 PPTX 文件写入磁盘 + pres.save("RectPicFrame.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Tip" color="primary" %}} +Aspose 最近推出了免费 [Collage Maker](https://products.aspose.app/slides/collage)。如果您需要 [合并 JPG/JPEG](https://products.aspose.app/slides/collage/jpg) 或 PNG 图像,或 [从照片创建网格](https://products.aspose.app/slides/collage/photo-grid),可使用此服务。 +{{% /alert %}} + +## **将图像作为链接添加** + +为避免演示文稿体积过大,您可以通过链接方式添加图像(或视频),而不是直接将文件嵌入演示文稿。此 JavaScript 代码演示了如何在占位符中添加图像和视频: +```javascript +var presentation = new aspose.slides.Presentation("input.pptx"); +try { + var shapesToRemove = java.newInstanceSync("java.util.ArrayList"); + var shapesCount = presentation.getSlides().get_Item(0).getShapes().size(); + for (var i = 0; i < shapesCount; i++) { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(i); + if (autoShape.getPlaceholder() == null) { + continue; + } + switch (autoShape.getPlaceholder().getType()) { + case aspose.slides.PlaceholderType.Picture : + var pictureFrame = presentation.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), null); + pictureFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + shapesToRemove.add(autoShape); + break; + case aspose.slides.PlaceholderType.Media : + var videoFrame = presentation.getSlides().get_Item(0).getShapes().addVideoFrame(autoShape.getX(), autoShape.getY(), autoShape.getWidth(), autoShape.getHeight(), ""); + videoFrame.getPictureFormat().getPicture().setLinkPathLong("https://upload.wikimedia.org/wikipedia/commons/3/3a/I.M_at_Old_School_Public_Broadcasting_in_October_2016_02.jpg"); + videoFrame.setLinkPathLong("https://youtu.be/t_1LYZ102RA"); + shapesToRemove.add(autoShape); + break; + } + } + for (var i = 0; i < shapesToRemove.length; i++) { + var shape = shapesToRemove.get_Item(i); + presentation.getSlides().get_Item(0).getShapes().remove(shape); + } + presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **裁剪图像** + +此 JavaScript 代码演示了如何裁剪幻灯片上的已有图像: +```javascript +var pres = new aspose.slides.Presentation(); +// 创建新的图像对象 +try { + var picture; + var image = aspose.slides.Images.fromFile(imagePath); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 向幻灯片添加图片框 + var picFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 100, 100, 420, 250, picture); + // 裁剪图像(百分比值) + picFrame.getPictureFormat().setCropLeft(23.6); + picFrame.getPictureFormat().setCropRight(21.5); + picFrame.getPictureFormat().setCropTop(3); + picFrame.getPictureFormat().setCropBottom(31); + // 保存结果 + pres.save(outPptxFile, aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **删除图片框的裁剪区域** + +如果您想删除框中图像的裁剪区域,可使用 [deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) 方法。若无需裁剪,该方法返回原始图像。 + +此 JavaScript 代码演示了该操作: +```javascript +var presentation = new aspose.slides.Presentation("PictureFrameCrop.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + // 获取第一张幻灯片上的 PictureFrame + var picFrame = slide.getShapes().get_Item(0); + // 删除 PictureFrame 图像的裁剪区域并返回裁剪后的图像 + var croppedImage = picFrame.getPictureFormat().deletePictureCroppedAreas(); + // 保存结果 + presentation.save("PictureFrameDeleteCroppedAreas.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} +[deletePictureCroppedAreas()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/picturefillformat/#deletePictureCroppedAreas--) 方法会将裁剪后的图像添加到演示文稿的图像集合中。如果该图像仅在处理后的 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 中使用,此设置可以减小演示文稿大小。否则,生成的演示文稿中的图像数量会增加。 + +该方法在裁剪操作中会将 WMF/EMF 元文件转换为光栅 PNG 图像。 +{{% /alert %}} + +## **锁定纵横比** + +如果您希望包含图像的形状在更改图像尺寸后仍保持纵横比,可使用 [setAspectRatioLocked](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframelock/#setAspectRatioLocked-boolean-) 方法设置 *锁定纵横比*。 + +此 JavaScript 代码演示了如何锁定形状的纵横比: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var layout = pres.getLayoutSlides().getByType(aspose.slides.SlideLayoutType.Custom); + var emptySlide = pres.getSlides().addEmptySlide(layout); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + var pictureFrame = emptySlide.getShapes().addPictureFrame(aspose.slides.ShapeType.Rectangle, 50, 150, presImage.getWidth(), presImage.getHeight(), picture); + // 设置形状在调整大小时保持纵横比 + pictureFrame.getPictureFrameLock().setAspectRatioLocked(true); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="NOTE" color="warning" %}} +此 *锁定纵横比* 设置仅保留形状本身的纵横比,而不影响其包含的图像。 +{{% /alert %}} + +## **使用 StretchOff 属性** + +使用 [PictureFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat) 类中的 [setStretchOffsetLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetLeft-float-)、[setStretchOffsetTop](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetTop--)、[setStretchOffsetRight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetRight--) 和 [setStretchOffsetBottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PictureFillFormat#setStretchOffsetBottom-float-) 方法,可指定填充矩形。 + +当为图像指定拉伸时,源矩形会按比例缩放以适应指定的填充矩形。填充矩形的每条边由相对于形状边界框相应边的百分比偏移定义。正百分比表示内缩,负百分比表示外延。 + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentatio) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 添加一个矩形 `AutoShape`。 +4. 创建图像。 +5. 设置形状的填充类型。 +6. 设置形状的图片填充模式。 +7. 添加用于填充形状的设定图像。 +8. 指定图像相对于形状边界框相应边的偏移。 +9. 将修改后的演示文稿写入为 PPTX 文件。 + +此 JavaScript 代码演示了使用 StretchOff 属性的过程: +```javascript +// 实例化表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 实例化 ImageEx 类 + var picture; + var image = aspose.slides.Images.fromFile("aspose-logo.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 添加一个设置为矩形的 AutoShape + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // 设置形状的填充类型 + aShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture)); + // 设置形状的图片填充模式 + aShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch); + // 设置用于填充形状的图像 + aShape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture); + // 指定图像相对于形状边界框相应边缘的偏移量 + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetLeft(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetRight(25); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetTop(-20); + aShape.getFillFormat().getPictureFillFormat().setStretchOffsetBottom(-10); + // 将 PPTX 文件写入磁盘 + pres.save("StretchOffsetLeftForPictureFrame_out.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**如何查找支持用于 PictureFrame 的图像格式?** +Aspose.Slides 通过分配给 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 的图像对象支持光栅图像(PNG、JPEG、BMP、GIF 等)和矢量图像(例如 SVG)。支持的格式列表通常与幻灯片和图像转换引擎的功能重叠。 + +**大量大图像会如何影响 PPTX 大小和性能?** +嵌入大图像会增加文件大小和内存使用;使用链接方式添加图像可保持演示文稿体积较小,但需要确保外部文件保持可访问。Aspose.Slides 提供通过链接添加图像的功能,以减小文件大小。 + +**如何防止图像对象被意外移动/缩放?** +对 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 使用 [shape locks](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/getpictureframelock/)(例如禁用移动或缩放)。锁定机制在单独的 [保护文章](/slides/zh/nodejs-java/applying-protection-to-presentation/) 中描述,支持包括 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 在内的多种形状类型。 + +**导出演示文稿为 PDF/图像时,SVG 矢量保真度是否保留?** +Aspose.Slides 允许从 [PictureFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/pictureframe/) 中提取原始矢量 SVG。导出为 PDF(/slides/nodejs-java/convert-powerpoint-to-pdf/)或光栅格式(/slides/nodejs-java/convert-powerpoint-to-png/)时,结果可能会根据导出设置被光栅化;提取行为确认原始 SVG 仍以矢量形式存储。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md new file mode 100644 index 0000000000..6ccedd910f --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-media-files/video-frame/_index.md @@ -0,0 +1,180 @@ +--- +title: 视频帧 +type: docs +weight: 10 +url: /zh/nodejs-java/video-frame/ +keywords: "添加视频, 创建视频帧, 提取视频, PowerPoint 演示文稿, Java, Aspose.Slides for Node.js via Java" +description: "在 JavaScript 中向 PowerPoint 演示文稿添加视频帧" +--- + +在演示文稿中恰当地放置视频可以使您的信息更具说服力,并提升观众的参与度。 + +PowerPoint 允许您以两种方式向演示文稿的幻灯片中添加视频: + +* 添加或嵌入本地视频(存储在您的计算机上) +* 添加在线视频(来自 YouTube 等网络来源) + +为了让您能够向演示文稿中添加视频(视频对象),Aspose.Slides 提供了[Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)类、[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)类以及其他相关类型。 + +## **创建嵌入式视频帧** + +如果您要添加到幻灯片的视频文件存储在本地,可以创建视频帧将视频嵌入到演示文稿中。 + +1. 创建一个[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 添加一个[Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)对象,并传入视频文件路径以将视频嵌入演示文稿。 +4. 添加一个[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)对象来创建视频的框架。 +5. 保存修改后的演示文稿。 + +下面的 JavaScript 代码示例展示了如何将本地存储的视频添加到演示文稿中: +```javascript +// 实例化 Presentation 类 +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + // 加载视频 + var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4"); + var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked); + // 获取第一张幻灯片并添加视频帧 + pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video); + // 将演示文稿保存到磁盘 + pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +或者,您也可以直接将文件路径传递给[addVideoFrame(float x, float y, float width, float height, IVideo video)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/#addVideoFrame-float-float-float-float-aspose.slides.IVideo-)方法来添加视频: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var sld = pres.getSlides().get_Item(0); + var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **创建来自网页源的视频帧** + +Microsoft [PowerPoint 2013 及更高版本](https://support.microsoft.com/en-us/office/versions-of-powerpoint-that-support-online-videos-2a0e184d-af50-4da9-b530-e4355ac436a9?ui=en-us&rs=en-us&ad=us)支持在演示文稿中插入 YouTube 视频。如果您要使用的视频可以在网上获取(例如 YouTube),可以通过其网页链接将其添加到演示文稿中。 + +1. 创建一个[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 添加一个[Video](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/)对象,并传入视频链接。 +4. 为视频帧设置缩略图。 +5. 保存演示文稿。 + +下面的 JavaScript 代码示例展示了如何将网络视频添加到 PowerPoint 幻灯片中: +```javascript +// 实例化表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation(); +try { + addVideoFromYouTube(pres, "Tj75Arhq5ho"); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +async function addVideoFromYouTube(pres, videoID) { + let slide = pres.getSlides().get_Item(0); + let videoUrl = "https://www.youtube.com/embed/" + videoID; + let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl); + + videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto); + + let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg"; + + try { + const imageStream = await getImageStream(thumbnailUri); + let image = pres.getImages().addImage(imageStream); + videoFrame.getPictureFormat().getPicture().setImage(image); + } catch (error) { + console.error("Error loading thumbnail:", error); + } +} + +async function getImageStream(url) { + return new Promise((resolve, reject) => { + http.get(url, (response) => { + if (response.statusCode === 200) { + resolve(response); + } else { + reject(new Error(`Failed to load image: ${response.statusCode}`)); + } + }).on('error', (e) => { + reject(e); + }); + }); +} +``` + + +## **从幻灯片中提取视频** + +除了向幻灯片添加视频之外,Aspose.Slides 还允许您提取嵌入在演示文稿中的视频。 + +1. 创建一个[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)类的实例以加载包含视频的演示文稿。 +2. 遍历所有[Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/)对象。 +3. 遍历所有[Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/)对象以查找[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)。 +4. 将视频保存到磁盘。 + +下面的 JavaScript 代码示例展示了如何从演示文稿幻灯片中提取视频: +```javascript +// 实例化表示演示文稿文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("VideoSample.pptx"); +try { + for (let i = 0; i < pres.getSlides().size(); i++) { + let slide = pres.getSlides().get_Item(i); + for (let j = 0; j < slide.getShapes().size(); j++) { + let shape = slide.getShapes().get_Item(j); + if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) { + var vf = shape; + console.log(shape); + var type = vf.getEmbeddedVideo().getContentType(); + var ss = type.lastIndexOf('-'); + const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData()); + console.log(buffer); + // 获取文件扩展名 + var charIndex = type.indexOf("/"); + type = type.substring(charIndex + 1); + fs.writeFileSync("testing2." + type, buffer); + } + } + } +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**可以更改 VideoFrame 的哪些视频播放参数?** + +您可以控制[播放模式](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplaymode/)(自动或点击)以及[循环](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setplayloopmode/)。这些选项可以通过[VideoFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/)对象的属性进行设置。 + +**添加视频会影响 PPTX 文件大小吗?** + +会。当您嵌入本地视频时,二进制数据会被包含在文档中,演示文稿的大小会随文件大小等比例增长。当您添加在线视频时,仅嵌入链接和缩略图,大小增加相对较小。 + +**能否在不改变位置和大小的情况下替换现有 VideoFrame 中的视频?** + +可以。您可以在保持形状几何属性不变的情况下,替换框架内的[视频内容](https://reference.aspose.com/slides/nodejs-java/aspose.slides/videoframe/setembeddedvideo/),这在更新已有布局中的媒体时非常常见。 + +**可以确定嵌入视频的内容类型(MIME)吗?** + +可以。嵌入的视频拥有可读取的[内容类型](https://reference.aspose.com/slides/nodejs-java/aspose.slides/video/getcontenttype/),您可以使用该信息,例如在保存到磁盘时。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md new file mode 100644 index 0000000000..3292fb2e52 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-ole/_index.md @@ -0,0 +1,314 @@ +--- +title: 使用 JavaScript 在演示文稿中管理 OLE +linktitle: 管理 OLE +type: docs +weight: 40 +url: /zh/nodejs-java/manage-ole/ +keywords: +- OLE 对象 +- 对象链接与嵌入 +- 添加 OLE +- 嵌入 OLE +- 添加对象 +- 嵌入对象 +- 添加文件 +- 嵌入文件 +- 链接对象 +- 链接文件 +- 更改 OLE +- OLE 图标 +- OLE 标题 +- 提取 OLE +- 提取对象 +- 提取文件 +- PowerPoint +- 演示文稿 +- Node.js +- JavaScript +- Aspose.Slides +description: "使用 Aspose.Slides for Node.js 优化 PowerPoint 和 OpenDocument 文件中的 OLE 对象管理。无缝嵌入、更新并导出 OLE 内容。" +--- + +{{% alert color="primary" %}} +OLE(Object Linking & Embedding)是 Microsoft 的一项技术,允许在一个应用程序中创建的数据和对象通过链接或嵌入的方式放置到另一个应用程序中。 +{{% /alert %}} +考虑一个在 MS Excel 中创建的图表。该图表随后被放置在 PowerPoint 幻灯片中。该 Excel 图表即被视为 OLE 对象。 + +- OLE 对象可能以图标形式出现。在此情况下,双击图标后,图表将在其关联的应用程序(Excel)中打开,或者会提示您选择用于打开或编辑对象的应用程序。 +- OLE 对象也可能直接显示其实际内容,例如图表的内容。在此情况下,图表在 PowerPoint 中被激活,图表界面加载,您可以在 PowerPoint 中修改图表的数据。 + +[Aspose.Slides for Node.js via Java](https://products.aspose.com/slides/nodejs-java/) 允许您将 OLE 对象插入幻灯片作为 OLE 对象框([OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame))。 + +## **Adding OLE Object Frames to Slides** +假设您已经在 Microsoft Excel 中创建了图表,并希望使用 Aspose.Slides for Node.js via Java 将其嵌入幻灯片作为 OLE 对象框,您可以按以下方式操作: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 通过索引获取幻灯片的引用。 +1. 将 Excel 文件读取为字节数组。 +1. 将 [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) 添加到幻灯片中,包含字节数组及其他 OLE 对象信息。 +1. 将修改后的演示文稿写入为 PPTX 文件。 + +在下面的示例中,我们使用 Aspose.Slides for Node.js via Java 将 Excel 文件中的图表作为 OLE 对象框添加到幻灯片。 +**Note** 该 [OleEmbeddedDataInfo](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleEmbeddedDataInfo) 构造函数将可嵌入对象的扩展名作为第二个参数。此扩展名使 PowerPoint 能够正确解释文件类型并选择合适的应用程序打开该 OLE 对象。 +```javascript +var presentation = new asposeSlides.Presentation(); +var slideSize = presentation.getSlideSize().getSize(); +var slide = presentation.getSlides().get_Item(0); + +// Prepare data for the OLE object. +var oleStream = fs.readFileSync("book.xlsx"); +var fileData = Array.from(oleStream); +var dataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", fileData), "xlsx"); + +// Add the OLE object frame to the slide. +slide.getShapes().addOleObjectFrame(0, 0, slideSize.getWidth(), slideSize.getHeight(), dataInfo); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +### **Adding Linked OLE Object Frames** +Aspose.Slides for Node.js via Java 允许您添加一个不嵌入数据、仅通过链接指向文件的 [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame)。 + +下面的 JavaScript 代码演示如何向幻灯片添加一个链接到 Excel 文件的 [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame): +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +// 添加一个带有链接 Excel 文件的 OLE 对象框。 +slide.getShapes().addOleObjectFrame(20, 20, 200, 150, "Excel.Sheet.12", "book.xlsx"); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Accessing OLE Object Frames** +如果幻灯片中已经嵌入了 OLE 对象,您可以按照以下方式轻松查找或访问它: + +1. 通过创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例来加载包含嵌入 OLE 对象的演示文稿。 +2. 使用索引获取幻灯片的引用。 +3. 访问 [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/OleObjectFrame) 形状。在本例中,我们使用了之前创建的仅在第一张幻灯片上包含一个形状的 PPTX。 +4. 访问 OLE 对象框后,您可以对其执行任何操作。 + +下面的示例演示如何访问 OLE 对象框(嵌入在幻灯片中的 Excel 图表对象)及其文件数据。 +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // 获取嵌入的文件数据。 + // 获取嵌入文件的扩展名。 + // ... +} +``` + + +### **Accessing Linked OLE Object Frame Properties** +Aspose.Slides 允许您访问链接的 OLE 对象框属性。 + +下面的 JavaScript 代码演示如何检查 OLE 对象是否为链接以及获取链接文件的路径: +```javascript +var presentation = new asposeSlides.Presentation("sample.ppt"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + // 检查 OLE 对象是否为链接。 + if (oleFrame.isObjectLink()) { + // 打印链接文件的完整路径。 + console.log("OLE object frame is linked to:", oleFrame.getLinkPathLong()); + + // 如果存在,打印链接文件的相对路径。 + // 仅 PPT 演示文稿可以包含相对路径。 + if (oleFrame.getLinkPathRelative() != null && oleFrame.getLinkPathRelative() != "") { + console.log("OLE object frame relative path:", oleFrame.getLinkPathRelative()); + } + } +} + +presentation.dispose(); +``` + + +## **Changing OLE Object Data** +{{% alert color="primary" %}} +本节中的代码示例使用 [Aspose.Cells for Java](/cells/java/)。 +{{% /alert %}} +如果 OLE 对象已经嵌入幻灯片,您可以按以下方式访问并修改其数据: + +1. 通过创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例来加载包含嵌入 OLE 对象的演示文稿。 +2. 通过索引获取幻灯片的引用。 +3. 访问 OLE 对象框形状。在本例中,我们使用了之前创建的仅在第一张幻灯片上包含一个形状的 PPTX。 +4. 访问 OLE 对象框后,您可以对其执行任何操作。 +5. 创建 `Workbook` 对象并访问 OLE 数据。 +6. 访问所需的 `Worksheet` 并修改数据。 +7. 将更新后的 `Workbook` 保存到流中。 +8. 从流中更改 OLE 对象数据。 + +下面的示例演示如何访问 OLE 对象框(嵌入在幻灯片中的 Excel 图表对象),并修改其文件数据以更新图表数据。 +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var shape = slide.getShapes().get_Item(0); + +if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var oleStream = java.newInstanceSync("java.io.ByteArrayInputStream", oleFrame.getEmbeddedData().getEmbeddedFileData()); + + // 读取 OLE 对象数据为 Workbook 对象。 + var workbook = java.newInstanceSync("Workbook", oleStream); + + var newOleStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + + // 修改工作簿数据。 + workbook.getWorksheets().get(0).getCells().get(0, 4).putValue("E"); + workbook.getWorksheets().get(0).getCells().get(1, 4).putValue(12); + workbook.getWorksheets().get(0).getCells().get(2, 4).putValue(14); + workbook.getWorksheets().get(0).getCells().get(3, 4).putValue(15); + + var fileOptions = java.newInstanceSync("OoxmlSaveOptions", java.getStaticFieldValue("com.aspose.cells.SaveFormat", "XLSX")); + workbook.save(newOleStream, fileOptions); + + // 更改 OLE 框对象数据。 + var newData = new asposeSlides.OleEmbeddedDataInfo(newOleStream.toByteArray(), oleFrame.getEmbeddedData().getEmbeddedFileExtension()); + oleFrame.setEmbeddedData(newData); + + newOleStream.close(); + oleStream.close(); +} + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Embedding Other File Types in Slides** +除了 Excel 图表,Aspose.Slides for Node.js via Java 还允许您在幻灯片中嵌入其他类型的文件。例如,您可以将 HTML、PDF 和 ZIP 文件作为对象插入。当用户双击插入的对象时,它会自动在相应程序中打开,或提示用户选择合适的程序打开。 + +下面的 JavaScript 代码演示如何将 HTML 和 ZIP 嵌入幻灯片: +```javascript +var presentation = new asposeSlides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var htmlBuffer = fs.readFileSync("sample.html"); +var htmlData = Array.from(htmlBuffer); +var htmlDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", htmlData), "html"); +var htmlOleFrame = slide.getShapes().addOleObjectFrame(150, 120, 50, 50, htmlDataInfo); +htmlOleFrame.setObjectIcon(true); + +var zipBuffer = fs.readFileSync("sample.zip"); +var zipData = Array.from(zipBuffer); +var zipDataInfo = new asposeSlides.OleEmbeddedDataInfo(java.newArray("byte", zipData), "zip"); +var zipOleFrame = slide.getShapes().addOleObjectFrame(150, 220, 50, 50, zipDataInfo); +zipOleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Setting File Types for Embedded Objects** +在处理演示文稿时,您可能需要将旧的 OLE 对象替换为新的,或将不受支持的 OLE 对象替换为受支持的。Aspose.Slides for Node.js via Java 允许您为嵌入对象设置文件类型,从而更新 OLE 框数据或其扩展名。 + +下面的 JavaScript 代码演示如何将嵌入的 OLE 对象的文件类型设置为 `zip`: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); +var oleFileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + +console.log("Current embedded file extension is:", fileExtension); + +// 将文件类型更改为 ZIP. +var fileData = java.newArray("byte", Array.from(oleFileData)); +oleFrame.setEmbeddedData(new asposeSlides.OleEmbeddedDataInfo(fileData, "zip")); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Setting Icon Images and Titles for Embedded Objects** +嵌入 OLE 对象后,会自动添加由图标图像组成的预览。该预览是用户在访问或打开 OLE 对象之前看到的内容。如果您想使用特定的图像和文字作为预览元素,可以使用 Aspose.Slides for Node.js via Java 设置图标图像和标题。 + +下面的 JavaScript 代码演示如何为嵌入对象设置图标图像和标题: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); +var oleFrame = slide.getShapes().get_Item(0); + +// 将图像添加到演示文稿资源中。 +var image = asposeSlides.Images.fromFile("image.png"); +var oleImage = presentation.getImages().addImage(image); +image.dispose(); + +// 为 OLE 预览设置标题和图像。 +oleFrame.setSubstitutePictureTitle("My title"); +oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage); +oleFrame.setObjectIcon(true); + +presentation.save("output.pptx", asposeSlides.SaveFormat.Pptx); +presentation.dispose(); +``` + + +## **Prevent an OLE Object Frame from Being Resized and Pepositioned** +在向演示文稿幻灯片添加链接的 OLE 对象后,打开 PowerPoint 时可能会看到提示更新链接的消息。单击“Update Links”按钮可能会更改 OLE 对象框的大小和位置,因为 PowerPoint 会从链接的 OLE 对象更新数据并刷新对象预览。要阻止 PowerPoint 提示更新对象数据,请使用 [OleObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe/) 类的 `setUpdateAutomatic` 方法并将其值设为 `false`: +```javascript +oleFrame.setUpdateAutomatic(false); +``` + + +## **Extracting Embedded Files** +Aspose.Slides for Node.js via Java 允许您按以下方式提取嵌入在幻灯片中作为 OLE 对象的文件: + +1. 创建包含要提取的 OLE 对象的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类实例。 +2. 遍历演示文稿中的所有形状,访问 [OLEObjectFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/oleobjectframe) 形状。 +3. 访问 OLE 对象框中嵌入文件的数据并写入磁盘。 + +下面的 JavaScript 代码演示如何提取嵌入在幻灯片中的 OLE 对象文件: +```javascript +var presentation = new asposeSlides.Presentation("sample.pptx"); +var slide = presentation.getSlides().get_Item(0); + +for (var index = 0; index < slide.getShapes().size(); index++) { + var shape = slide.getShapes().get_Item(index); + + if (java.instanceOf(shape, "com.aspose.slides.OleObjectFrame")) { + var oleFrame = shape; + + var fileData = oleFrame.getEmbeddedData().getEmbeddedFileData(); + var fileExtension = oleFrame.getEmbeddedData().getEmbeddedFileExtension(); + + var filePath = "OLE_object_" + index + fileExtension; + fs.writeFileSync(filePath, Buffer.from(fileData)); + } +} + +presentation.dispose(); +``` + + +## **FAQ** + +**Will the OLE content be rendered when exporting slides to PDF/images?** + +在导出为 PDF/图像时,仅渲染幻灯片上可见的内容——图标/替代图像(预览)。“实时”OLE 内容在渲染过程中不执行。如有需要,可自行设置预览图像,以确保在导出的 PDF 中呈现期望的外观。 + +**How can I lock an OLE object on a slide so users cannot move/edit it in PowerPoint?** + +锁定形状:Aspose.Slides 提供 [shape-level locks](/slides/zh/nodejs-java/applying-protection-to-presentation/)。这不是加密,但可有效防止意外编辑和移动。 + +**Will relative paths for linked OLE objects be preserved in the PPTX format?** + +在 PPTX 中不保存“相对路径”信息,仅保存完整路径。相对路径仅在旧的 PPT 格式中存在。为实现可移植性,建议使用可靠的绝对路径/可访问的 URI 或嵌入文件。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md new file mode 100644 index 0000000000..ff54fec20f --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/animated-text/_index.md @@ -0,0 +1,61 @@ +--- +title: 动画文字 +type: docs +weight: 60 +url: /zh/nodejs-java/animated-text/ +keywords: "PowerPoint 中的动画文字" +description: "使用 Java 的 PowerPoint 动画文字" +--- + +## **向段落添加动画效果** + +我们在 [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) 和 [**Sequence**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence) 类中添加了 [**addEffect()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IParagraph-int-int-int-) 方法。此方法允许您向单个段落添加动画效果。下面的示例代码演示了如何向单个段落添加动画效果: +```javascript +var presentation = new aspose.slides.Presentation("Presentation.pptx"); +try { + // 选择要添加效果的段落 + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // 为选定的段落添加 Fly 动画效果 + var effect = presentation.getSlides().get_Item(0).getTimeline().getMainSequence().addEffect(paragraph, aspose.slides.EffectType.Fly, aspose.slides.EffectSubtype.Left, aspose.slides.EffectTriggerType.OnClick); + presentation.save("AnimationEffectinParagraph.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **获取段落中的动画效果** + +您可能需要查找已添加到段落的动画效果——例如,在某些情况下,您想获取段落中的动画效果,因为您计划将这些效果应用于其他段落或形状。 +Aspose.Slides for Node.js via Java 允许您获取应用于文本框(形状)中段落的所有动画效果。下面的示例代码演示了如何获取段落中的动画效果: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var sequence = pres.getSlides().get_Item(0).getTimeline().getMainSequence(); + var autoShape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + for (let i = 0; i < autoShape.getTextFrame().getParagraphs().getCount(); i++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(i); + var effects = sequence.getEffectsByParagraph(paragraph); + if (effects.length > 0) { + console.log("Paragraph \"" + paragraph.getText() + "\" has " + effects[0].getType() + " effect."); + } + } +} finally { + pres.dispose(); +} +``` + + +## **常见问题** + +**文本动画与幻灯片切换有何区别,是否可以组合使用?** +文本动画控制对象在幻灯片上的随时间行为,而 [transitions](/slides/zh/nodejs-java/slide-transition/) 控制幻灯片之间的切换方式。它们相互独立,但可以一起使用;播放顺序由动画时间轴和切换设置决定。 + +**导出为 PDF 或图像时,文本动画会被保留吗?** +不会。PDF 和光栅图像是静态的,您只能看到幻灯片的单一状态而没有动画。若要保留动画,请使用 [video](/slides/zh/nodejs-java/convert-powerpoint-to-video/) 或 [HTML](/slides/zh/nodejs-java/export-to-html5/) 导出。 + +**文本动画在布局和幻灯片母版中有效吗?** +应用于布局/母版对象的效果会被幻灯片继承,但其时间安排和与幻灯片级动画的交互取决于幻灯片上的最终顺序。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md new file mode 100644 index 0000000000..8a3e07d391 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/extract-text-from-presentation/_index.md @@ -0,0 +1,138 @@ +--- +title: 从演示文稿中提取文本 +type: docs +weight: 90 +url: /zh/nodejs-java/extract-text-from-presentation/ +--- + +{{% alert color="primary" %}} + +开发人员需要从演示文稿中提取文本并不少见。为此,您需要提取演示文稿中所有幻灯片上所有形状的文本。本文介绍如何使用 Aspose.Slides 从 Microsoft PowerPoint PPTX 演示文稿中提取文本。 + +{{% /alert %}} + +## **从幻灯片提取文本** + +Aspose.Slides for Node.js via Java 提供了 [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil) 类。该类公开了一系列重载的静态方法,用于从演示文稿或幻灯片中提取全部文本。要从 PPTX 演示文稿中的幻灯片提取文本,使用由 [SlideUtil](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil) 类公开的 [getAllTextBoxes](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextBoxes-aspose.slides.IBaseSlide-) 重载静态方法。此方法接受 Slide 对象作为参数。 +执行后,Slide 方法会扫描传入参数的幻灯片中的全部文本,并返回一个 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 对象数组。这意味着可以获取到与文本相关的任何格式信息。以下代码片段提取演示文稿第一张幻灯片上的全部文本: +```javascript + // 实例化表示 PPTX 文件的 Presentation 类 + var pres = new aspose.slides.Presentation("demo.pptx"); + try { + for (var s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + // 从 PPTX 中的所有幻灯片获取 ITextFrame 对象数组 + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextBoxes(slide); + // 循环遍历 TextFrame 数组 + for (var i = 0; i < textFramesPPTX.length; i++) { + // 循环遍历当前 ITextFrame 中的段落 + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // 循环遍历当前 IParagraph 中的部分 + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // 在当前部分显示文本 + console.log(port.getText()); + // 显示文本的字体高度 + console.log(port.getPortionFormat().getFontHeight()); + // 显示文本的字体名称 + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + }); + } + } + }); + } finally { + pres.dispose(); + } +``` + + +## **从演示文稿提取文本** + +要扫描整个演示文稿的文本,使用 SlideUtil 类公开的 [getAllTextFrames](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideUtil#getAllTextFrames-aspose.slides.IPresentation-boolean-) 静态方法。该方法接受两个参数: + +1. 首先,一个代表要提取文本的演示文稿的 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) 对象。 +2. 其次,一个布尔值,用于确定在扫描演示文稿文本时是否包含母版幻灯片。 + +该方法返回一个 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 对象数组,包含完整的文本格式信息。下面的代码扫描演示文稿(包括母版幻灯片)的文本及其格式信息: +```javascript +// 实例化表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation("demo.pptx"); +try { + // 从 PPTX 中所有幻灯片获取 ITextFrame 对象数组 + var textFramesPPTX = aspose.slides.SlideUtil.getAllTextFrames(pres, true); + // 循环遍历 TextFrame 数组 + for (var i = 0; i < textFramesPPTX.length; i++) { + // 循环遍历当前 ITextFrame 中的段落 + for (let j = 0; j < textFramesPPTX[i].getParagraphs().getCount(); j++) { + let para = textFramesPPTX[i].getParagraphs().get_Item(j); + // 循环遍历当前 IParagraph 中的部分 + for (let k = 0; k < para.getPortions().getCount(); k++) { + let port = para.getPortions().get_Item(k); + // 在当前部分显示文本 + console.log(port.getText()); + // 显示文本的字体高度 + console.log(port.getPortionFormat().getFontHeight()); + // 显示文本的字体名称 + if (port.getPortionFormat().getLatinFont() != null) { + console.log(port.getPortionFormat().getLatinFont().getFontName()); + } + } + } + } +} finally { + pres.dispose(); +} +``` + + +## **分类和快速文本提取** + +已在 Presentation 类中添加了新的静态方法 getPresentationText。此方法有三个重载版本: +```javascript +IPresentationText getPresentationText(String file, int mode); +IPresentationText getPresentationText(InputStream stream, int mode); +IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options); +``` + +The [TextExtractionArrangingMode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode) enum argument indicates the mode to organize the output of text result and can be set to the following values: +- [Unarranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Unarranged) - The raw text with no respect to position on the slide +- [Arranged](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextExtractionArrangingMode#Arranged) - The text is positioned in the same order as on the slide + +**Unarranged** mode can be used when speed is critical, it's faster than Arranged mode. + +[PresentationText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText) represents the raw text extracted from the presentation. It contains a [getSlidesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PresentationText#getSlidesText--) method which returns an array of [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) objects. Every object represent the text on the corresponding slide. [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) object have the following methods: + +- [SlideText.getText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getText--) - The text on the slide's shapes +- [SlideText.getMasterText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getMasterText--) - The text on the master page's shapes for this slide +- [SlideText.getLayoutText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getLayoutText--) - The text on the layout page's shapes for this slide +- [SlideText.getNotesText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText#getNotesText--) - The text on the notes page's shapes for this slide + +There is also a [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class which implements the [SlideText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SlideText) class. + +The new API can be used like this: + +```javascript +var text1 = aspose.slides.PresentationFactory.getInstance().getPresentationText("presentation.pptx", aspose.slides.TextExtractionArrangingMode.Unarranged); +console.log(text1.getSlidesText()[0].getText()); +console.log(text1.getSlidesText()[0].getLayoutText()); +console.log(text1.getSlidesText()[0].getMasterText()); +console.log(text1.getSlidesText()[0].getNotesText()); +``` + + +## **常见问题** + +**在文本提取过程中,Aspose.Slides 处理大型演示文稿的速度如何?** + +Aspose.Slides 经过高性能优化,即使是大型演示文稿也能高效处理,适用于实时或批量处理场景。 + +**Aspose.Slides 能从演示文稿中的表格和图表提取文本吗?** + +是的,Aspose.Slides 完全支持从表格、图表以及其他复杂幻灯片元素中提取文本,帮助您轻松访问并分析所有文本内容。 + +**提取演示文稿文本是否需要特殊的 Aspose.Slides 许可证?** + +您可以使用 Aspose.Slides 的免费试用版提取文本,但该版本在处理的幻灯片数量上有限制。若需无限制使用并处理更大的演示文稿,建议购买完整许可证。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md new file mode 100644 index 0000000000..2d2f6b3d20 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-autofit-settings/_index.md @@ -0,0 +1,158 @@ +--- +title: 管理自动适应设置 +type: docs +weight: 30 +url: /zh/nodejs-java/manage-autofit-settings/ +keywords: "文本框, 自动适应, PowerPoint 演示文稿, Java, Aspose.Slides for Node.js via Java" +description: "在 JavaScript 中为 PowerPoint 中的文本框设置自动适应" +--- + +默认情况下,当您添加文本框时,Microsoft PowerPoint 使用 **Resize shape to fix text** 设置——它会自动调整文本框大小,以确保文本始终适合其中。 + +![textbox-in-powerpoint](textbox-in-powerpoint.png) + +* 当文本框中的文本变得更长或更大时,PowerPoint 会自动放大文本框——增加其高度——以容纳更多文本。 +* 当文本框中的文本变得更短或更小时时,PowerPoint 会自动缩小文本框——减少其高度——以清除多余空间。 + +在 PowerPoint 中,有 4 个重要参数或选项用于控制文本框的自动适应行为: + +* **Do not Autofit** +* **Shrink text on overflow** +* **Resize shape to fit text** +* **Wrap text in shape.** + +![autofit-options-powerpoint](autofit-options-powerpoint.png) + +Aspose.Slides for Node.js via Java 提供了类似的选项——在 [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) 类下的一些属性——允许您控制演示文稿中文本框的自动适应行为。 + +## **调整形状以适应文本** + +如果您希望文本在修改后始终适应其所在的框,需要使用 **Resize shape to fix text** 选项。要指定此设置,请从 [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) 类调用 `setAutofitType` 方法,传入 `Shape` 值。 + +![alwaysfit-setting-powerpoint](alwaysfit-setting-powerpoint.png) + +下面的 JavaScript 代码演示如何在 PowerPoint 演示文稿中指定文本必须始终适应其框: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Shape); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +如果文本变得更长或更大,文本框会自动调整大小(高度增加),以确保所有文本都能适应。如果文本变短,则相反。 + +## **不自动适应** + +如果您希望文本框或形状无论文本如何变化都保持其尺寸,需要使用 **Do not Autofit** 选项。要指定此设置,请从 [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) 类调用 `setAutofitType` 方法,传入 `None` 值。 + +![donotautofit-setting-powerpoint](donotautofit-setting-powerpoint.png) + +下面的 JavaScript 代码演示如何在 PowerPoint 演示文稿中指定文本框必须保持其尺寸: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.None); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +当文本对其框来说过长时,会溢出。 + +## **溢出时收缩文本** + +如果文本对其框来说过长,通过 **Shrink text on overflow** 选项,您可以指定将文本的大小和间距缩小以使其适应框。要指定此设置,请从 [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) 类调用 `setAutofitType` 方法,传入 `Normal` 值。 + +![shrinktextonoverflow-setting-powerpoint](shrinktextonoverflow-setting-powerpoint.png) + +下面的 JavaScript 代码演示如何在 PowerPoint 演示文稿中指定在溢出时收缩文本: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setAutofitType(aspose.slides.TextAutofitType.Normal); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Info" color="info" %}} +使用 **Shrink text on overflow** 选项时,只有当文本对其框来说过长时,才会应用此设置。 +{{% /alert %}} + +## **换行文本** + +如果您希望形状内的文本在超出形状边界(仅宽度)时换行,需要使用 **Wrap text in shape** 参数。要指定此设置,必须从 [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) 类调用 `setWrapText` 方法,传入 `true` 值。 + +下面的 JavaScript 代码演示如何在 PowerPoint 演示文稿中使用换行文本设置: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100); + var portion = new aspose.slides.Portion("lorem ipsum..."); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion); + var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat(); + textFrameFormat.setWrapText(aspose.slides.NullableBool.True); + pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert title="Note" color="warning" %}} +如果对形状调用 `setWrapText` 方法并传入 `False` 值,当形状内的文本长度超过形状宽度时,文本会在单行上延伸超出形状边界。 +{{% /alert %}} + +## **常见问题** + +**Do the text frame’s internal margins affect AutoFit?** +**文本框的内部边距会影响 AutoFit 吗?** +是的。内部边距(填充)会减小可用于文本的面积,从而使 AutoFit 更早触发——会更快缩小字体或调整形状大小。请在调优 AutoFit 之前检查并调整边距。 + +**How does AutoFit interact with manual and soft line breaks?** +**AutoFit 与手动和软换行如何交互?** +强制换行会保留下来,AutoFit 会在它们周围调整字体大小和间距。删除不必要的换行通常可以降低 AutoFit 的收缩力度。 + +**Does changing the theme font or triggering font substitution affect AutoFit results?** +**更改主题字体或触发字体替换会影响 AutoFit 结果吗?** +会。替换为字形度量不同的字体会改变文本的宽度/高度,从而可能改变最终的字体大小和换行方式。进行任何字体更改或替换后,请重新检查幻灯片。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md new file mode 100644 index 0000000000..382419cb28 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-bullet/_index.md @@ -0,0 +1,317 @@ +--- +title: 管理项目符号 +type: docs +weight: 60 +url: /zh/nodejs-java/manage-bullet/ +keywords: "项目符号, 项目符号列表, 数字, 编号列表, 图片项目符号, 多级项目符号, PowerPoint 演示文稿, Java, Aspose.Slides for Node.js via Java" +description: "在 PowerPoint 演示文稿中使用 JavaScript 创建项目符号和编号列表" +--- + +在 **Microsoft PowerPoint** 中,您可以像在 Word 和其他文本编辑器中一样创建项目符号和编号列表。**Aspose.Slides for Node.js via Java** 还允许您在演示文稿的幻灯片中使用项目符号和编号。 + +## **为什么使用项目符号列表?** + +项目符号列表帮助您快速高效地组织和呈现信息。 + +**项目符号列表示例** + +在大多数情况下,项目符号列表具备以下三个主要功能: + +- 吸引读者或观众注意重要信息 +- 让读者或观众轻松浏览关键要点 +- 高效地传达重要细节。 + +## **为什么使用编号列表?** + +编号列表同样有助于组织和呈现信息。当条目的顺序(例如 *step 1, step 2* 等)重要,或需要引用条目(例如 *see step 3*)时,理想情况下应使用数字代替项目符号。 + +**编号列表示例** + +以下是 **Creating Bullets** 过程中的步骤摘要(第1步至第15步): + +1. 创建 Presentation 类的实例。 +2. 执行多个任务(第3步至第14步)。 +3. 保存演示文稿。 + +## **创建项目符号** + +本主题也是管理文本段落系列主题的一部分。此页将演示如何管理段落项目符号。项目符号在需要分步骤描述的情况下尤为有用,并且使用项目符号后文本看起来更有条理。带项目符号的段落始终更易阅读和理解。我们将看到开发者如何使用 Aspose.Slides for Node.js via Java 的这一小而强大功能。请按以下步骤使用 Aspose.Slides for Node.js via Java 管理段落项目符号: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类的实例。 +2. 使用 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) 对象访问幻灯片集合中的所需幻灯片。 +3. 在选定的幻灯片中添加 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +4. 访问已添加形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame)。 +5. 删除 TextFrame 中的默认段落。 +6. 使用 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Paragraph) 类创建第一个段落实例。 +7. 设置段落的项目符号类型。 +8. 将项目符号类型设置为 [Symbol](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BulletType#Symbol) 并设置项目符号字符。 +9. 设置段落文本。 +10. 设置段落缩进以设置项目符号。 +11. 设置项目符号的颜色。 +12. 设置项目符号的高度。 +13. 将创建的段落添加到 TextFrame 的段落集合中。 +14. 添加第二个段落并重复步骤 **7 到 13** 中的过程。 +15. 保存演示文稿。 + +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加并访问自动形状 + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问创建的自动形状的文本框 + var txtFrm = aShp.getTextFrame(); + // 删除默认的现有段落 + txtFrm.getParagraphs().removeAt(0); + // 创建一个段落 + var para = new aspose.slides.Paragraph(); + // 设置段落项目符号样式和符号 + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // 设置段落文本 + para.setText("Welcome to Aspose.Slides"); + // 设置项目符号缩进 + para.getParagraphFormat().setIndent(25); + // 设置项目符号颜色 + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 将 IsBulletHardColor 设置为 true 以使用自定义项目符号颜色 + para.getParagraphFormat().getBullet().isBulletHardColor(); + // 设置项目符号高度 + para.getParagraphFormat().getBullet().setHeight(100); + // 将段落添加到文本框 + txtFrm.getParagraphs().add(para); + // 将演示文稿保存为 PPTX 文件 + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + pres.dispose(); +} +``` + + +## **创建图片项目符号** + +Aspose.Slides for Node.js via Java 允许您更改项目符号列表中的项目符号。您可以使用自定义符号或图像替换项目符号。如果希望为列表添加视觉趣味或让列表中的条目更突出,可以使用自己的图像作为项目符号。 + +{{% alert color="primary" %}} + +理想情况下,如果您打算用图片替换常规项目符号,建议选择具有透明背景的简单图形图像。这类图像最适合作为自定义项目符号。 + +无论如何,您选择的图像会被缩小到非常小的尺寸,因此我们强烈建议您选择在列表中作为项目符号替代品时仍然外观良好的图像。 + +{{% /alert %}} + +创建图片项目符号,请按以下步骤操作: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类的实例 +2. 使用 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) 对象访问幻灯片集合中的所需幻灯片 +3. 在选定的幻灯片中添加 autoshape +4. 访问已添加形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) +5. 删除 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 中的默认段落 +6. 使用 Paragraph 类创建第一个段落实例 +7. 在 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/PPImage) 中从磁盘加载图像 +8. 将项目符号类型设置为 Picture 并设置图像 +9. 设置段落文本 +10. 设置段落缩进以设置项目符号 +11. 设置项目符号的颜色 +12. 设置项目符号的高度 +13. 将创建的段落添加到 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 段落集合中 +14. 添加第二个段落并重复前述步骤 +15. 保存演示文稿 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 实例化用于项目符号的图像 + var picture; + var image = aspose.slides.Images.fromFile("asp1.jpg"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 添加并访问自动形状 + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问创建的自动形状的文本框 + var txtFrm = aShp.getTextFrame(); + // 删除默认的现有段落 + txtFrm.getParagraphs().removeAt(0); + // 创建新段落 + var para = new aspose.slides.Paragraph(); + para.setText("Welcome to Aspose.Slides"); + // 设置段落项目符号样式和图像 + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + para.getParagraphFormat().getBullet().getPicture().setImage(picture); + // 设置项目符号高度 + para.getParagraphFormat().getBullet().setHeight(100); + // 将段落添加到文本框 + txtFrm.getParagraphs().add(para); + // 将演示文稿写入为 PPTX 文件 + pres.save("Bullet.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **创建多级项目符号** + +要创建包含不同层级项目的项目符号列表(主列表下的子列表),请按以下步骤操作: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类的实例。 +2. 使用 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) 对象访问幻灯片集合中的所需幻灯片。 +3. 在选定的幻灯片中添加 autoshape。 +4. 访问已添加形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe)。 +5. 删除 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 中的默认段落。 +6. 使用 Paragraph 类创建第一个段落实例,并将 depth 设置为 0。 +7. 使用 Paragraph 类创建第二个段落实例,并将 depth 设置为 1。 +8. 使用 Paragraph 类创建第三个段落实例,并将 depth 设置为 2。 +9. 使用 Paragraph 类创建第四个段落实例,并将 depth 设置为 3。 +10. 将创建的段落添加到 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 段落集合中。 +11. 保存演示文稿。 + +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加并访问自动形状 + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问创建的自动形状的文本框 + var txtFrm = aShp.addTextFrame(""); + // 删除默认的现有段落 + txtFrm.getParagraphs().clear(); + // 创建第一段落 + var para1 = new aspose.slides.Paragraph(); + // 设置段落项目符号样式和符号 + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号级别 + para1.getParagraphFormat().setDepth(0); + // 创建第二段落 + var para2 = new aspose.slides.Paragraph(); + // 设置段落项目符号样式和符号 + para2.setText("Second level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号级别 + para2.getParagraphFormat().setDepth(1); + // 创建第三段落 + var para3 = new aspose.slides.Paragraph(); + // 设置段落项目符号样式和符号 + para3.setText("Third level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号级别 + para3.getParagraphFormat().setDepth(2); + // 创建第四段落 + var para4 = new aspose.slides.Paragraph(); + // 设置段落项目符号样式和符号 + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号级别 + para4.getParagraphFormat().setDepth(3); + // 将段落添加到文本框 + txtFrm.getParagraphs().add(para1); + txtFrm.getParagraphs().add(para2); + txtFrm.getParagraphs().add(para3); + txtFrm.getParagraphs().add(para4); + // 将演示文稿保存为 PPTX 文件 + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **创建自定义编号列表** + +Aspose.Slides for Node.js via Java 提供了一个简易 API,用于管理具有自定义数字格式的段落。要在段落中添加自定义编号列表,请按以下步骤操作: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类的实例。 +2. 使用 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide) 对象访问幻灯片集合中的所需幻灯片。 +3. 在选定的幻灯片中添加 autoshape。 +4. 访问已添加形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe)。 +5. 删除 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 中的默认段落。 +6. 使用 Paragraph 类创建第一个段落实例,并将 **NumberedBulletStartWith** 设置为 2 +7. 使用 Paragraph 类创建第二个段落实例,并将 **NumberedBulletStartWith** 设置为 3 +8. 使用 Paragraph 类创建第三个段落实例,并将 **NumberedBulletStartWith** 设置为 7 +9. 将创建的段落添加到 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe) 段落集合中。 +10. 保存演示文稿。 + +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加并访问自动形状 + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问创建的自动形状的文本框 + var txtFrm = aShp.addTextFrame(""); + // 删除默认的现有段落 + txtFrm.getParagraphs().clear(); + // 第一个列表 + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph2); + // 第二个列表 + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 5"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(5); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + txtFrm.getParagraphs().add(paragraph5); + pres.save(resourcesOutputPath + "SetCustomBulletsNumber-slides.pptx.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Can bulleted and numbered lists created with Aspose.Slides be exported to other formats such as PDF or images?** + +是的,Aspose.Slides 在将演示文稿导出为 PDF、图像等格式时会完整保留项目符号和编号列表的格式和结构,确保结果一致。 + +**Is it possible to import bullet or numbered lists from existing presentations?** + +是的,Aspose.Slides 允许您导入并编辑现有演示文稿中的项目符号或编号列表,同时保持其原有的格式和外观。 + +**Does Aspose.Slides support bullet and numbered lists in presentations created in multiple languages?** + +是的,Aspose.Slides 完全支持多语言演示文稿,您可以使用任何语言(包括特殊字符或非拉丁字符)创建项目符号和编号列表。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md new file mode 100644 index 0000000000..f633a50c82 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-paragraph/_index.md @@ -0,0 +1,712 @@ +--- +title: 在 JavaScript 中管理 PowerPoint 段落 +type: docs +weight: 40 +url: /zh/nodejs-java/manage-paragraph/ +keywords: +- 添加文本 +- 添加段落 +- 管理文本 +- 管理段落 +- 段落缩进 +- 段落项目符号 +- 编号列表 +- 段落属性 +- 导入 HTML +- 文本转 HTML +- 段落转 HTML +- 段落转图像 +- 导出段落 +- PowerPoint 演示文稿 +- JavaScript +- Aspose.Slides for Node.js via Java +description: "在 JavaScript 中创建段落并管理 PowerPoint 演示文稿的段落属性" +--- + +Aspose.Slides 提供了处理 Java 中 PowerPoint 文本、段落和部分所需的所有类。 + +* Aspose.Slides 提供了 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) 类,允许您添加表示段落的对象。`ITextFame` 对象可以包含一个或多个段落(每个段落通过回车创建)。 +* Aspose.Slides 提供了 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 类,允许您添加表示部分的对象。`IParagraph` 对象可以包含一个或多个部分(iPortions 对象的集合)。 +* Aspose.Slides 提供了 [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) 类,允许您添加表示文本及其格式属性的对象。 + +`IParagraph` 对象能够通过其底层的 `IPortion` 对象处理具有不同格式属性的文本。 + +## **添加包含多个部分的多个段落** + +以下步骤演示如何添加包含 3 个段落且每个段落包含 3 个部分的文本框: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +2. 通过索引访问相关幻灯片的引用。 +3. 向幻灯片添加一个矩形 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +4. 获取与该 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/) 关联的 ITextFrame。 +5. 创建两个 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 对象,并将它们添加到 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/) 的 `IParagraphs` 集合中。 +6. 为每个新 `IParagraph` 创建三个 [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portion/) 对象(默认段落创建两个 Portion 对象),并将每个 `IPortion` 对象添加到相应 `IParagraph` 的 IPortion 集合中。 +7. 为每个部分设置一些文本。 +8. 使用 `IPortion` 对象公开的格式属性,为每个部分应用您偏好的格式功能。 +9. 保存修改后的演示文稿。 + +这段 Javascript 代码演示了添加包含部分的段落的步骤实现: +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加一个矩形类型的 AutoShape + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150); + // 获取该 AutoShape 的 TextFrame + var tf = ashp.getTextFrame(); + // 创建具有不同文本格式的段落和部分 + var para0 = tf.getParagraphs().get_Item(0); + var port01 = new aspose.slides.Portion(); + var port02 = new aspose.slides.Portion(); + para0.getPortions().add(port01); + para0.getPortions().add(port02); + var para1 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para1); + var port10 = new aspose.slides.Portion(); + var port11 = new aspose.slides.Portion(); + var port12 = new aspose.slides.Portion(); + para1.getPortions().add(port10); + para1.getPortions().add(port11); + para1.getPortions().add(port12); + var para2 = new aspose.slides.Paragraph(); + tf.getParagraphs().add(para2); + var port20 = new aspose.slides.Portion(); + var port21 = new aspose.slides.Portion(); + var port22 = new aspose.slides.Portion(); + para2.getPortions().add(port20); + para2.getPortions().add(port21); + para2.getPortions().add(port22); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j); + portion.setText("Portion0" + j); + if (j == 0) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(15); + } else if (j == 1) { + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + portion.getPortionFormat().setFontHeight(18); + } + } + } + // 将 PPTX 写入磁盘 + pres.save("multiParaPort_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **管理段落项目符号** + +项目符号列表帮助您快速高效地组织和呈现信息。使用项目符号的段落更易于阅读和理解。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +2. 通过索引访问相关幻灯片的引用。 +3. 向选定的幻灯片添加一个 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +4. 访问该 autoshape 的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +5. 删除 `TextFrame` 中的默认段落。 +6. 使用 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 类创建第一个段落实例。 +7. 将段落的项目符号 `Type` 设置为 `Symbol` 并设置项目符号字符。 +8. 设置段落的 `Text`。 +9. 为项目符号设置段落的 `Indent`。 +10. 为项目符号设置颜色。 +11. 设置项目符号的高度。 +12. 将新段落添加到 `TextFrame` 的段落集合中。 +13. 添加第二个段落并重复步骤 7 至 13 中的过程。 +14. 保存演示文稿。 + +这段 Javascript 代码演示了如何添加段落项目符号: +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加并访问 Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问 Autoshape 的文本框 + var txtFrm = aShp.getTextFrame(); + // 删除默认段落 + txtFrm.getParagraphs().removeAt(0); + // 创建段落 + var para = new aspose.slides.Paragraph(); + // 设置段落项目符号样式和符号 + para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para.getParagraphFormat().getBullet().setChar(8226); + // 设置段落文本 + para.setText("Welcome to Aspose.Slides"); + // 设置项目符号缩进 + para.getParagraphFormat().setIndent(25); + // 设置项目符号颜色 + para.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// 将 IsBulletHardColor 设置为 true 以使用自定义项目符号颜色 + // 设置项目符号高度 + para.getParagraphFormat().getBullet().setHeight(100); + // 将段落添加到文本框 + txtFrm.getParagraphs().add(para); + // 创建第二个段落 + var para2 = new aspose.slides.Paragraph(); + // 设置段落项目符号类型和样式 + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain); + // 添加段落文本 + para2.setText("This is numbered bullet"); + // 设置项目符号缩进 + para2.getParagraphFormat().setIndent(25); + para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB); + para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// 将 IsBulletHardColor 设置为 true 以使用自定义项目符号颜色 + // 设置项目符号高度 + para2.getParagraphFormat().getBullet().setHeight(100); + // 将段落添加到文本框 + txtFrm.getParagraphs().add(para2); + // 保存修改后的演示文稿 + pres.save("Bullet_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **管理图片项目符号** + +项目符号列表帮助您快速高效地组织和呈现信息。图片段落易于阅读和理解。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +2. 通过索引访问相关幻灯片的引用。 +3. 向幻灯片添加一个 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +4. 访问该 autoshape 的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +5. 删除 `TextFrame` 中的默认段落。 +6. 使用 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 类创建第一个段落实例。 +7. 在 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) 中加载图像。 +8. 将项目符号类型设置为 [Picture](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ppimage/) 并指定图像。 +9. 设置段落的 `Text`。 +10. 为项目符号设置段落的 `Indent`。 +11. 为项目符号设置颜色。 +12. 为项目符号设置高度。 +13. 将新段落添加到 `TextFrame` 的段落集合中。 +14. 添加第二个段落并根据前面的步骤重复操作。 +15. 保存修改后的演示文稿。 + +这段 Javascript 代码演示了如何添加和管理图片项目符号: +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 类 +var presentation = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = presentation.getSlides().get_Item(0); + // 实例化子弹的图像 + var picture; + var image = aspose.slides.Images.fromFile("bullets.png"); + try { + picture = presentation.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 添加并访问 Autoshape + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问 Autoshape 的文本框 + var textFrame = autoShape.getTextFrame(); + // 删除默认段落 + textFrame.getParagraphs().removeAt(0); + // 创建新的段落 + var paragraph = new aspose.slides.Paragraph(); + paragraph.setText("Welcome to Aspose.Slides"); + // 设置段落项目符号样式和图像 + paragraph.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Picture); + paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture); + // 设置项目符号高度 + paragraph.getParagraphFormat().getBullet().setHeight(100); + // 将段落添加到文本框 + textFrame.getParagraphs().add(paragraph); + // 将演示文稿写入 PPTX 文件 + presentation.save("ParagraphPictureBulletsPPTX_out.pptx", aspose.slides.SaveFormat.Pptx); + // 将演示文稿写入 PPT 文件 + presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt); +} catch (e) {console.log(e); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **管理多级项目符号** + +项目符号列表帮助您快速高效地组织和呈现信息。多级项目符号易于阅读和理解。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +2. 通过索引访问相关幻灯片的引用。 +3. 在新幻灯片中添加一个 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +4. 访问该 autoshape 的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +5. 删除 `TextFrame` 中的默认段落。 +6. 通过 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 类创建首个段落实例,并将深度设置为 0。 +7. 通过 `Paragraph` 类创建第二个段落实例,并将深度设置为 1。 +8. 通过 `Paragraph` 类创建第三个段落实例,并将深度设置为 2。 +9. 通过 `Paragraph` 类创建第四个段落实例,并将深度设置为 3。 +10. 将新段落添加到 `TextFrame` 的段落集合中。 +11. 保存修改后的演示文稿。 + +这段 Javascript 代码演示了如何添加和管理多级项目符号: +```javascript +// 实例化表示 PPTX 文件的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加并访问 Autoshape + var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问创建的 Autoshape 的文本框 + var text = aShp.addTextFrame(""); + // 清除默认段落 + text.getParagraphs().clear(); + // 添加第一段落 + var para1 = new aspose.slides.Paragraph(); + para1.setText("Content"); + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号层级 + para1.getParagraphFormat().setDepth(0); + // 添加第二段落 + var para2 = new aspose.slides.Paragraph(); + para2.setText("Second Level"); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar('-'); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号层级 + para2.getParagraphFormat().setDepth(1); + // 添加第三段落 + var para3 = new aspose.slides.Paragraph(); + para3.setText("Third Level"); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号层级 + para3.getParagraphFormat().setDepth(2); + // 添加第四段落 + var para4 = new aspose.slides.Paragraph(); + para4.setText("Fourth Level"); + para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para4.getParagraphFormat().getBullet().setChar('-'); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 设置项目符号层级 + para4.getParagraphFormat().setDepth(3); + // 将段落添加到集合 + text.getParagraphs().add(para1); + text.getParagraphs().add(para2); + text.getParagraphs().add(para3); + text.getParagraphs().add(para4); + // 将演示文稿写入 PPTX 文件 + pres.save("MultilevelBullet.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **管理带自定义编号列表的段落** + +[BulletFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/) 类提供 [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) 属性等,可帮助您管理带自定义编号或格式的段落。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +2. 访问包含该段落的幻灯片。 +3. 向幻灯片添加一个 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +4. 访问该 autoshape 的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +5. 删除 `TextFrame` 中的默认段落。 +6. 通过 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 类创建首个段落实例,并将 [NumberedBulletStartWith](https://reference.aspose.com/slides/nodejs-java/aspose.slides/bulletformat/#setNumberedBulletStartWith-short-) 设置为 2。 +7. 创建第二个段落实例,并将 `NumberedBulletStartWith` 设置为 3。 +8. 创建第三个段落实例,并将 `NumberedBulletStartWith` 设置为 7。 +9. 将新段落添加到 `TextFrame` 的段落集合中。 +10. 保存修改后的演示文稿。 + +这段 Javascript 代码演示了如何添加和管理带自定义编号或格式的段落: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + // 访问创建的 autoshape 的文本框 + var textFrame = shape.getTextFrame(); + // 删除默认存在的段落 + textFrame.getParagraphs().removeAt(0); + // 第一个列表 + var paragraph1 = new aspose.slides.Paragraph(); + paragraph1.setText("bullet 2"); + paragraph1.getParagraphFormat().setDepth(4); + paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2); + paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph1); + var paragraph2 = new aspose.slides.Paragraph(); + paragraph2.setText("bullet 3"); + paragraph2.getParagraphFormat().setDepth(4); + paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3); + paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph2); + var paragraph5 = new aspose.slides.Paragraph(); + paragraph5.setText("bullet 7"); + paragraph5.getParagraphFormat().setDepth(4); + paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7); + paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered); + textFrame.getParagraphs().add(paragraph5); + presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **设置段落缩进** + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +1. 通过索引访问相关幻灯片的引用。 +1. 向幻灯片添加一个矩形 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +1. 向矩形 autoshape 添加带有三个段落的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +1. 隐藏矩形的线条。 +1. 通过它们的 BulletOffset 属性为每个 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 设置缩进。 +1. 将修改后的演示文稿写为 PPT 文件。 + +这段 Javascript 代码演示了如何设置段落缩进: +```javascript +// 实例化 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 添加矩形形状 + var rect = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 500, 150); + // 向矩形添加 TextFrame + var tf = rect.addTextFrame("This is first line \rThis is second line \rThis is third line"); + // 设置文本以适应形状 + tf.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // 隐藏矩形的线条 + rect.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + // 获取 TextFrame 中的第一个段落并设置其缩进 + var para1 = tf.getParagraphs().get_Item(0); + // 设置段落项目符号样式和符号 + para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para1.getParagraphFormat().getBullet().setChar(8226); + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para1.getParagraphFormat().setDepth(2); + para1.getParagraphFormat().setIndent(30); + // 获取 TextFrame 中的第二个段落并设置其缩进 + var para2 = tf.getParagraphs().get_Item(1); + para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para2.getParagraphFormat().getBullet().setChar(8226); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para2.getParagraphFormat().setDepth(2); + para2.getParagraphFormat().setIndent(40); + // 获取 TextFrame 中的第三个段落并设置其缩进 + var para3 = tf.getParagraphs().get_Item(2); + para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol); + para3.getParagraphFormat().getBullet().setChar(8226); + para3.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Left); + para3.getParagraphFormat().setDepth(2); + para3.getParagraphFormat().setIndent(50); + // 将演示文稿写入磁盘 + pres.save("InOutDent_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置段落首行悬挂缩进** + +这段 Javascript 代码演示了如何设置段落的悬挂缩进: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 250, 550, 150); + var para1 = new aspose.slides.Paragraph(); + para1.setText("Example"); + var para2 = new aspose.slides.Paragraph(); + para2.setText("Set Hanging Indent for Paragraph"); + var para3 = new aspose.slides.Paragraph(); + para3.setText("This code shows you how to set the hanging indent for a paragraph: "); + para2.getParagraphFormat().setMarginLeft(10.0); + para3.getParagraphFormat().setMarginLeft(20.0); + autoShape.getTextFrame().getParagraphs().add(para1); + autoShape.getTextFrame().getParagraphs().add(para2); + autoShape.getTextFrame().getParagraphs().add(para3); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **管理段落结束运行属性** + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +1. 通过位置获取包含该段落的幻灯片的引用。 +1. 向幻灯片添加一个矩形 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +1. 向矩形添加带有两个段落的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +1. 为段落设置 `FontHeight` 和字体类型。 +1. 为段落设置 End 属性。 +1. 将修改后的演示文稿写为 PPTX 文件。 + +这段 Javascript 代码演示了如何在 PowerPoint 中为段落设置 End 属性: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250); + var para1 = new aspose.slides.Paragraph(); + para1.getPortions().add(new aspose.slides.Portion("Sample text")); + var para2 = new aspose.slides.Paragraph(); + para2.getPortions().add(new aspose.slides.Portion("Sample text 2")); + var portionFormat = new aspose.slides.PortionFormat(); + portionFormat.setFontHeight(48); + portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman")); + para2.setEndParagraphPortionFormat(portionFormat); + shape.getTextFrame().getParagraphs().add(para1); + shape.getTextFrame().getParagraphs().add(para2); + pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将 HTML 文本导入段落** + +Aspose.Slides 为将 HTML 文本导入段落提供了增强支持。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +2. 通过索引访问相关幻灯片的引用。 +3. 向幻灯片添加一个 [autoshape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)。 +4. 添加并访问 `autoshape` 的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +5. 删除 `ITextFrame` 中的默认段落。 +6. 在 TextReader 中读取源 HTML 文件。 +7. 通过 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 类创建首个段落实例。 +8. 将读取的 TextReader 中的 HTML 文件内容添加到 TextFrame 的 [ParagraphCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphcollection/)。 +9. 保存修改后的演示文稿。 + +这段 Javascript 代码演示了将 HTML 文本导入段落的实现步骤: +```javascript +// 创建空的演示文稿实例 +var pres = new aspose.slides.Presentation(); +try { + // 访问演示文稿的默认第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加 AutoShape 以容纳 HTML 内容 + var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10); + ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 向形状添加文本框 + ashape.addTextFrame(""); + // 清除已添加文本框中的所有段落 + ashape.getTextFrame().getParagraphs().clear(); + // 使用流读取器加载 HTML 文件 + var tr = java.newInstanceSync("StreamReader", "file.html"); + // 将 HTML 流读取器中的文本添加到文本框 + ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd()); + // 保存演示文稿 + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将段落文本导出为 HTML** + +Aspose.Slides 为将文本(包含在段落中)导出为 HTML 提供了增强支持。 + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例并加载所需的演示文稿。 +2. 通过索引访问相关幻灯片的引用。 +3. 访问包含将导出为 HTML 的文本的形状。 +4. 访问该形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframe/)。 +5. 创建 `StreamWriter` 实例并添加新的 HTML 文件。 +6. 为 StreamWriter 提供起始索引并导出您选择的段落。 + +这段 Javascript 代码演示了如何将 PowerPoint 段落文本导出为 HTML: +```javascript +// 加载演示文稿文件 +var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx"); +try { + // 访问演示文稿的默认第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 期望的索引 + var index = 0; + // 访问已添加的形状 + var ashape = slide.getShapes().get_Item(index); + // 创建输出 HTML 文件 + var os = java.newInstanceSync("java.io.FileOutputStream", "output.html"); + var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8"); + // 将第一段落提取为 HTML + // 通过提供段落起始索引和要复制的段落总数,将段落数据写入 HTML + writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null)); + writer.close(); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **将段落保存为图像** + +在本节中,我们将介绍两个示例,演示如何将由 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraph/) 接口表示的文本段落保存为图像。两个示例均包括使用 [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) 接口的 `getImage` 方法获取包含段落的形状图像,计算段落在形状内的边界,并将其导出为位图图像。这些方法使您能够从 PowerPoint 演示文稿中提取特定文本并将其保存为单独的图像,适用于各种场景。 + +假设我们有一个名为 sample.pptx 的演示文稿,包含一张幻灯片,第一形状是一个包含三个段落的文本框。 + +![The text box with three paragraphs](paragraph_to_image_input.png) + +**示例 1** + +在本示例中,我们获取第二段落的图像。为此,我们从演示文稿的第一页中提取形状图像,然后计算该形状文本框中第二段落的边界。随后将该段落重新绘制到新的位图图像中,并以 PNG 格式保存。此方法在需要将特定段落保存为单独图像且保持文本的精确尺寸和格式时特别有用。 + +```java +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // 将形状保存到内存中为位图。 + const shapeImage = firstShape.getImage(); + + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + shapeImageStream.flush(); + + // 从内存创建形状位图。 + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // 计算第二段的边界。 + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + + // 计算输出图像的坐标和尺寸(最小大小为 1x1 像素)。 + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // 裁剪形状位图,仅获取段落位图。 + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +结果: + +![The paragraph image](paragraph_to_image_output.png) + +**示例 2** + +在本示例中,我们在前一种方法的基础上为段落图像添加缩放因子。形状从演示文稿中提取,并以缩放因子 `2` 保存为图像。这在导出段落时可获得更高分辨率的输出。随后在考虑缩放的情况下计算段落边界。当需要更详细的图像(例如用于高质量印刷材料)时,缩放尤其有用。 + +```java +const imageScaleX = 2; +const imageScaleY = imageScaleX; + +const imageio = java.import("javax.imageio.ImageIO"); +const presentation = new aspose.slides.Presentation("sample.pptx"); +try { + const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + + // 将形状保存到内存中为位图并进行缩放。 + const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY); + const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream"); + shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png); + shapeImage.dispose(); + + // 从内存创建形状位图。 + const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray"); + const javaBytes = java.newArray("byte", Array.from(byteBuffer)); + const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream"); + const shapeImageInputStream = new ByteArrayInputStream(javaBytes); + const shapeBitmap = imageio.read(shapeImageInputStream); + + // 计算第二段的边界。 + const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1); + const paragraphRectangle = secondParagraph.getRect(); + paragraphRectangle.setRect( + paragraphRectangle.getX() * imageScaleX, + paragraphRectangle.getY() * imageScaleY, + paragraphRectangle.getWidth() * imageScaleX, + paragraphRectangle.getHeight() * imageScaleY + ); + + // 计算输出图像的坐标和尺寸(最小尺寸为 1x1 像素)。 + const imageX = Math.floor(paragraphRectangle.getX()); + const imageY = Math.floor(paragraphRectangle.getY()); + const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth())); + const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight())); + + // 裁剪形状位图,仅获取段落位图。 + const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight); + + const file = java.newInstanceSync("java.io.File", "paragraph.png"); + + imageio.write(paragraphBitmap, "png", file); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **常见问题** + +**我可以完全禁用文本框内的自动换行吗?** + +可以。使用文本框的换行设置([setWrapText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textframeformat/setwraptext/))将换行关闭,行就不会在框边缘断开。 + +**我如何获取特定段落在幻灯片上的精确边界?** + +您可以检索段落(甚至单个部分)的边界矩形,以了解其在幻灯片上的精确位置和大小。 + +**段落对齐方式(左/右/居中/两端对齐)在哪里控制?** + +[setAlignment](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/setalignment/) 是在 [ParagraphFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/paragraphformat/) 中用于段落级别设置的方法;它适用于整个段落,而不受单个部分格式的影响。 + +**我可以仅为段落的一部分(例如一个词)设置拼写检查语言吗?** + +可以。语言在部分级别设置([PortionFormat.setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId)),因此在同一段落中可以共存多种语言。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md new file mode 100644 index 0000000000..ebd91abf41 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-placeholder/_index.md @@ -0,0 +1,113 @@ +--- +title: 管理占位符 +type: docs +weight: 10 +url: /zh/nodejs-java/manage-placeholder/ +description: 使用 JavaScript 在 PowerPoint 幻灯片中更改占位符文本。使用 JavaScript 在 PowerPoint 幻灯片中设置占位符提示文本。 +--- + +## **更改占位符中的文本** + +使用 [Aspose.Slides for Node.js via Java](/slides/zh/nodejs-java/),您可以在演示文稿的幻灯片上查找并修改占位符。Aspose.Slides 允许您更改占位符中的文本。 + +**先决条件**:您需要一个包含占位符的演示文稿。您可以在标准的 Microsoft PowerPoint 应用程序中创建此类演示文稿。 + +以下示例演示如何使用 Aspose.Slides 替换该演示文稿中占位符的文本: + +1. 实例化 [`Presentation`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类,并将演示文稿作为参数传入。 +2. 通过索引获取幻灯片的引用。 +3. 遍历形状以查找占位符。 +4. 将占位符形状强制转换为 [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape),并使用与该 [`AutoShape`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) 关联的 [`TextFrame`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 来更改文本。 +5. 保存修改后的演示文稿。 + +以下 JavaScript 代码示例展示了如何更改占位符中的文本: +```javascript +// 实例化 Presentation 类 +var pres = new aspose.slides.Presentation("ReplacingText.pptx"); +try { + // 访问第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 遍历形状以查找占位符 + for (let i = 0; i < sld.getShapes().size(); i++) { + let shp = sld.getShapes().get_Item(i); + if (shp.getPlaceholder() != null) { + // 更改每个占位符中的文本 + shp.getTextFrame().setText("This is Placeholder"); + } + } + // 将演示文稿保存到磁盘 + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在占位符中设置提示文本** + +标准和预构建布局包含占位符提示文本,例如 ***Click to add a title*** 或 ***Click to add a subtitle***。使用 Aspose.Slides,您可以将自定义提示文本插入到占位符布局中。 + +以下 JavaScript 代码展示了如何在占位符中设置提示文本: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + // 遍历幻灯片 + for (let i = 0; i < slide.getSlide().getShapes().size(); i++) { + let shape = slide.getSlide().getShapes().get_Item(i); + if ((shape.getPlaceholder() != null) && (java.instanceOf(shape, "com.aspose.slides.AutoShape"))) { + var text = ""; + // PowerPoint 显示 "Click to add title" + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.CenteredTitle) { + text = "Add Title"; + } else // 添加副标题 + if (shape.getPlaceholder().getType() == aspose.slides.PlaceholderType.Subtitle) { + text = "Add Subtitle"; + } + shape.getTextFrame().setText(text); + console.log("Placeholder with text: " + text); + } + } + pres.save("Placeholders_PromptText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置占位符图像透明度** + +Aspose.Slides 允许您设置文本占位符中背景图像的透明度。通过调整该框架内图片的透明度,您可以使文本或图像突出显示(取决于文本和图片的颜色)。 + +以下 JavaScript 代码展示了如何为形状内的图片背景设置透明度: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var operationCollection = shape.getFillFormat().getPictureFillFormat().getPicture().getImageTransform(); +for (var i = 0; i < operationCollection.size(); i++) { + if (java.instanceOf(operationCollection.get_Item(i), "com.aspose.slides.AlphaModulateFixed")) { + var alphaModulate = operationCollection.get_Item(i); + var currentValue = 100 - alphaModulate.getAmount(); + console.log("Current transparency value: " + currentValue); + var alphaValue = 40; + alphaModulate.setAmount(100 - alphaValue); + } +} +presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **常见问题** + +**什么是基础占位符,它与幻灯片上的本地形状有何区别?** +基础占位符是布局或母版上原始的形状,幻灯片的形状会从其继承——类型、位置以及部分格式都会来自该占位符。本地形状是独立的;如果没有基础占位符,则不存在继承。 + +**如何在不遍历每张幻灯片的情况下更新整个演示文稿中的所有标题或说明文字?** +在布局或母版上编辑相应的占位符。基于这些布局/母版的幻灯片会自动继承该更改。 + +**如何控制标准的页眉/页脚占位符——日期和时间、幻灯片编号以及页脚文本?** +在相应的作用域(普通幻灯片、布局、母版、备注/讲义)使用 HeaderFooter 管理器,打开或关闭这些占位符并设置其内容。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md new file mode 100644 index 0000000000..cfcd5ec2fe --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/manage-textbox/_index.md @@ -0,0 +1,298 @@ +--- +title: 管理文本框 +type: docs +weight: 20 +url: /zh/nodejs-java/manage-textbox/ +keywords: +- 文本框 +- 文本框架 +- 添加文字 +- 更新文字 +- 带超链接的文本框 +- PowerPoint +- 演示文稿 +- Node.js +- JavaScript +- Aspose.Slides for Node.js via Java +description: "使用 JavaScript 在 PowerPoint 演示文稿中管理文本框或文本框架" +--- + +幻灯片上的文字通常位于文本框或形状中。因此,要在幻灯片上添加文字,需要先添加一个文本框,然后在文本框中放入文字。Aspose.Slides for Node.js via Java 提供了[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)类,允许您添加包含文字的形状。 + +{{% alert title="Info" color="info" %}} + +Aspose.Slides 还提供了[Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape)类,可用于向幻灯片添加形状。但并非所有通过`Shape`类添加的形状都能容纳文字。而通过[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)类添加的形状可以包含文字。 + +{{% /alert %}} + +{{% alert title="Note" color="warning" %}} + +因此,在处理需要添加文字的形状时,您可能需要检查并确认它是通过`AutoShape`类创建的。只有这样才能使用`AutoShape`下的属性[TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame)。请参阅本页的[Update Text](https://docs.aspose.com/slides/nodejs-java/manage-textbox/#update-text)章节。 + +{{% /alert %}} + +## **Create Text Box on Slide** + +要在幻灯片上创建文本框,请按以下步骤操作: + +1. 创建一个[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)类的实例。 +2. 获取新创建演示文稿中第一张幻灯片的引用。 +3. 在幻灯片的指定位置添加一个`ShapeType`设置为`Rectangle`的[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)对象,并获取新添加的`AutoShape`对象的引用。 +4. 为该`AutoShape`对象添加`TextFrame`属性,以便容纳文字。下面的示例中,我们添加的文字是 *Aspose TextBox*。 +5. 最后,通过`Presentation`对象写出 PPTX 文件。 + +下面的 JavaScript 代码实现了上述步骤,演示了如何向幻灯片添加文字: +```javascript +// 实例化 Presentation +var pres = new aspose.slides.Presentation(); +try { + // 获取演示文稿中的第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 添加 AutoShape,类型设置为 Rectangle + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // 向 Rectangle 添加 TextFrame + ashp.addTextFrame(" "); + // 访问文本框架 + var txtFrame = ashp.getTextFrame(); + // 为文本框架创建 Paragraph 对象 + var para = txtFrame.getParagraphs().get_Item(0); + // 为段落创建 Portion 对象 + var portion = para.getPortions().get_Item(0); + // 设置文本 + portion.setText("Aspose TextBox"); + // 将演示文稿保存到磁盘 + pres.save("TextBox_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Check for Text Box Shape** + +Aspose.Slides 提供了[AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/)类的[isTextBox](https://reference.aspose.com/slides/nodejs-java/aspose.slides/autoshape/#isTextBox)方法,允许您检查形状并识别文本框。 + +![文本框和形状](istextbox.png) + +下面的 JavaScript 代码展示了如何检查形状是否被创建为文本框: +```javascript +var presentation = new aspose.slides.Presentation("sample.pptx"); +try { + java.callStaticMethodSync("ForEach", "shape", presentation, (shape, slide, index) -> { + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + console.log(autoShape.isTextBox() ? "shape is a text box" : "shape is not a text box"); + } + }); +} finally { + presentation.dispose(); +} +``` + + +请注意,如果仅使用[ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shapecollection/)类的`addAutoShape`方法添加 AutoShape,则该 AutoShape 的`isTextBox`方法返回`false`。但在使用`addTextFrame`方法或`setText`方法向 AutoShape 添加文字后,`isTextBox`属性将返回`true`。 +```javascript +var presentation = new aspose.slides.Presentation(); +var slide = presentation.getSlides().get_Item(0); + +var shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 40); +// shape1.isTextBox() 返回 false +shape1.addTextFrame("shape 1"); +// shape1.isTextBox() 返回 true + +var shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 110, 100, 40); +// shape2.isTextBox() 返回 false +shape2.getTextFrame().setText("shape 2"); +// shape2.isTextBox() 返回 true + +var shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 210, 100, 40); +// shape3.isTextBox() 返回 false +shape3.addTextFrame(""); +// shape3.isTextBox() 返回 false + +var shape4 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 310, 100, 40); +// shape4.isTextBox() 返回 false +shape4.getTextFrame().setText(""); +// shape4.isTextBox() 返回 false +``` + + +## **Add Column In Text Box** + +Aspose.Slides 提供了[TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)类的[setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-)和[setColumnSpacing](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnSpacing-double-)方法,允许您在文本框中添加列。您可以指定文本框的列数并设置列之间的间距(单位为磅)。 + +下面的 JavaScript 代码演示了上述操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 获取演示文稿中的第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加 AutoShape,类型设置为 Rectangle + var aShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + // 向 Rectangle 添加 TextFrame + aShape.addTextFrame((("All these columns are limited to be within a single text container -- " + "you can add or delete text and the new or remaining text automatically adjusts ") + "itself to flow within the container. You cannot have text flow from one container ") + "to other though -- we told you PowerPoint's column options for text are limited!"); + // 获取 TextFrame 的文本格式 + var format = aShape.getTextFrame().getTextFrameFormat(); + // 指定 TextFrame 中的列数 + format.setColumnCount(3); + // 指定列之间的间距 + format.setColumnSpacing(10); + // 保存演示文稿 + pres.save("ColumnCount.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Add Column In Text Frame** + +Aspose.Slides for Node.js via Java 提供了[TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat)类的[setColumnCount](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setColumnCount-int-)方法,允许在文本框架中添加列。通过此属性,您可以指定文本框架中的列数。 + +下面的 JavaScript 代码展示了如何在文本框架中添加列: +```javascript +var outPptxFileName = "ColumnsTest.pptx"; +var pres = new aspose.slides.Presentation(); +try { + var shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 300, 300); + var format = shape1.getTextFrame().getTextFrameFormat(); + format.setColumnCount(2); + shape1.getTextFrame().setText("All these columns are forced to stay within a single text container -- " + "you can add or delete text - and the new or remaining text automatically adjusts " + "itself to stay within the container. You cannot have text spill over from one container " + "to other, though -- because PowerPoint's column options for text are limited!"); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", java.getStaticFieldValue("java.lang.Double", "NaN") == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test != null) { + test.dispose(); + } + } + format.setColumnSpacing(20); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test1 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test1.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 2 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 20 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test1 != null) { + test1.dispose(); + } + } + format.setColumnCount(3); + format.setColumnSpacing(15); + pres.save(outPptxFileName, aspose.slides.SaveFormat.Pptx); + var test2 = new aspose.slides.Presentation(outPptxFileName); + try { + var autoShape = test2.getSlides().get_Item(0).getShapes().get_Item(0); + java.callStaticMethodSync("Assert", "assertTrue", 3 == autoShape.getTextFrame().getTextFrameFormat().getColumnCount()); + java.callStaticMethodSync("Assert", "assertTrue", 15 == autoShape.getTextFrame().getTextFrameFormat().getColumnSpacing()); + } finally { + if (test2 != null) { + test2.dispose(); + } + } +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Update Text** + +Aspose.Slides 允许您更改或更新文本框中的文字,或更新演示文稿中所有文字。 + +下面的 JavaScript 代码演示了将演示文稿中所有文字进行更新或更改的操作: +```javascript +var pres = new aspose.slides.Presentation("text.pptx"); +try { + for (let s = 0; s < pres.getSlides().size(); s++) { + let slide = pres.getSlides().get_Item(s); + for (let i = 0; i < slide.getShapes().size(); i++) { + let shape = slide.getShapes().get_Item(i); + // 检查形状是否支持文本框架 (IAutoShape)。 + if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) { + var autoShape = shape; + // 遍历文本框架中的段落 + for (let j = 0; j < autoShape.getTextFrame().getParagraphs().getCount(); j++) { + let paragraph = autoShape.getTextFrame().getParagraphs().get_Item(j); + // 遍历段落中的每个部分 + for (let k = 0; k < paragraph.getPortions().getCount(); k++) { + let portion = paragraph.getPortions().get_Item(k); + portion.setText(portion.getText().replace("years", "months"));// 更改文本 + portion.getPortionFormat().setFontBold(java.newByte(aspose.slides.NullableBool.True));// 更改格式 + } + } + } + } + } + // 保存修改后的演示文稿 + pres.save("text-changed.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Add Text Box with Hyperlink** + +您可以在文本框中插入超链接。单击该文本框时,用户会打开链接。 + +要添加包含链接的文本框,请按以下步骤操作: + +1. 创建`Presentation`类的实例。 +2. 获取新创建演示文稿中第一张幻灯片的引用。 +3. 在幻灯片的指定位置添加一个`ShapeType`设置为`Rectangle`的`AutoShape`对象,并获取新添加的 AutoShape 对象的引用。 +4. 为该`AutoShape`对象添加一个`TextFrame`,默认文字为 *Aspose TextBox*。 +5. 实例化`HyperlinkManager`类。 +6. 将`HyperlinkManager`对象分配给`TextFrame`中您希望设置超链接的文本段落的[HyperlinkClick](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Shape#getHyperlinkClick--)属性。 +7. 最后,通过`Presentation`对象写出 PPTX 文件。 + +下面的 JavaScript 代码实现了上述步骤,演示了如何向幻灯片添加带超链接的文本框: +```javascript +// 实例化表示 PPTX 的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取演示文稿中的第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加一个类型设置为 Rectangle 的 AutoShape 对象 + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 150, 150, 50); + // 将形状转换为 AutoShape + var pptxAutoShape = shape; + // 访问与 AutoShape 关联的 ITextFrame 属性 + pptxAutoShape.addTextFrame(""); + var textFrame = pptxAutoShape.getTextFrame(); + // 向框架添加一些文本 + textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).setText("Aspose.Slides"); + // 为该文本部分设置超链接 + var hyperlinkManager = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getHyperlinkManager(); + hyperlinkManager.setExternalHyperlinkClick("http://www.aspose.com"); + // 保存 PPTX 演示文稿 + pres.save("hLink_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**在使用母版幻灯片时,文本框和文本占位符有什么区别?** + +占位符[placeholder](/slides/zh/nodejs-java/manage-placeholder/)会从[母版](https://reference.aspose.com/slides/nodejs-java/aspose.slides/masterslide/)继承样式/位置,并且可以在[布局](https://reference.aspose.com/slides/nodejs-java/aspose.slides/layoutslide/)上被覆盖;而普通文本框是特定幻灯片上的独立对象,切换布局时不会改变。 + +**如何在不影响图表、表格和 SmartArt 中的文字的情况下,批量替换演示文稿中的文字?** + +将遍历范围限制在具有文本框架的自动形状上,排除嵌入对象(如[图表](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/)、[表格](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/)、[SmartArt](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartart/)),可以通过分别遍历它们的集合或跳过这些对象类型来实现。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md new file mode 100644 index 0000000000..7f6d657c78 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -0,0 +1,45 @@ +--- +title: 演示文稿本地化 +type: docs +weight: 100 +url: /zh/nodejs-java/presentation-localization/ +--- + +## **更改演示文稿和形状文本的语言** + +- 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +- 通过使用索引获取幻灯片的引用。 +- 向幻灯片添加一个类型为 [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) 的 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +- 向 TextFrame 添加一些文本。 +- 对文本设置 [Setting Language Id](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setLanguageId-java.lang.String-)。 +- 将演示文稿写入为 PPTX 文件。 + +下面的示例演示了上述步骤的实现。 +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + shape.addTextFrame("Text to apply spellcheck language"); + shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setLanguageId("en-EN"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**语言 ID 会触发自动文本翻译吗?** + +不。Aspose.Slides 中的 [setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) 用于存储用于拼写检查和语法校对的语言,但它不会翻译或更改文本内容。它是 PowerPoint 能够理解的校对元数据。 + +**语言 ID 会影响呈现时的连字符和换行吗?** + +在 Aspose.Slides 中,[setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) 用于校对。连字符质量和换行主要取决于 [proper fonts](/slides/zh/nodejs-java/powerpoint-fonts/) 的可用性以及书写系统的布局/换行设置。为确保正确渲染,请提供所需的字体,配置 [font substitution rules](/slides/zh/nodejs-java/font-substitution/),并/或将 [embed fonts](/slides/zh/nodejs-java/embedded-font/) 嵌入演示文稿。 + +**我可以在同一段落中设置不同的语言吗?** + +可以。[setLanguageId](https://reference.aspose.com/slides/nodejs-java/aspose.slides/baseportionformat/#setLanguageId) 在文本段落级别应用,因此单个段落可以混合多种语言并拥有不同的校对设置。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md new file mode 100644 index 0000000000..31bf58b5ea --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/superscript-and-subscript/_index.md @@ -0,0 +1,86 @@ +--- +title: 上标和下标 +type: docs +weight: 80 +url: /zh/nodejs-java/superscript-and-subscript/ +--- + +## **管理上标和下标文本** + +您可以在任何段落部分中添加上标和下标文本。要在 Aspose.Slides 文本框中添加上标或下标文本,必须使用 [**setEscapement**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#setEscapement-float-) 方法的 [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PortionFormat) 类。 + +此属性返回或设置上标或下标文本(取值范围为 -100%(下标)到 100%(上标))。例如: + +- 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +- 使用索引获取幻灯片的引用。 +- 向幻灯片添加类型为 [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) 的 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +- 访问与 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) 关联的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame)。 +- 清除现有段落。 +- 创建一个用于保存上标文本的新段落对象,并将其添加到 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 的 [Paragraphs collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#getParagraphs--) 中。 +- 创建一个新的 Portion 对象。 +- 将该 Portion 的 Escapement 属性设为 0 到 100 之间,以添加上标。(0 表示无上标) +- 为 [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) 设置文本,然后将其添加到段落的 Portion 集合中。 +- 创建一个用于保存下标文本的新段落对象,并将其添加到 ITextFrame 的 IParagraphs 集合中。 +- 创建一个新的 Portion 对象。 +- 将该 Portion 的 Escapement 属性设为 0 到 -100 之间,以添加下标。(0 表示无下标) +- 为 [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) 设置文本,然后将其添加到段落的 Portion 集合中。 +- 将演示文稿保存为 PPTX 文件。 + +下面给出上述步骤的实现代码。 +```javascript +// 实例化一个表示 PPTX 的 Presentation 类 +var pres = new aspose.slides.Presentation(); +try { + // 获取幻灯片 + var slide = pres.getSlides().get_Item(0); + // 创建文本框 + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 200, 100); + var textFrame = shape.getTextFrame(); + textFrame.getParagraphs().clear(); + // 创建上标文本的段落 + var superPar = new aspose.slides.Paragraph(); + // 创建普通文本的 Portion + var portion1 = new aspose.slides.Portion(); + portion1.setText("SlideTitle"); + superPar.getPortions().add(portion1); + // 创建上标文本的 Portion + var superPortion = new aspose.slides.Portion(); + superPortion.getPortionFormat().setEscapement(30); + superPortion.setText("TM"); + superPar.getPortions().add(superPortion); + // 创建下标文本的段落 + var paragraph2 = new aspose.slides.Paragraph(); + // 创建普通文本的 Portion + var portion2 = new aspose.slides.Portion(); + portion2.setText("a"); + paragraph2.getPortions().add(portion2); + // 创建下标文本的 Portion + var subPortion = new aspose.slides.Portion(); + subPortion.getPortionFormat().setEscapement(-25); + subPortion.setText("i"); + paragraph2.getPortions().add(subPortion); + // 将段落添加到文本框 + textFrame.getParagraphs().add(superPar); + textFrame.getParagraphs().add(paragraph2); + pres.save("formatText.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**Will superscript and subscript be preserved when exporting to PDF or other formats?** + +是的,Aspose.Slides 在将演示文稿导出为 PDF、PPT/PPTX、图像以及其他受支持格式时,能够正确保留上标和下标的格式。专门的格式在所有输出文件中保持完整。 + +**Can superscript and subscript be combined with other formatting styles such as bold or italics?** + +是的,Aspose.Slides 允许在同一 Portion 文本中混合多种样式。您可以在配置 [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) 的相应属性时,同时启用粗体、斜体、下划线以及上标或下标。 + +**Do superscript and subscript formatting work for text inside tables, charts, or SmartArt?** + +是的,Aspose.Slides 支持在大多数对象内部进行格式设置,包括表格和图表元素。对 SmartArt 进行操作时,您需要访问相应的元素(例如 [SmartArtNode](https://reference.aspose.com/slides/nodejs-java/aspose.slides/smartartnode/))及其文本容器,然后以类似方式配置 [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) 的属性。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md new file mode 100644 index 0000000000..29cfe2cdcc --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/text-formatting/_index.md @@ -0,0 +1,688 @@ +--- +title: 在 JavaScript 中格式化 PowerPoint 文本 +linktitle: 文本格式化 +type: docs +weight: 50 +url: /zh/nodejs-java/text-formatting/ +keywords: +- 突出显示文本 +- 正则表达式 +- 对齐段落 +- 文本样式 +- 文本背景 +- 文本透明度 +- 字符间距 +- 字体属性 +- 字体族 +- 文本旋转 +- 旋转角度 +- 文本框 +- 行间距 +- 自动适应属性 +- 文本框锚点 +- 文本制表符 +- 默认语言 +- PowerPoint +- OpenDocument +- 演示文稿 +- Node.js +- JavaScript +- Aspose.Slides +description: "了解如何使用 Aspose.Slides for Node.js via Java 在 PowerPoint 和 OpenDocument 演示文稿中格式化和设置文本样式。通过强大的 JavaScript 示例代码自定义字体、颜色、对齐方式等。" +--- + +## **突出显示文本** + +已向 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 类添加了方法 [highlightText](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightText-java.lang.String-java.awt.Color-),并已向 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 类添加了该方法。 + +它允许使用文本示例通过背景颜色突出显示文本部分,类似于 PowerPoint 2019 中的“文本突出显示颜色”工具。 + +下面的代码片段展示了如何使用此功能: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var textHighlightingOptions = new aspose.slides.TextHighlightingOptions(); + textHighlightingOptions.setWholeWordsOnly(true); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("title", java.getStaticFieldValue("java.awt.Color", "BLUE"));// 突出显示所有 'important' 单词 + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightText("to", java.getStaticFieldValue("java.awt.Color", "MAGENTA"), textHighlightingOptions);// 突出显示所有单独的 'the' 出现 + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +{{% alert color="primary" %}} +Aspose 提供了一个简单的、[免费在线 PowerPoint 编辑服务](https://products.aspose.app/slides/editor) +{{% /alert %}} + +## **使用正则表达式突出显示文本** + +已向 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 类添加了方法 [highlightRegex](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame#highlightRegex-java.lang.String-java.awt.Color-aspose.slides.ITextHighlightingOptions-),并已向 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 类添加了该方法。 + +它允许使用正则表达式通过背景颜色突出显示文本部分,类似于 PowerPoint 2019 中的“文本突出显示颜色”工具。 + +下面的代码片段展示了如何使用此功能: +```javascript +var pres = new aspose.slides.Presentation("Presentation.pptx"); +try { + var options = new aspose.slides.TextHighlightingOptions(); + pres.getSlides().get_Item(0).getShapes().get_Item(0).getTextFrame().highlightRegex("\\b[^\\s]{4}\\b", java.getStaticFieldValue("java.awt.Color", "YELLOW"), options);// 突出显示所有长度为 10 个字符或更长的单词 + pres.save("OutputPresentation-highlight.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置文本背景颜色** + +Aspose.Slides 允许您为文本的背景指定首选颜色。 + +以下 JavaScript 代码演示如何为整段文本设置背景颜色: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +const pres = new aspose.slides.Presentation("text.pptx"); +try { + const slide = pres.getSlides().get_Item(0); + const autoShape = slide.getShapes().get_Item(0); + if (autoShape.getTextFrame() != null) { + const paragraphs = autoShape.getTextFrame().getParagraphs(); + const paragraphCount = paragraphs.size(); + for (let i = 0; i < paragraphCount; i++) { + const portions = paragraphs.get_Item(i).getPortions(); + const portionCount = portions.size(); + for (let j = 0; j < portionCount; j++) { + const portion = portions.get_Item(j); + portion.getPortionFormat().getHighlightColor().setColor(Color.BLUE); + } + } + } + pres.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) pres.dispose(); +} +``` + + +以下 JavaScript 代码演示如何仅为文本的部分设置背景颜色: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var autoShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100); + autoShape.getTextFrame().getParagraphs().clear(); + var para = new aspose.slides.Paragraph(); + var portion1 = new aspose.slides.Portion("Black"); + portion1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + var portion2 = new aspose.slides.Portion(" Red "); + var portion3 = new aspose.slides.Portion("Black"); + portion3.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + para.getPortions().add(portion1); + para.getPortions().add(portion2); + para.getPortions().add(portion3); + autoShape.getTextFrame().getParagraphs().add(para); + pres.save("text.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +var presentation = new aspose.slides.Presentation("text.pptx"); +try { + var autoShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + var redPortion = java.callStaticMethodSync("StreamSupport", "stream", autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().spliterator(), false).filter(p -> p.getText().contains("Red")).findFirst(); + if (redPortion.isPresent()) { + redPortion.get().getPortionFormat().getHighlightColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + } + presentation.save("text-red.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **对齐文本段落** + +文本格式是创建任何文档或演示文稿时的关键要素。我们知道 Aspose.Slides for Node.js via Java 支持向幻灯片添加文本,但在本主题中,我们将了解如何控制幻灯片中文本段落的对齐方式。请按照以下步骤使用 Aspose.Slides for Node.js via Java 对齐文本段落: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 使用索引获取幻灯片的引用。 +3. 访问幻灯片中的占位符形状并将其强制转换为 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +4. 从 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) 暴露的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape#getTextFrame--) 中获取需要对齐的 Paragraph。 +5. 对 Paragraph 进行对齐。段落可对齐到右、左、居中或两端对齐。 +6. 将修改后的演示文稿写入 PPTX 文件。 + +下面给出上述步骤的实现示例。 +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("ParagraphsAlignment.pptx"); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 访问幻灯片中的第一个和第二个占位符,并将其强制转换为 AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // 更改两个占位符中的文本 + tf1.setText("Center Align by Aspose"); + tf2.setText("Center Align by Aspose"); + // 获取占位符的第一段落 + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // 将文本段落居中对齐 + para1.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + para2.getParagraphFormat().setAlignment(aspose.slides.TextAlignment.Center); + // 将演示文稿写入为 PPTX 文件 + pres.save("Centeralign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置文本透明度** + +本文演示了如何使用 Aspose.Slides for Node.js via Java 为任意文本形状设置透明度属性。请按以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 获取幻灯片的引用。 +3. 设置阴影颜色。 +4. 将演示文稿写入 PPTX 文件。 + +下面给出上述步骤的实现示例。 +```javascript +var pres = new aspose.slides.Presentation("transparency.pptx"); +try { + var shape = pres.getSlides().get_Item(0).getShapes().get_Item(0); + var effects = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getEffectFormat(); + var outerShadowEffect = effects.getOuterShadowEffect(); + var shadowColor = outerShadowEffect.getShadowColor().getColor(); + console.log((shadowColor.toString() + " - transparency is: ") + ((shadowColor.getAlpha() / 255.0) * 100)); + // 将透明度设置为零百分比 + outerShadowEffect.getShadowColor().setColor(java.newInstanceSync("java.awt.Color", shadowColor.getRed(), shadowColor.getGreen(), shadowColor.getBlue(), 255)); + pres.save("transparency-2.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置字符间距** + +Aspose.Slides 允许您设置文本框中字母之间的间距。通过调整字符间距,您可以改变一行或一段文字的视觉密度。 + +以下 JavaScript 代码演示如何为一行文本扩大间距、为另一行文本压缩间距: +```javascript +var presentation = new aspose.slides.Presentation("in.pptx"); +var textBox1 = presentation.getSlides().get_Item(0).getShapes().get_Item(0); +var textBox2 = presentation.getSlides().get_Item(0).getShapes().get_Item(1); +textBox1.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(20);// 展开 +textBox2.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setSpacing(-2);// 压缩 +presentation.save("out.pptx", aspose.slides.SaveFormat.Pptx); +``` + + +## **管理段落的字体属性** + +演示文稿通常包含文本和图像。文本可以通过多种方式进行格式化,以突出显示特定部分或符合企业样式。文本格式化帮助用户改变演示内容的外观。本篇文章展示如何使用 Aspose.Slides for Node.js via Java 配置幻灯片上段落文本的字体属性。采用以下步骤管理段落的字体属性: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 使用索引获取幻灯片的引用。 +1. 访问幻灯片中的占位符形状并将其强制转换为 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +1. 从 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) 暴露的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame) 中获取 [Paragraph](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrame)。 +1. 对段落进行两端对齐。 +1. 访问段落的文本 Portion。 +1. 使用 FontData 定义字体,并相应设置 Portion 的 Font。 + 1. 将字体设为粗体。 + 1. 将字体设为斜体。 +1. 使用 [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) 对象暴露的 [getFillFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/BasePortionFormat#getFillFormat--) 设置字体颜色。 +1. 将修改后的演示文稿写入 [PPTX](https://docs.fileformat.com/presentation/pptx/) 文件。 + +下面给出上述步骤的实现示例。它接受一个未做任何装饰的演示文稿,并对其中一张幻灯片的字体进行格式化。 +```javascript +// 实例化一个表示 PPTX 文件的 Presentation 对象 +var pres = new aspose.slides.Presentation("FontProperties.pptx"); +try { + // 使用幻灯片位置访问幻灯片 + var slide = pres.getSlides().get_Item(0); + // 访问幻灯片中的第一个和第二个占位符,并将其强制转换为 AutoShape + var tf1 = slide.getShapes().get_Item(0).getTextFrame(); + var tf2 = slide.getShapes().get_Item(1).getTextFrame(); + // 获取第一段落 + var para1 = tf1.getParagraphs().get_Item(0); + var para2 = tf2.getParagraphs().get_Item(0); + // 获取第一段文本片段 + var port1 = para1.getPortions().get_Item(0); + var port2 = para2.getPortions().get_Item(0); + // 定义新字体 + var fd1 = new aspose.slides.FontData("Elephant"); + var fd2 = new aspose.slides.FontData("Castellar"); + // 将新字体分配给文本片段 + port1.getPortionFormat().setLatinFont(fd1); + port2.getPortionFormat().setLatinFont(fd2); + // 将字体设为粗体 + port1.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // 将字体设为斜体 + port1.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + port2.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // 设置字体颜色 + port1.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port1.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + port2.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port2.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + // 将 PPTX 写入磁盘 + pres.save("WelcomeFont_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **管理文本的字体族** + +Portion 用于在段落中保存具有相同格式的文本。本篇文章展示如何使用 Aspose.Slides for Node.js via Java 创建带有文本的文本框,并为其定义特定字体及其他字体族属性。操作步骤如下: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 使用索引获取幻灯片的引用。 +3. 向幻灯片添加类型为 [Rectangle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeType#Rectangle) 的 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +4. 移除与该 [AutoShape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) 关联的填充样式。 +5. 访问 AutoShape 的 TextFrame。 +6. 向 TextFrame 添加文本。 +7. 访问与该 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape) 关联的 Portion 对象。 +8. 为该 [Portion](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Portion) 定义使用的字体。 +9. 使用 Portion 对象暴露的相关属性设置粗体、斜体、下划线、颜色和高度等其他字体属性。 +10. 将修改后的演示文稿写入 PPTX 文件。 + +下面给出上述步骤的实现示例。 +```javascript +// 实例化 Presentation 对象 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var sld = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 50); + // 移除与 AutoShape 关联的任何填充样式 + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 访问与 AutoShape 关联的 TextFrame + var tf = ashp.getTextFrame(); + tf.setText("Aspose TextBox"); + // 访问与 TextFrame 关联的 Portion + var port = tf.getParagraphs().get_Item(0).getPortions().get_Item(0); + // 为 Portion 设置字体 + port.getPortionFormat().setLatinFont(new aspose.slides.FontData("Times New Roman")); + // 设置字体的粗体属性 + port.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + // 设置字体的斜体属性 + port.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // 设置字体的下划线属性 + port.getPortionFormat().setFontUnderline(aspose.slides.TextUnderlineType.Single); + // 设置字体的高度 + port.getPortionFormat().setFontHeight(25); + // 设置字体颜色 + port.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + port.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + // 将 PPTX 写入磁盘 + pres.save("SetTextFontProperties_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置文本字号** + +Aspose.Slides 允许您为段落中已存在的文本以及日后可能添加的文本选择首选字号。 + +以下 JavaScript 代码展示如何为段落中的文本设置字号: +```javascript +var presentation = new aspose.slides.Presentation("example.pptx"); +try { + // 获取第一个形状,例如。 + var shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) { + var autoShape = shape; + // 获取第一段落,例如。 + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + // 将段落中所有文本片段的默认字体大小设置为 20 磅。 + paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(20); + // 将段落中当前文本片段的字体大小设置为 20 磅。 + for (let i = 0; i < paragraph.getPortions().getCount(); i++) { + let portion = paragraph.getPortions().get_Item(i); + portion.getPortionFormat().setFontHeight(20); + } + } +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **设置文本旋转** + +Aspose.Slides for Node.js via Java 允许开发者旋转文本。文本可设置为 [Horizontal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Horizontal)、[Vertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical)、[Vertical270](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#Vertical270)、[WordArtVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVertical)、[EastAsianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#EastAsianVertical)、[MongolianVertical](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#MongolianVertical) 或 [WordArtVerticalRightToLeft](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextVerticalType#WordArtVerticalRightToLeft)。要旋转任意 TextFrame 的文本,请按以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 访问第一张幻灯片。 +3. 向幻灯片添加任意形状。 +4. 访问该形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +5. [旋转文本](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setTextVerticalType-byte-)。 +6. 将文件保存到磁盘。 + +下面给出实现示例。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // 为矩形添加 TextFrame + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 访问文本框 + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setTextVerticalType(aspose.slides.TextVerticalType.Vertical270); + // 为文本框创建 Paragraph 对象 + var para = txtFrame.getParagraphs().get_Item(0); + // 为段落创建 Portion 对象 + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 保存演示文稿 + pres.save("RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **为 TextFrame 设置自定义旋转角度** + +Aspose.Slides for Node.js via Java 现在支持为 TextFrame 设置自定义旋转角度。本文将通过示例说明如何在 Aspose.Slides 中设置 RotationAngle 属性。已在 [ChartTextBlockFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartTextBlockFormat) 和 [TextFrameFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat) 类中添加了新方法 [setRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-) 与 [getRotationAngle](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#getRotationAngle--),以便为 TextFrame 设置自定义旋转角度。设置 RotationAngle,请按以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 在幻灯片上添加图表。 +3. [设置 RotationAngle 属性](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setRotationAngle-float-)。 +4. 将演示文稿写入 PPTX 文件。 + +下面的示例演示了如何设置 RotationAngle 属性。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // 为矩形添加 TextFrame + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 访问文本框 + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setRotationAngle(25); + // 为文本框创建 Paragraph 对象 + var para = txtFrame.getParagraphs().get_Item(0); + // 为段落创建 Portion 对象 + var portion = para.getPortions().get_Item(0); + portion.setText("Text rotation example."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 保存演示文稿 + pres.save(resourcesOutputPath + "RotateText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **段落行间距** + +Aspose.Slides 在 [`ParagraphFormat`](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ParagraphFormat) 下提供了 `SpaceAfter`、`SpaceBefore` 与 `SpaceWithin` 三个属性,可用于管理段落的行间距。这三个属性的使用方式如下: + +* 若要以百分比指定段落的行间距,请使用正数值。 +* 若要以磅值指定段落的行间距,请使用负数值。 + +例如,将 `SpaceBefore` 属性设为 -16 即可为段落应用 16pt 的行间距。 + +以下步骤演示如何为特定段落指定行间距: + +1. 加载包含带有文本的 AutoShape 的演示文稿。 +2. 通过索引获取幻灯片的引用。 +3. 访问 TextFrame。 +4. 访问 Paragraph。 +5. 设置 Paragraph 的属性。 +6. 保存演示文稿。 + +下面的 JavaScript 代码展示如何为段落指定行间距: +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation("Fonts.pptx"); +try { + // 根据索引获取幻灯片的引用 + var sld = pres.getSlides().get_Item(0); + // 访问 TextFrame + var tf1 = sld.getShapes().get_Item(0).getTextFrame(); + // 访问 Paragraph + var para = tf1.getParagraphs().get_Item(0); + // 设置 Paragraph 的属性 + para.getParagraphFormat().setSpaceWithin(80); + para.getParagraphFormat().setSpaceBefore(40); + para.getParagraphFormat().setSpaceAfter(40); + // 保存演示文稿 + pres.save("LineSpacing_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **为 TextFrame 设置 AutofitType 属性** + +本主题探讨 TextFrame 的不同格式化属性。本文介绍如何设置 TextFrame 的 AutofitType、文本锚点以及在演示文稿中旋转文本。Aspose.Slides for Node.js via Java 允许开发者为任意 TextFrame 设置 AutofitType 属性。AutofitType 可设为 [Normal](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Normal) 或 [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAutofitType#Shape)。设为 [Normal] 时,形状保持不变,文本自行适配;设为 [Shape] 时,形状会被调整以仅容纳所需文本。要设置 TextFrame 的 AutofitType,请按以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 访问第一张幻灯片。 +3. 向幻灯片添加任意形状。 +4. 访问该形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +5. [设置 AutofitType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAutofitType-byte-)。 +6. 将文件保存到磁盘。 + +下面给出实现示例。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 150); + // 为矩形添加 TextFrame + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 访问文本框 + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + // 为文本框创建 Paragraph 对象 + var para = txtFrame.getParagraphs().get_Item(0); + // 为段落创建 Portion 对象 + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 保存演示文稿 + pres.save(resourcesOutputPath + "formatText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置 TextFrame 的锚点** + +Aspose.Slides for Node.js via Java 允许开发者为任意 TextFrame 设置锚点。TextAnchorType 指定文本在形状中的放置位置。锚点类型可设置为 [Top](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Top)、[Center](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Center)、[Bottom](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Bottom)、[Justified](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Justified) 或 [Distributed](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextAnchorType#Distributed)。要设置任意 TextFrame 的锚点,请按以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 访问第一张幻灯片。 +3. 向幻灯片添加任意形状。 +4. 访问该形状的 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape)。 +5. [设置 TextAnchorType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TextFrameFormat#setAnchoringType-byte-)。 +6. 将文件保存到磁盘。 + +下面给出实现示例。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 350, 350); + // 为矩形添加 TextFrame + ashp.addTextFrame(""); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 访问文本框 + var txtFrame = ashp.getTextFrame(); + txtFrame.getTextFrameFormat().setAnchoringType(aspose.slides.TextAnchorType.Bottom); + // 为文本框创建 Paragraph 对象 + var para = txtFrame.getParagraphs().get_Item(0); + // 为段落创建 Portion 对象 + var portion = para.getPortions().get_Item(0); + portion.setText("A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); + portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); + // 保存演示文稿 + pres.save("AnchorText_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **Presentation 中的 Tabs 与 EffectiveTabs** + +所有文本制表符均以像素为单位。 + +|![todo:image_alt_text](http://i.imgur.com/POpc1Lw.png)| +| :- | +|**图例:2 个显式制表符和 2 个默认制表符**| + +- EffectiveTabs.ExplicitTabCount(本例为 2)等于 Tabs.Count。 +- EffectiveTabs 集合包含所有制表符(包括 Tabs 集合中的以及默认制表符)。 +- EffectiveTabs.ExplicitTabCount(本例为 2)等于 Tabs.Count。 +- EffectiveTabs.DefaultTabSize(294)属性显示默认制表符之间的距离(本例中的第 3 与第 4 个制表符)。 +- 调用 EffectiveTabs.GetTabByIndex(index),当 index=0 时返回第一个显式制表符(Position=731),index=1 时返回第二个显式制表符(Position=1241)。若 index=2 则返回第一个默认制表符(Position=1470),依此类推。 +- EffectiveTabs.GetTabAfterPosition(pos) 用于获取指定文本之后的下一个制表位。例如文本为 “Hello World!”。在渲染该文本前,需要先计算 “Hello” 的像素宽度,然后使用该值调用 GetTabAfterPosition,以获取绘制 “world!” 的下一个制表位置。 + +## **设置默认文本样式** + +如果需要一次性为演示文稿中的所有文本元素应用相同的默认文本格式,可使用 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的 `getDefaultTextStyle` 方法并设置首选格式。下面的代码示例展示如何为新演示文稿中所有幻灯片的文本设置默认的粗体(14 pt)字体: +```javascript +var presentation = new aspose.slides.Presentation(); +try { + // 获取顶级段落格式。 + var paragraphFormat = presentation.getDefaultTextStyle().getLevel(0); + if (paragraphFormat != null) { + paragraphFormat.getDefaultPortionFormat().setFontHeight(14); + paragraphFormat.getDefaultPortionFormat().setFontBold(aspose.slides.NullableBool.True); + } + presentation.save("DefaultTextStyle.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + presentation.dispose(); +} +``` + + +## **提取带有 All-Caps 效果的文本** + +在 PowerPoint 中,应用 **All Caps** 字体效果后,即使原始文本是小写,幻灯片上也会显示为大写。当使用 Aspose.Slides 检索此类文本片段时,库会返回其原始输入形式。为保持输出与幻灯片显示一致,需要检查 [TextCapType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/textcaptype/)——如果其值为 `All`,则将返回的字符串转换为大写。 + +假设在 sample2.pptx 文件的第一张幻灯片上有如下文本框: + +![The All Caps effect](all_caps_effect.png) + +下面的代码示例展示如何提取带有 **All Caps** 效果的文本: +```js +var presentation = new aspose.slides.Presentation("sample2.pptx"); +try { + var slide = presentation.getSlides().get_Item(0); + var autoShape = slide.getShapes().get_Item(0); + var paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0); + var textPortion = paragraph.getPortions().get_Item(0); + + console.log("Original text:", textPortion.getText()); + + var textFormat = textPortion.getPortionFormat().getEffective(); + if (textFormat.getTextCapType() == aspose.slides.TextCapType.All) { + var text = textPortion.getText().toUpperCase(); + console.log("All-Caps effect:", text); + } +} finally { + presentation.dispose(); +} +``` + + +输出: +```text +Original text: Hello, Aspose! +All-Caps effect: HELLO, ASPOSE! +``` + + +## **FAQ** + +**如何修改幻灯片中表格的文本?** + +要修改幻灯片中表格的文本,需要使用 [Table](https://reference.aspose.com/slides/nodejs-java/aspose.slides/table/) 对象。可以遍历表格的所有单元格,通过访问每个单元格的 `TextFrame` 和 `ParagraphFormat` 属性来更改相应的文本。 + +**如何在 PowerPoint 幻灯片中的文本上应用渐变颜色?** + +要为文本应用渐变颜色,请在 [PortionFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/portionformat/) 中使用 Fill Format 属性。将 Fill Format 设置为 `Gradient`,并定义渐变的起始颜色和结束颜色,以及方向、透明度等其他属性,以实现文本的渐变效果。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md new file mode 100644 index 0000000000..7813e1fdb7 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-text/wordart/_index.md @@ -0,0 +1,374 @@ +--- +title: 文字艺术 +type: docs +weight: 110 +url: /zh/nodejs-java/wordart/ +--- + +## **关于 WordArt?** + +WordArt 或 Word Art 是一种功能,可让您对文本应用效果,使其脱颖而出。例如,使用 WordArt,您可以为文本添加轮廓或填充颜色(或渐变),为其添加 3D 效果等。您还可以倾斜、弯曲和拉伸文本的形状。 + +{{% alert color="primary" %}} + +WordArt 允许您将文本视为图形对象来处理。通常,WordArt 包括对文本进行的各种效果或特殊修改,以使其更具吸引力或更显眼。 + +{{% /alert %}} + +**Microsoft PowerPoint 中的 WordArt** + +要在 Microsoft PowerPoint 中使用 WordArt,必须选择预定义的 WordArt 模板之一。WordArt 模板是一组将应用于文本或其形状的效果。 + +**Aspose.Slides 中的 WordArt** + +在 Aspose.Slides for Node.js via Java 20.10 中,我们实现了对 WordArt 的支持,并在后续的 Aspose.Slides for Node.js via Java 版本中对该功能进行了改进。 + +使用 Aspose.Slides for Node.js via Java,您可以轻松在 JavaScript 中创建自己的 WordArt 模板(单个效果或效果组合),并将其应用于文本。 + +## **创建简单的 WordArt 模板并将其应用于文本** + +**使用 Aspose.Slides** + +首先,我们使用以下 JavaScript 代码创建一个简单的文本: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200); + var textFrame = autoShape.getTextFrame(); + var portion = textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0); + portion.setText("Aspose.Slides"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +现在,通过以下代码将文本的字体高度设置为更大的值,以使效果更明显: +```javascript +var fontData = new aspose.slides.FontData("Arial Black"); +portion.getPortionFormat().setLatinFont(fontData); +portion.getPortionFormat().setFontHeight(36); +``` + + +**使用 Microsoft PowerPoint** + +转到 Microsoft PowerPoint 中的 WordArt 效果菜单: + +![todo:image_alt_text](image-20200930113926-1.png) + +在右侧的菜单中,您可以选择预定义的 WordArt 效果。在左侧的菜单中,您可以为新的 WordArt 指定设置。 + +以下是一些可用的参数或选项: + +![todo:image_alt_text](image-20200930114015-3.png) + +**使用 Aspose.Slides** + +在此,我们将 [SmallGrid](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PatternStyle#SmallGrid) 图案颜色应用于文本,并使用以下代码添加宽度为 1 的黑色文本边框: +```javascript +portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern)); +portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); +portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.SmallGrid)); +portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); +portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +``` + + +生成的文本: + +![todo:image_alt_text](image-20200930114108-4.png) + +## **应用其他 WordArt 效果** + +**使用 Microsoft PowerPoint** + +在程序的类中,您可以将这些效果应用于文本、文本框、形状或类似元素: + +![todo:image_alt_text](image-20200930114129-5.png) + +例如,Shadow、Reflection 和 Glow 效果可以应用于文本;3D Format 和 3D Rotation 效果可以应用于文本框;Soft Edges 属性可以应用于形状对象(即使未设置 3D Format 属性,也仍会产生效果)。 + +### **应用阴影效果** + +这里,我们仅针对文本设置属性。使用以下 JavaScript 代码将阴影效果应用于文本: +```javascript +portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect(); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK")); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0); +portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.32); +``` + + +Aspose.Slides API 支持三种阴影类型:OuterShadow、InnerShadow 和 PresetShadow。 + +使用 PresetShadow,您可以为文本应用预设值的阴影。 + +**使用 Microsoft PowerPoint** + +在 PowerPoint 中,您只能使用一种阴影类型。以下是示例: + +![todo:image_alt_text](image-20200930114225-6.png) + +**使用 Aspose.Slides** + +Aspose.Slides 实际上允许您一次同时应用两种阴影:InnerShadow 和 PresetShadow。 + +**注意:** + +- 当同时使用 OuterShadow 和 PresetShadow 时,仅会应用 OuterShadow 效果。 +- 如果同时使用 OuterShadow 和 InnerShadow,所产生或应用的效果取决于 PowerPoint 版本。例如,在 PowerPoint 2013 中,效果会加倍;但在 PowerPoint 2007 中,只会应用 OuterShadow 效果。 + +### **将显示效果应用于文本** + +我们通过以下 JavaScript 示例代码为文本添加显示效果: +```javascript +portion.getPortionFormat().getEffectFormat().enableReflectionEffect(); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60.0); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9); +portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(aspose.slides.RectangleAlignment.BottomLeft); +``` + + +### **将 Glow 效果应用于文本** + +我们使用以下代码将 Glow 效果应用于文本,使其发光或突出显示: +```javascript +portion.getPortionFormat().getEffectFormat().enableGlowEffect(); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR(255); +portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(aspose.slides.ColorTransformOperation.SetAlpha, 0.54); +portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7); +``` + + +操作结果: + +![todo:image_alt_text](image-20200930114621-7.png) + +{{% alert color="primary" %}} + +您可以更改阴影、显示和 Glow 的参数。这些效果的属性分别设置在文本的每个部分上。 + +{{% /alert %}} + +### **在 WordArt 中使用变换** + +我们通过以下代码使用 Transform 属性(作用于整个文本块): +```javascript +textFrame.getTextFrameFormat().setTransform(java.newByte(aspose.slides.TextShapeType.ArchUpPour)); +``` + + +结果: + +![todo:image_alt_text](image-20200930114712-8.png) + +{{% alert color="primary" %}} + +Microsoft PowerPoint 和 Aspose.Slides for Node.js via Java 均提供一定数量的预定义变换类型。 + +{{% /alert %}} + +**使用 PowerPoint** + +要访问预定义变换类型,请依次选择:**Format** -> **TextEffect** -> **Transform** + +**使用 Aspose.Slides** + +要选择变换类型,请使用 TextShapeType 枚举。 + +### **将 3D 效果应用于文本和形状** + +我们使用以下示例代码为文本形状设置 3D 效果: +```javascript +autoShape.getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5); +autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5); +autoShape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +autoShape.getThreeDFormat().getBevelTop().setHeight(12.5); +autoShape.getThreeDFormat().getBevelTop().setWidth(11); +autoShape.getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +autoShape.getThreeDFormat().setExtrusionHeight(6); +autoShape.getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +autoShape.getThreeDFormat().setContourWidth(1.5); +autoShape.getThreeDFormat().setDepth(3); +autoShape.getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +autoShape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40); +autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +生成的文本及其形状: + +![todo:image_alt_text](image-20200930114816-9.png) + +我们使用以下 JavaScript 代码为文本应用 3D 效果: +```javascript +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4); +textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4); +textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); +textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6); +textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); +textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5); +textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3); +textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(aspose.slides.MaterialPresetType.Plastic); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced); +textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40); +textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.PerspectiveContrastingRightFacing); +``` + + +操作结果: + +![todo:image_alt_text](image-20200930114905-10.png) + +{{% alert color="primary" %}} + +将 3D 效果应用于文本或其形状以及效果之间的交互遵循一定规则。 + +考虑文本及其包含文本的形状的场景。3D 效果包括 3D 对象表示以及放置该对象的场景。 + +- 当场景同时为图形和文本设置时,图形场景拥有更高优先级——文本场景被忽略。 +- 当图形缺少自身场景但具有 3D 表示时,使用文本场景。 +- 否则——当形状原本没有 3D 效果时,形状保持平面,3D 效果仅应用于文本。 + +这些描述与 ThreeDFormat.getLightRig() 和 ThreeDFormat.getCamera() 方法相关。 + +{{% /alert %}} + +## **对文本应用外阴影效果** + +Aspose.Slides for Node.js via Java 提供了 [**OuterShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IOuterShadow) 和 [**InnerShadow**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/nterfaces/IInnerShadow) 类,允许您对由 [TextFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/classes/TextFrame) 承载的文本应用阴影效果。请按照以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类的实例。 +2. 使用索引获取幻灯片的引用。 +3. 向幻灯片添加矩形类型的 AutoShape。 +4. 访问与 AutoShape 关联的 TextFrame。 +5. 将 AutoShape 的 FillType 设置为 NoFill。 +6. 实例化 OuterShadow 类。 +7. 设置阴影的 BlurRadius。 +8. 设置阴影的 Direction。 +9. 设置阴影的 Distance。 +10. 将 RectanglelAlign 设置为 TopLeft。 +11. 将阴影的 PresetColor 设置为 Black。 +12. 将演示文稿写入为 [PPTX](https://docs.fileformat.com/presentation/pptx/) 文件。 + +以下 Java 示例代码实现了上述步骤,演示如何对文本应用外阴影效果: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 获取幻灯片的引用 + var sld = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = sld.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 150, 50); + // 向矩形添加 TextFrame + ashp.addTextFrame("Aspose TextBox"); + // 禁用形状填充,以便获取文本的阴影 + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 添加外阴影并设置所有必要的参数 + ashp.getEffectFormat().enableOuterShadowEffect(); + var shadow = ashp.getEffectFormat().getOuterShadowEffect(); + shadow.setBlurRadius(4.0); + shadow.setDirection(45); + shadow.setDistance(3); + shadow.setRectangleAlign(aspose.slides.RectangleAlignment.TopLeft); + shadow.getShadowColor().setPresetColor(aspose.slides.PresetColor.Black); + // 将演示文稿写入磁盘 + pres.save("pres_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **对形状应用内阴影效果** + +按以下步骤操作: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation) 类的实例。 +2. 获取幻灯片的引用。 +3. 添加矩形类型的 AutoShape。 +4. 启用 InnerShadowEffect。 +5. 设置所有必要参数。 +6. 将 ColorType 设置为 Scheme。 +7. 设置 Scheme Color。 +8. 将演示文稿写入为 [PPTX](https://docs.fileformat.com/presentation/pptx/) 文件。 + +以下示例代码(基于上述步骤)展示了如何在 JavaScript 中为两个形状之间添加连接器: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 获取幻灯片的引用 + var slide = pres.getSlides().get_Item(0); + // 添加矩形类型的 AutoShape + var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 150, 75, 400, 300); + ashp.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + // 向矩形添加 TextFrame + ashp.addTextFrame("Aspose TextBox"); + var port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0); + var pf = port.getPortionFormat(); + pf.setFontHeight(50); + // 启用 InnerShadowEffect + var ef = pf.getEffectFormat(); + ef.enableInnerShadowEffect(); + // 设置所有必要的参数 + ef.getInnerShadowEffect().setBlurRadius(8.0); + ef.getInnerShadowEffect().setDirection(90.0); + ef.getInnerShadowEffect().setDistance(6.0); + ef.getInnerShadowEffect().getShadowColor().setB(189); + // 将 ColorType 设置为 Scheme + ef.getInnerShadowEffect().getShadowColor().setColorType(aspose.slides.ColorType.Scheme); + // 设置 Scheme Color + ef.getInnerShadowEffect().getShadowColor().setSchemeColor(aspose.slides.SchemeColor.Accent1); + // 保存演示文稿 + pres.save("WordArt_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**是否可以将 WordArt 效果与不同的字体或脚本(例如阿拉伯语、中文)一起使用?** + +是的,Aspose.Slides 支持 Unicode,并可与所有主流字体和脚本一起使用。无论语言如何,都可以应用阴影、填充和轮廓等 WordArt 效果,尽管字体的可用性和渲染可能取决于系统字体。 + +**是否可以将 WordArt 效果应用于幻灯片母版元素?** + +是的,您可以将 WordArt 效果应用于母版幻灯片上的形状,包括标题占位符、页脚或背景文本。对母版布局所做的更改将反映在所有相关幻灯片中。 + +**WordArt 效果是否会影响演示文稿文件大小?** + +略有影响。阴影、Glow 和渐变填充等 WordArt 效果可能会因添加的格式元数据而略微增加文件大小,但差异通常可以忽略不计。 + +**是否可以在不保存演示文稿的情况下预览 WordArt 效果的结果?** + +是的,您可以使用 [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/) 或 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/slide/) 类的 `getImage` 方法将包含 WordArt 的幻灯片渲染为图像(例如 PNG、JPEG),从而在内存中或屏幕上预览结果,然后再保存或导出完整演示文稿。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md b/zh/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md new file mode 100644 index 0000000000..68b7c6e42e --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/manage-zoom/_index.md @@ -0,0 +1,529 @@ +--- +title: 管理缩放 +type: docs +weight: 60 +url: /zh/nodejs-java/manage-zoom/ +keywords: "缩放, 缩放框架, 添加缩放, 格式化缩放框架, 概要缩放, PowerPoint 演示文稿, Java, Aspose.Slides for Node.js via Java" +description: "在 JavaScript 中向 PowerPoint 演示文稿添加缩放或缩放框架" +--- + +## **概述** + +PowerPoint 中的缩放功能允许您在演示文稿的特定幻灯片、章节和部分之间跳转。在演示时,这种快速跨内容导航的能力可能非常有用。 + +![overview_image](overview.png) + +* 要在单张幻灯片上概览整个演示文稿,请使用[概要缩放](#Summary-Zoom)。 +* 仅显示选定幻灯片,请使用[幻灯片缩放](#Slide-Zoom)。 +* 仅显示单个章节,请使用[章节缩放](#Section-Zoom)。 + +## **幻灯片缩放** + +幻灯片缩放可以使您的演示更具活力,允许您以任意顺序自由在幻灯片之间导航,而不会中断演示的流程。幻灯片缩放非常适合章节不多的短篇演示,但您仍可在不同的演示场景中使用它们。 + +幻灯片缩放帮助您在感觉像在单一画布上的同时深入多个信息块。 + +![overview_image](slidezoomsel.png) + +对于幻灯片缩放对象,Aspose.Slides 提供了 [ZoomImageType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomImageType) 枚举、[ZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ZoomFrame) 类以及 [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) 类下的部分方法。 + +### **创建缩放帧** + +您可以通过以下方式在幻灯片上添加缩放帧: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 创建您打算链接缩放帧的新幻灯片。 +3. 向创建的幻灯片添加标识文本和背景。 +4. 向第一张幻灯片添加缩放帧(包含对创建的幻灯片的引用)。 +5. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // 为第二张幻灯片创建背景 + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // 为第二张幻灯片创建文本框 + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // 为第三张幻灯片创建背景 + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // 为第三张幻灯片创建文本框 + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // 添加 ZoomFrame 对象 + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **使用自定义图像创建缩放帧** + +使用 Aspose.Slides for Node.js via Java,您可以通过以下方式创建带有不同幻灯片预览图像的缩放帧: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 创建您打算链接缩放帧的新幻灯片。 +3. 向该幻灯片添加标识文本和背景。 +4. 通过向与 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 对象关联的 Images 集合中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以用于填充帧。 +5. 向第一张幻灯片添加缩放帧(包含对创建的幻灯片的引用)。 +6. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // 为第二张幻灯片创建背景 + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // 为第三张幻灯片创建文本框 + var autoshape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // 为缩放对象创建新图像 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 添加 ZoomFrame 对象 + pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 300, 200, slide, picture); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **格式化缩放帧** + +在前面的章节中,我们向您展示了如何创建简单的缩放帧。要创建更复杂的缩放帧,您必须更改简单帧的格式。您可以对缩放帧应用多种格式选项。 + +您可以通过以下方式控制幻灯片上缩放帧的格式: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 创建您打算链接缩放帧的新幻灯片。 +3. 向创建的幻灯片添加一些标识文本和背景。 +4. 向第一张幻灯片添加缩放帧(包含对创建的幻灯片的引用)。 +5. 通过向与 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 对象关联的 Images 集合中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以用于填充帧。 +6. 为第一个缩放帧对象设置自定义图像。 +7. 更改第二个缩放帧对象的线条格式。 +8. 移除第二个缩放帧对象图像的背景。 +5. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide2 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + var slide3 = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + // 为第二张幻灯片创建背景 + slide2.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide2.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide2.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + // 为第二张幻灯片创建文本框 + var autoshape = slide2.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Second Slide"); + // 为第三张幻灯片创建背景 + slide3.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + slide3.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide3.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "darkGray")); + // 为第三张幻灯片创建文本框 + autoshape = slide3.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 200, 500, 200); + autoshape.getTextFrame().setText("Trird Slide"); + // 添加 ZoomFrame 对象 + var zoomFrame1 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(20, 20, 250, 200, slide2); + var zoomFrame2 = pres.getSlides().get_Item(0).getShapes().addZoomFrame(200, 250, 250, 200, slide3); + // 为缩放对象创建新图像 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 为 zoomFrame1 对象设置自定义图像 + zoomFrame1.setImage(picture); + // 为 zoomFrame2 对象设置缩放框架格式 + zoomFrame2.getLineFormat().setWidth(5); + zoomFrame2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + zoomFrame2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "pink")); + zoomFrame2.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // 设置 zoomFrame2 对象不显示背景 + zoomFrame2.setShowBackground(false); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **章节缩放** + +章节缩放是指向演示文稿中章节的链接。您可以使用章节缩放返回您想要重点强调的章节,或用来突出演示文稿中某些部分之间的关联。 + +![overview_image](seczoomsel.png) + +对于章节缩放对象,Aspose.Slides 提供了 [SectionZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SectionZoomFrame) 类以及 [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) 类下的部分方法。 + +### **创建章节缩放框架** + +您可以通过以下方式在幻灯片上添加章节缩放框架: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 创建一张新幻灯片。 +3. 向创建的幻灯片添加标识背景。 +4. 创建您打算链接缩放帧的新章节。 +5. 向第一张幻灯片添加章节缩放框架(包含对创建的章节的引用)。 +6. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 1", slide); + // 添加 SectionZoomFrame 对象 + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **使用自定义图像创建章节缩放框架** + +使用 Aspose.Slides for Node.js via Java,您可以通过以下方式创建带有不同幻灯片预览图像的章节缩放框架: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 创建一张新幻灯片。 +3. 向创建的幻灯片添加标识背景。 +4. 创建您打算链接缩放帧的新章节。 +5. 通过向与 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 对象关联的 Images 集合中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以用于填充帧。 +5. 向第一张幻灯片添加章节缩放框架(包含对创建的章节的引用)。 +6. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 1", slide); + // 为缩放对象创建新图像 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + // 添加 SectionZoomFrame 对象 + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1), picture); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **格式化章节缩放框架** + +要创建更复杂的章节缩放框架,您必须更改简单帧的格式。您可以对章节缩放框架应用多种格式选项。 + +您可以通过以下方式控制幻灯片上章节缩放框架的格式: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 创建一张新幻灯片。 +3. 向创建的幻灯片添加标识背景。 +4. 创建您打算链接缩放帧的新章节。 +5. 向第一张幻灯片添加章节缩放框架(包含对创建的章节的引用)。 +6. 更改创建的章节缩放对象的大小和位置。 +7. 通过向与 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 对象关联的 Images 集合中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以用于填充帧。 +8. 为创建的章节缩放框架对象设置自定义图像。 +9. 设置*从链接的章节返回到原始幻灯片*的功能。 +10. 移除章节缩放框架对象图像的背景。 +11. 更改第二个缩放帧对象的线条格式。 +12. 更改过渡持续时间。 +13. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "yellow")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 1", slide); + // 添加 SectionZoomFrame 对象 + var sectionZoomFrame = pres.getSlides().get_Item(0).getShapes().addSectionZoomFrame(20, 20, 300, 200, pres.getSections().get_Item(1)); + // SectionZoomFrame 的格式设置 + sectionZoomFrame.setX(100); + sectionZoomFrame.setY(300); + sectionZoomFrame.setWidth(100); + sectionZoomFrame.setHeight(75); + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(image); + } finally { + if (image != null) { + image.dispose(); + } + } + sectionZoomFrame.setImage(picture); + sectionZoomFrame.setReturnToParent(true); + sectionZoomFrame.setShowBackground(false); + sectionZoomFrame.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + sectionZoomFrame.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + sectionZoomFrame.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + sectionZoomFrame.getLineFormat().setWidth(2.5); + sectionZoomFrame.setTransitionDuration(1.5); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **概要缩放** + +概要缩放类似于一个登陆页,所有演示文稿的片段一次性展示。当您进行演示时,可以使用缩放在演示的任意位置之间任意顺序跳转。您可以创意无限,快进或回顾幻灯片的各个部分,而不会打断演示的流程。 + +![overview_image](sumzoomsel.png) + +对于概要缩放对象,Aspose.Slides 提供了 [SummaryZoomFrame](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomFrame)、[SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) 与 [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) 类以及 [ShapeCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ShapeCollection) 类下的部分方法。 + +### **创建概要缩放** + +您可以通过以下方式在幻灯片上添加概要缩放框架: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 为创建的幻灯片创建带有标识背景的新幻灯片并创建新章节。 +3. 将概要缩放框架添加到第一张幻灯片。 +4. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 添加新的幻灯片到演示文稿 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 添加新的章节到演示文稿 + pres.getSections().addSection("Section 1", slide); + // 添加新的幻灯片到演示文稿 + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 添加新的章节到演示文稿 + pres.getSections().addSection("Section 2", slide); + // 添加新的幻灯片到演示文稿 + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 添加新的章节到演示文稿 + pres.getSections().addSection("Section 3", slide); + // 添加新的幻灯片到演示文稿 + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "green")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 添加新的章节到演示文稿 + pres.getSections().addSection("Section 4", slide); + // 添加 SummaryZoomFrame 对象 + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **添加和删除概要缩放章节** + +所有概要缩放框架中的章节均由 [SummaryZoomSection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSection) 对象表示,这些对象存储在 [SummaryZoomSectionCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/SummaryZoomSectionCollection) 对象中。您可以通过以下方式使用 [SummaryZoomSectionCollection] 类添加或删除概要缩放章节对象: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 为创建的幻灯片创建带有标识背景的新幻灯片并创建新章节。 +3. 将概要缩放框架添加到第一张幻灯片。 +4. 向演示文稿添加新幻灯片和章节。 +5. 将创建的章节添加到概要缩放框架中。 +6. 从概要缩放框架中移除第一章节。 +7. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 添加新的幻灯片到演示文稿 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 1", slide); + // 添加新的幻灯片到演示文稿 + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 2", slide); + // 添加 SummaryZoomFrame 对象 + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // 添加新的幻灯片到演示文稿 + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "magenta")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + var section3 = pres.getSections().addSection("Section 3", slide); + // 向 Summary Zoom 添加章节 + summaryZoomFrame.getSummaryZoomCollection().addSummaryZoomSection(section3); + // 从 Summary Zoom 中移除章节 + summaryZoomFrame.getSummaryZoomCollection().removeSummaryZoomSection(pres.getSections().get_Item(1)); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +### **格式化概要缩放章节** + +要创建更复杂的概要缩放章节对象,您必须更改简单帧的格式。您可以对概要缩放章节对象应用多种格式选项。 + +您可以通过以下方式控制概要缩放框架中概要缩放章节对象的格式: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 为创建的幻灯片创建带有标识背景的新幻灯片并创建新章节。 +3. 将概要缩放框架添加到第一张幻灯片。 +4. 从 `ISummaryZoomSectionCollection` 中获取第一个对象的概要缩放章节对象。 +7. 通过向与 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 对象关联的 images 集合中添加图像,创建一个 [PPImage](https://reference.aspose.com/slides/nodejs-java/aspose.slides/PPImage) 对象,以用于填充帧。 +8. 为创建的章节缩放框架对象设置自定义图像。 +9. 设置*从链接的章节返回到原始幻灯片*的功能。 +11. 更改第二个缩放帧对象的线条格式。 +12. 更改过渡持续时间。 +13. 将修改后的演示文稿写入为 PPTX 文件。 + +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 向演示文稿添加新幻灯片 + var slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "gray")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 1", slide); + // 向演示文稿添加新幻灯片 + slide = pres.getSlides().addEmptySlide(pres.getSlides().get_Item(0).getLayoutSlide()); + slide.getBackground().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + slide.getBackground().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "cyan")); + slide.getBackground().setType(aspose.slides.BackgroundType.OwnBackground); + // 向演示文稿添加新章节 + pres.getSections().addSection("Section 2", slide); + // 添加 SummaryZoomFrame 对象 + var summaryZoomFrame = pres.getSlides().get_Item(0).getShapes().addSummaryZoomFrame(150, 50, 300, 200); + // 获取第一个 SummaryZoomSection 对象 + var summarySection = summaryZoomFrame.getSummaryZoomCollection().get_Item(0); + // 对 SummaryZoomSection 对象进行格式设置 + var picture; + var image = aspose.slides.Images.fromFile("image.png"); + try { + picture = pres.getImages().addImage(picture); + } finally { + if (image != null) { + image.dispose(); + } + } + summarySection.setImage(picture); + summarySection.setReturnToParent(false); + summarySection.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + summarySection.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "black")); + summarySection.getLineFormat().setDashStyle(aspose.slides.LineDashStyle.DashDot); + summarySection.getLineFormat().setWidth(1.5); + summarySection.setTransitionDuration(1.5); + // 保存演示文稿 + pres.save("presentation.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以控制在显示目标后返回“父”幻灯片吗?** + +是的。[Zoom 框架](https://reference.aspose.com/slides/nodejs-java/aspose.slides/zoomframe/)或[章节](https://reference.aspose.com/slides/nodejs-java/aspose.slides/sectionzoomframe/)都有 `setReturnToParent` 方法,启用后在观看者访问目标内容后会返回到原始幻灯片。 + +**我可以调整 Zoom 过渡的“速度”或持续时间吗?** + +可以。Zoom 提供 `setTransitionDuration` 方法,您可以控制跳转动画的持续时间。 + +**演示文稿中可以包含多少个 Zoom 对象有上限吗?** + +没有文档中硬性的 API 限制。实际限制取决于演示文稿的整体复杂度和观看者的性能。您可以添加很多 Zoom 框架,但需考虑文件大小和渲染时间。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md b/zh/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md new file mode 100644 index 0000000000..d09d9d91c9 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/managing-tags-and-custom-data/_index.md @@ -0,0 +1,100 @@ +--- +title: 管理标签和自定义数据 +type: docs +weight: 300 +url: /zh/nodejs-java/managing-tags-and-custom-data +--- + +## **演示文稿文件中的数据存储** + +PPTX 文件——具有 .pptx 扩展名的项目——采用 PresentationML 格式存储,该格式是 Office Open XML 规范的一部分。Office Open XML 规范定义了演示文稿中数据的结构。 + +在演示文稿中,*幻灯片* 是其中的一个元素,*幻灯片部件* 包含单个幻灯片的内容。幻灯片部件可以与许多部件建立显式关系——例如由 ISO/IEC 29500 定义的用户自定义标签——。 + +自定义数据(特定于某个演示文稿)或用户可以以标签([TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/TagCollection))和 CustomXmlPart([CustomXmlPartCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/CustomXmlPartCollection))的形式存在。 + +{{% alert color="primary" %}} +标签本质上是字符串键值对。 +{{% /alert %}} + +## **获取标签的值** + +在幻灯片中,标签对应于 [DocumentProperties.getKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#getKeywords--) 和 [DocumentProperties.setKeywords()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DocumentProperties#setKeywords-java.lang.String-) 方法。下面的示例代码演示了如何使用 Aspose.Slides for Node.js via Java 从 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 获取标签的值: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var keywords = pres.getDocumentProperties().getKeywords(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **向演示文稿添加标签** + +Aspose.Slides 允许您向演示文稿添加标签。标签通常包含两个项目: + +- 自定义属性的名称 - `MyTag` +- 自定义属性的值 - `My Tag Value` + +如果您需要根据特定规则或属性对演示文稿进行分类,添加标签会有所帮助。例如,若想将所有来自北美国家的演示文稿归类在一起,您可以创建一个北美标签,并将相关国家(美国、墨西哥和加拿大)设为其值。 + +下面的示例代码演示了如何使用 Aspose.Slides for Node.js via Java 向 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 添加标签: +```javascript +var pres = new aspose.slides.Presentation("pres.pptx"); +try { + var tags = pres.getCustomData().getTags(); + pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +标签也可以设置到 [Slide](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Slide): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + slide.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +或任意单独的 [Shape](https://reference.aspose.com/slides/nodejs-java/aspose.slides/AutoShape): +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50); + shape.getTextFrame().setText("My text"); + shape.getCustomData().getTags().set_Item("tag", "value"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以一次性删除演示文稿、幻灯片或形状中的所有标签吗?** + +可以。[tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) 支持 [clear](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/clear/) 操作,可一次性删除所有键值对。 + +**如何在不遍历整个集合的情况下,仅通过标签名称删除单个标签?** + +使用 [TagCollection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) 上的 [remove(name)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/remove/) 操作即可通过键删除该标签。 + +**如何获取所有标签名称的完整列表以用于分析或过滤?** + +在 [tag collection](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/) 上调用 [getNamesOfTags](https://reference.aspose.com/slides/nodejs-java/aspose.slides/tagcollection/getnamesoftags/);它会返回所有标签名称的数组。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md new file mode 100644 index 0000000000..af71fe8e34 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/animated-charts/_index.md @@ -0,0 +1,179 @@ +--- +title: 动画图表 +type: docs +weight: 80 +url: /zh/nodejs-java/animated-charts/ +--- + +{{% alert color="primary" %}} + +Aspose.Slides for Node.js via Java 支持对图表元素进行动画。**Series**、**Categories**、**Series Elements**、**Categories Elements** 可使用[**Sequence**.**addEffect**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Sequence#addEffect-aspose.slides.IChart-int-int-int-int-int-)方法以及两个枚举[**EffectChartMajorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMajorGroupingType)和[**EffectChartMinorGroupingType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/EffectChartMinorGroupingType)进行动画。 + +{{% /alert %}} + +## **图表系列动画** +如果您想为图表系列添加动画,请按照以下步骤编写代码: + +1. 加载演示文稿。 +1. 获取图表对象的引用。 +1. 为系列添加动画。 +1. 将演示文稿写入磁盘。 + +在下面的示例中,我们为图表系列添加了动画。 +```javascript +// 实例化表示演示文稿文件的 Presentation 类 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // 获取图表对象的引用 + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // 为系列添加动画 + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.BySeries, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // 将修改后的演示文稿写入磁盘 + pres.save("AnimatingSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **图表类别动画** +如果您想为图表类别添加动画,请按照以下步骤编写代码: + +1. 加载演示文稿。 +1. 获取图表对象的引用。 +1. 为类别添加动画。 +1. 将演示文稿写入磁盘。 + +在下面的示例中,我们为图表类别添加了动画。 +```javascript +// 实例化表示演示文稿文件的 Presentation 类 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMajorGroupingType.ByCategory, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + pres.save("Sample_Animation_C.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **系列元素动画** +如果您想为系列元素添加动画,请按照以下步骤编写代码: + +1. 加载演示文稿。 +1. 获取图表对象的引用。 +1. 为系列元素添加动画。 +1. 将演示文稿写入磁盘。 + +在下面的示例中,我们为系列元素添加了动画。 +```javascript +// 实例化表示演示文稿文件的 Presentation 类 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // 获取图表对象的引用 + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // 为系列元素添加动画 + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInSeries, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // 将演示文稿写入磁盘 + pres.save("AnimatingSeriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **类别元素动画** +如果您想为类别元素添加动画,请按照以下步骤编写代码: + +1. 加载演示文稿。 +1. 获取图表对象的引用。 +1. 为类别元素添加动画。 +1. 将演示文稿写入磁盘。 + +在下面的示例中,我们为类别元素添加了动画。 +```javascript +// 实例化表示演示文稿文件的 Presentation 类 +var pres = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + // 获取图表对象的引用 + var slide = pres.getSlides().get_Item(0); + var shapes = slide.getShapes(); + var chart = shapes.get_Item(0); + // 为类别元素添加动画 + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectType.Fade, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 0, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 1, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 0, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 1, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 2, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + slide.getTimeline().getMainSequence().addEffect(chart, aspose.slides.EffectChartMinorGroupingType.ByElementInCategory, 2, 3, aspose.slides.EffectType.Appear, aspose.slides.EffectSubtype.None, aspose.slides.EffectTriggerType.AfterPrevious); + // 将演示文稿写入磁盘 + pres.save("AnimatingCategoriesElements_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**是否像普通形状一样支持图表的不同效果类型(例如进入、强调、退出)?** + +是的。图表被视为形状,因此支持标准的动画效果类型,包括进入、强调和退出,可通过幻灯片的时间轴和动画序列进行完整控制。 + +**我可以将图表动画与幻灯片切换结合使用吗?** + +是的。[切换](/slides/zh/nodejs-java/slide-transition/)作用于幻灯片本身,而动画效果作用于幻灯片上的对象。您可以在同一演示文稿中同时使用两者并独立控制。 + +**保存为 PPTX 时图表动画会被保留吗?** + +是的。当您[保存为 PPTX](/slides/zh/nodejs-java/save-presentation/)时,所有动画效果及其顺序都会被保留,因为它们是演示文稿本地动画模型的一部分。 + +**我可以读取演示文稿中已有的图表动画并对其进行修改吗?** + +是的。API 提供对幻灯片时间轴、序列和效果的访问,允许您检查现有的图表动画并在不重新创建的情况下进行调整。 + +**我能使用 Aspose.Slides 生成包含图表动画的视频吗?** + +是的。您可以[将演示文稿导出为视频](/slides/zh/nodejs-java/convert-powerpoint-to-video/),在导出时保留动画,配置时间和其他导出设置,使生成的片段能够呈现动画播放效果。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md new file mode 100644 index 0000000000..56629103f3 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-calculations/_index.md @@ -0,0 +1,99 @@ +--- +title: 图表计算 +type: docs +weight: 50 +url: /zh/nodejs-java/chart-calculations/ +--- + +## **计算图表元素的实际值** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API 用于获取这些属性。[Axis](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis) 类的属性提供了轴图表元素实际位置的信息([Axis.getActualMaxValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMaxValue--)、[Axis.getActualMinValue](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinValue--)、[Axis.getActualMajorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnit--)、[Axis.getActualMinorUnit](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnit--)、[Axis.getActualMajorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMajorUnitScale--)、[Axis.getActualMinorUnitScale](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Axis#getActualMinorUnitScale--)。需要先调用方法[Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--)来填充属性的实际值。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **计算父图表元素的实际位置** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API 用于获取这些属性。[ActualLayout](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout) 类的属性提供了父图表元素实际位置的信息([ActualLayout.getActualX](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualX--)、[ActualLayout.getActualY](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualY--)、[ActualLayout.getActualWidth](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualWidth--)、[ActualLayout.getActualHeight](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ActualLayout#getActualHeight--))。需要先调用方法[Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--)来填充属性的实际值。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **隐藏图表信息** + +本主题帮助您了解如何隐藏图表中的信息。使用 Aspose.Slides for Node.js via Java,您可以隐藏 **标题, 垂直轴, 水平轴** 和 **网格线**。下面的代码示例展示了如何使用这些属性。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 140, 118, 320, 370); + // 隐藏图表标题 + chart.setTitle(false); + // /隐藏数值轴 + chart.getAxes().getVerticalAxis().setVisible(false); + // 类别轴可见性 + chart.getAxes().getHorizontalAxis().setVisible(false); + // 隐藏图例 + chart.setLegend(false); + // 隐藏主网格线 + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill)); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().removeAt(i); + } + var series = chart.getChartData().getSeries().get_Item(0); + series.getMarker().setSymbol(aspose.slides.MarkerStyleType.Circle); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.Top); + series.getMarker().setSize(15); + // 设置系列线颜色 + series.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "MAGENTA")); + series.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + pres.save("HideInformationFromChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**外部 Excel 工作簿可以作为数据源吗?这会如何影响重新计算?** + +是的。图表可以引用外部工作簿:当您连接或刷新外部源时,公式和数值会从该工作簿中获取,图表在打开/编辑操作期间会反映更新。API 允许您[指定外部工作簿](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/)路径并管理链接的数据。 + +**我可以在不自行实现回归的情况下计算并显示趋势线吗?** + +是的。[趋势线](/slides/zh/nodejs-java/trend-line/)(线性、指数等)由 Aspose.Slides 添加和更新;其参数会根据系列数据自动重新计算,您无需自行实现计算。 + +**如果演示文稿中有多个带外部链接的图表,我可以控制每个图表使用哪本工作簿进行计算吗?** + +是的。每个图表可以指向其自己的[外部工作簿](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chartdata/setexternalworkbook/),或者您可以为每个图表独立创建/替换外部工作簿,而不影响其他图表。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md new file mode 100644 index 0000000000..bf0c22b593 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/callout/_index.md @@ -0,0 +1,98 @@ +--- +title: 标注 +type: docs +url: /zh/nodejs-java/callout/ +--- + +## **使用 Callouts** + +已向 [DataLabelFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datalabelformat) 类添加了新方法 [**getShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#getShowLabelAsDataCallout--) 和 [**setShowLabelAsDataCallout()**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/DataLabelFormat#setShowLabelAsDataCallout-boolean-)。这些方法决定指定图表的数据标签是显示为数据标注框还是显示为普通数据标签。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 500, 400); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowLabelAsDataCallout(true); + chart.getChartData().getSeries().get_Item(0).getLabels().get_Item(2).getDataLabelFormat().setShowLabelAsDataCallout(false); + pres.save("DisplayCharts.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **为环形图设置 Callout** + +Aspose.Slides for Node.js via Java 提供了为环形图设置系列数据标签标注框形状的支持。下面给出示例。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.Doughnut, 10, 10, 500, 500, false); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + chart.setLegend(false); + var seriesIndex = 0; + while (seriesIndex < 15) { + var series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType()); + series.setExplosion(0); + series.getParentSeriesGroup().setDoughnutHoleSize(20); + series.getParentSeriesGroup().setFirstSliceAngle(351); + seriesIndex++; + } + var categoryIndex = 0; + while (categoryIndex < 15) { + chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex)); + var i = 0; + while (i < chart.getChartData().getSeries().size()) { + var iCS = chart.getChartData().getSeries().get_Item(i); + var dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1)); + dataPoint.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + dataPoint.getFormat().getLine().setWidth(1); + dataPoint.getFormat().getLine().setStyle(aspose.slides.LineStyle.Single); + dataPoint.getFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.Solid); + if (i == (chart.getChartData().getSeries().size() - 1)) { + var lbl = dataPoint.getLabel(); + lbl.getTextFormat().getTextBlockFormat().setAutofitType(aspose.slides.TextAutofitType.Shape); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new aspose.slides.FontData("DINPro-Bold")); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY")); + lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + lbl.getDataLabelFormat().setShowValue(false); + lbl.getDataLabelFormat().setShowCategoryName(true); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowLeaderLines(true); + lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); + chart.validateChartLayout(); + lbl.setX(lbl.getX() + 0.5); + lbl.setY(lbl.getY() + 0.5); + } + i++; + } + categoryIndex++; + } + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**在将演示文稿转换为 PDF、HTML5、SVG 或图像时,Callouts 会被保留吗?** + +是的。Callouts 是图表渲染的一部分,因此在导出为 [PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/)、[HTML5](/slides/zh/nodejs-java/export-to-html5/)、[SVG](/slides/zh/nodejs-java/render-a-slide-as-an-svg-image/) 或 [栅格图像](/slides/zh/nodejs-java/convert-powerpoint-to-png/) 时,它们会随幻灯片的格式一起保留。 + +**自定义字体在 Callouts 中是否有效,导出时其外观能否保持?** + +是的。Aspose.Slides 支持将字体嵌入演示文稿,并在导出为 [PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/) 等格式时控制字体嵌入,确保 Callouts 在不同系统上保持相同外观。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md new file mode 100644 index 0000000000..4a574b7441 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-axis/_index.md @@ -0,0 +1,228 @@ +--- +title: 图表坐标轴 +type: docs +url: /zh/nodejs-java/chart-axis/ +keywords: "PowerPoint 图表坐标轴, 演示文稿图表, Java, 操作图表坐标轴, 图表数据" +description: "如何在 JavaScript 中编辑 PowerPoint 图表坐标轴" +--- + +## **获取图表垂直轴上的最大值** + +Aspose.Slides for Node.js via Java 允许您获取垂直轴上的最小值和最大值。请按照以下步骤操作: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 访问第一张幻灯片。 +1. 添加一个带默认数据的图表。 +1. 获取轴上的实际最大值。 +1. 获取轴上的实际最小值。 +1. 获取轴的实际主单位。 +1. 获取轴的实际次单位。 +1. 获取轴的实际主单位比例。 +1. 获取轴的实际次单位比例。 + +此示例代码——上述步骤的实现——展示了如何在 JavaScript 中获取所需的值: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 100, 100, 500, 350); + chart.validateChartLayout(); + var maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue(); + var minValue = chart.getAxes().getVerticalAxis().getActualMinValue(); + var majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit(); + var minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit(); + // 保存演示文稿 + pres.save("MaxValuesVerticalAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在轴之间交换数据** + +Aspose.Slides 允许您快速在轴之间交换数据——垂直轴(y 轴)上的数据会移动到水平轴(x 轴),反之亦然。 + +此 JavaScript 代码展示了如何在图表上执行轴间数据交换任务: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + // 切换行和列 + chart.getChartData().switchRowColumn(); + // 保存演示文稿 + pres.save("SwitchChartRowColumns_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **禁用折线图的垂直轴** + +此 JavaScript 代码展示了如何隐藏折线图的垂直轴: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getVerticalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **禁用折线图的水平轴** + +此代码展示了如何隐藏折线图的水平轴: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 100, 100, 400, 300); + chart.getAxes().getHorizontalAxis().setVisible(false); + pres.save("chart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **更改分类轴** + +使用 **CategoryAxisType** 属性,您可以指定首选的分类轴类型(**date** 或 **text**)。下面的 JavaScript 代码演示了此操作: +```javascript +var presentation = new aspose.slides.Presentation("ExistingChart.pptx"); +try { + var chart = presentation.getSlides().get_Item(0).getShapes().get_Item(0); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setAutomaticMajorUnit(false); + chart.getAxes().getHorizontalAxis().setMajorUnit(1); + chart.getAxes().getHorizontalAxis().setMajorUnitScale(aspose.slides.TimeUnitType.Months); + presentation.save("ChangeChartCategoryAxis_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (presentation != null) { + presentation.dispose(); + } +} +``` + + +## **设置分类轴值的日期格式** + +Aspose.Slides for Node.js via Java 允许您为分类轴值设置日期格式。此操作在以下 JavaScript 代码中演示: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Area, 50, 50, 450, 300); + var wb = chart.getChartData().getChartDataWorkbook(); + wb.clear(0); + chart.getChartData().getCategories().clear(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(java.newInstanceSync("GregorianCalendar", 2015, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(java.newInstanceSync("GregorianCalendar", 2016, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(java.newInstanceSync("GregorianCalendar", 2017, 1, 1)))); + chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(java.newInstanceSync("GregorianCalendar", 2018, 1, 1)))); + var series = chart.getChartData().getSeries().add(aspose.slides.ChartType.Line); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3)); + series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4)); + chart.getAxes().getHorizontalAxis().setCategoryAxisType(aspose.slides.CategoryAxisType.Date); + chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + +```javascript +const dayjs = require('dayjs'); + +function convertToOADate(date) { + const baseDate = dayjs('1899-12-30'); + + const days = date.diff(baseDate, 'day'); + + const fractionalDay = (date.hour() / 24) + + (date.minute() / (60 * 24)) + + (date.second() / (60 * 24 * 60)); + + const oaDate = days + fractionalDay; + + return String(oaDate); +} +``` + + +## **设置图表轴标题的旋转角度** + +Aspose.Slides for Node.js via Java 允许您设置图表轴标题的旋转角度。此 JavaScript 代码演示了该操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setTitle(true); + chart.getAxes().getVerticalAxis().getTitle().getTextFormat().getTextBlockFormat().setRotationAngle(90); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在分类轴或数值轴中设置位置轴** + +Aspose.Slides for Node.js via Java 允许您在分类轴或数值轴中设置位置轴。此 JavaScript 代码展示了如何完成此任务: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getHorizontalAxis().setAxisBetweenCategories(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在图表数值轴上启用显示单位标签** + +Aspose.Slides for Node.js via Java 允许您配置图表,以在其数值轴上显示单位标签。此 JavaScript 代码演示了该操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 450, 300); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Millions); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**如何设置一个轴交叉另一个轴的值(轴交叉)?** + +轴提供了[交叉设置](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setcrosstype/):您可以选择在零点、最大分类/数值处或特定数值处交叉。这对于上下移动 X 轴或强调基线非常有用。 + +**如何相对于轴定位刻度标签(旁边、外部、内部)?** + +将[label位置](https://reference.aspose.com/slides/nodejs-java/aspose.slides/axis/setmajortickmark/)设置为 "cross"、"outside" 或 "inside"。这会影响可读性,并有助于节省空间,尤其是在小型图表上。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md new file mode 100644 index 0000000000..69e04556d2 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-label/_index.md @@ -0,0 +1,198 @@ +--- +title: 图表数据标签 +type: docs +url: /zh/nodejs-java/chart-data-label/ +keywords: "图表数据标签,标签距离, Java, Aspose.Slides for Node.js via Java" +description: "在 JavaScript 中设置 PowerPoint 图表数据标签及距离" +--- + +图表中的数据标签显示有关图表数据系列或单个数据点的详细信息。它们使读者能够快速识别数据系列,并让图表更易于理解。 + +## **设置图表数据标签的数据精度** + +此 JavaScript 代码示例展示了如何在图表数据标签中设置数据精度: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Line, 50, 50, 450, 300); + chart.setDataTable(true); + chart.getChartData().getSeries().get_Item(0).setNumberFormatOfValues("#,##0.00"); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **显示百分比为标签** + +Aspose.Slides for Node.js via Java 允许您在显示的图表上设置百分比标签。此 JavaScript 代码演示了该操作: +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 获取第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 20, 20, 400, 400); + var series; + var total_for_Cat = new double[chart.getChartData().getCategories().size()]; + for (var k = 0; k < chart.getChartData().getCategories().size(); k++) { + var cat = chart.getChartData().getCategories().get_Item(k); + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + total_for_Cat[k] = total_for_Cat[k] + chart.getChartData().getSeries().get_Item(i).getDataPoints().get_Item(k).getValue().getData(); + } + } + var dataPontPercent = 0.0; + for (var x = 0; x < chart.getChartData().getSeries().size(); x++) { + series = chart.getChartData().getSeries().get_Item(x); + series.getLabels().getDefaultDataLabelFormat().setShowLegendKey(false); + for (var j = 0; j < series.getDataPoints().size(); j++) { + var lbl = series.getDataPoints().get_Item(j).getLabel(); + dataPontPercent = (series.getDataPoints().get_Item(j).getValue().getData() / total_for_Cat[j]) * 100; + var port = new aspose.slides.Portion(); + port.setText(java.callStaticMethodSync("java.lang.String", "format", "{0:F2} %.2f", dataPontPercent)); + port.getPortionFormat().setFontHeight(8.0); + lbl.getTextFrameForOverriding().setText(""); + var para = lbl.getTextFrameForOverriding().getParagraphs().get_Item(0); + para.getPortions().add(port); + lbl.getDataLabelFormat().setShowSeriesName(false); + lbl.getDataLabelFormat().setShowPercentage(false); + lbl.getDataLabelFormat().setShowLegendKey(false); + lbl.getDataLabelFormat().setShowCategoryName(false); + lbl.getDataLabelFormat().setShowBubbleSize(false); + } + } + // 保存包含图表的演示文稿 + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **在图表数据标签中设置百分号** + +此 JavaScript 代码展示了如何为图表数据标签设置百分号: +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 通过索引获取幻灯片的引用 + var slide = pres.getSlides().get_Item(0); + // 在幻灯片上创建 PercentsStackedColumn 图表 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.PercentsStackedColumn, 20, 20, 500, 400); + // 将 NumberFormatLinkedToSource 设置为 false + chart.getAxes().getVerticalAxis().setNumberFormatLinkedToSource(false); + chart.getAxes().getVerticalAxis().setNumberFormat("0.00%"); + chart.getChartData().getSeries().clear(); + var defaultWorksheetIndex = 0; + // 获取图表数据工作表 + var workbook = chart.getChartData().getChartDataWorkbook(); + // 添加新系列 + var series = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.getType()); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 1, 0.3)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 1, 0.5)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 1, 0.8)); + series.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 1, 0.65)); + // 设置系列的填充颜色 + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // 设置标签格式属性 + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + series.getLabels().getDefaultDataLabelFormat().setShowValue(true); + // 添加新系列 + var series2 = chart.getChartData().getSeries().add(workbook.getCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.getType()); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 1, 2, 0.7)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 2, 2, 0.5)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 3, 2, 0.2)); + series2.getDataPoints().addDataPointForBarSeries(workbook.getCell(defaultWorksheetIndex, 4, 2, 0.35)); + // 设置填充类型和颜色 + series2.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + series2.getLabels().getDefaultDataLabelFormat().setShowValue(true); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormatLinkedToSource(false); + series2.getLabels().getDefaultDataLabelFormat().setNumberFormat("0.0%"); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(10); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series2.getLabels().getDefaultDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "WHITE")); + // 将演示文稿写入磁盘 + pres.save("SetDataLabelsPercentageSign_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置标签与坐标轴的距离** + +此 JavaScript 代码展示了在处理基于坐标轴绘制的图表时,如何设置标签与类别坐标轴的距离: +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 获取幻灯片的引用 + var sld = pres.getSlides().get_Item(0); + // 在幻灯片上创建图表 + var ch = sld.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 300); + // 设置标签与坐标轴的距离 + ch.getAxes().getHorizontalAxis().setLabelOffset(500); + // 将演示文稿写入磁盘 + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **调整标签位置** + +当您创建不依赖坐标轴的图表(例如饼图)时,图表的数据标签可能会太靠近边缘。此时,需要调整数据标签的位置,以便清晰显示引导线。 + +此 JavaScript 代码展示了如何在饼图上调整标签位置: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 200, 200); + var series = chart.getChartData().getSeries(); + var label = series.get_Item(0).getLabels().get_Item(0); + label.getDataLabelFormat().setShowValue(true); + label.getDataLabelFormat().setPosition(aspose.slides.LegendDataLabelPosition.OutsideEnd); + label.setX(0.71); + label.setY(0.04); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +![pie-chart-adjusted-label](pie-chart-adjusted-label.png) + +## **常见问题** + +**如何防止在密集图表上数据标签重叠?** + +结合自动标签放置、引导线和减小字体大小;如有必要,隐藏某些字段(例如类别),或仅对极端/关键点显示标签。 + +**如何仅对零、负数或空值禁用标签?** + +在启用标签前过滤数据点,并根据定义的规则关闭对值为 0、负值或缺失值的显示。 + +**如何确保导出为 PDF/图像时标签样式保持一致?** + +显式设置字体(族、大小),并确认渲染端可用该字体,以避免回退。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md new file mode 100644 index 0000000000..95e329afd3 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-marker/_index.md @@ -0,0 +1,75 @@ +--- +title: 图表数据标记 +type: docs +url: /zh/nodejs-java/chart-data-marker/ +--- + +## **设置图表标记选项** + +可以在特定系列的图表数据点上设置标记。要设置图表标记选项,请按照以下步骤操作: + +- 实例化[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)类。 +- 创建默认图表。 +- 设置图片。 +- 获取第一个图表系列。 +- 添加新数据点。 +- 将演示文稿写入磁盘。 + +在下面的示例中,我们已在数据点级别设置图表标记选项。 +```javascript +// 创建空演示文稿 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 创建默认图表 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 0, 0, 400, 400); + // 获取默认图表数据工作表索引 + var defaultWorksheetIndex = 0; + // 获取图表数据工作表 + var fact = chart.getChartData().getChartDataWorkbook(); + // 删除示例系列 + chart.getChartData().getSeries().clear(); + // 添加新系列 + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType()); + // 加载图片 1 + var imgx1 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Desert.jpg"))); + // 加载图片 2 + var imgx2 = pres.getImages().addImage(java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "Tulips.jpg"))); + // 获取第一个图表系列 + var series = chart.getChartData().getSeries().get_Item(0); + // 在此处添加新数据点 (1:3)。 + var point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 2.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 3.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx1); + point = series.getDataPoints().addDataPointForLineSeries(fact.getCell(defaultWorksheetIndex, 4, 1, 4.5)); + point.getMarker().getFormat().getFill().setFillType(aspose.slides.FillType.Picture); + point.getMarker().getFormat().getFill().getPictureFillFormat().getPicture().setImage(imgx2); + // 更改图表系列标记 + series.getMarker().setSize(15); + // 保存带图表的演示文稿 + pres.save("ScatterChart.pptx", aspose.slides.SaveFormat.Pptx); +} catch (e) {console.log(e); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**有哪些标记形状是开箱即用的?** + +提供标准形状(圆形、方形、菱形、三角形等);这些形状的列表由[MarkerStyleType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/markerstyletype/)枚举定义。如果需要非标准形状,请使用带图片填充的标记来模拟自定义视觉效果。 + +**在将图表导出为图像或 SVG 时,标记会被保留吗?** + +是的。在将图表渲染为[raster formats](/slides/zh/nodejs-java/convert-powerpoint-to-png/)或保存为[shapes as SVG](/slides/zh/nodejs-java/render-a-slide-as-an-svg-image/)时,标记会保留其外观和设置,包括大小、填充和轮廓。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md new file mode 100644 index 0000000000..ae0f500bd4 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-data-table/_index.md @@ -0,0 +1,51 @@ +--- +title: 图表数据表 +type: docs +url: /zh/nodejs-java/chart-data-table/ +--- + +## **设置图表数据表的字体属性** + +Aspose.Slides for Node.js via Java 提供了更改系列颜色中类别颜色的支持。 + +1. 实例化[Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation)类对象。 +1. 在幻灯片上添加图表。 +1. 设置图表数据表。 +1. 设置字体高度。 +1. 保存修改后的演示文稿。 + +下面给出示例。 +```javascript +// 创建空的演示文稿 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.setDataTable(true); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chart.getChartDataTable().getTextFormat().getPortionFormat().setFontHeight(20); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以在图表数据表的数值旁显示小的图例键吗?** + +是的。数据表支持[legend keys](https://reference.aspose.com/slides/nodejs-java/aspose.slides/datatable/setshowlegendkey/),您可以打开或关闭它们。 + +**在将演示文稿导出为 PDF、HTML 或图像时,数据表会被保留吗?** + +是的。Aspose.Slides 将图表呈现为幻灯片的一部分,因此导出的[PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/)/[HTML](/slides/zh/nodejs-java/convert-powerpoint-to-html/)/[image](/slides/zh/nodejs-java/convert-powerpoint-to-png/)包含带有数据表的图表。 + +**来自模板文件的图表是否支持数据表?** + +是的。对于从现有演示文稿或模板加载的任何图表,您可以使用图表的属性检查并更改数据表是否[is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/)。 + +**如何快速查找文件中哪些图表启用了数据表?** + +检查每个图表的属性,以确定数据表是否[is shown](https://reference.aspose.com/slides/nodejs-java/aspose.slides/chart/hasdatatable/),并遍历幻灯片以识别启用了该功能的图表。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md new file mode 100644 index 0000000000..8449ceb7b3 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-legend/_index.md @@ -0,0 +1,113 @@ +--- +title: 图表图例 +type: docs +url: /zh/nodejs-java/chart-legend/ +--- + +## **图例定位** + +为了设置图例属性,请按照以下步骤操作: + +- 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +- 获取幻灯片的引用。 +- 在幻灯片上添加图表。 +- 设置图例的属性。 +- 将演示文稿写入为 PPTX 文件。 + +在下面的示例中,我们已为图表图例设置位置和大小。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 获取幻灯片的引用 + var slide = pres.getSlides().get_Item(0); + // 在幻灯片上添加聚簇柱形图 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 500); + // 设置图例属性 + chart.getLegend().setX(50 / chart.getWidth()); + chart.getLegend().setY(50 / chart.getHeight()); + chart.getLegend().setWidth(100 / chart.getWidth()); + chart.getLegend().setHeight(100 / chart.getHeight()); + // 将演示文稿写入磁盘 + pres.save("Legend_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置图例字体大小** + +Aspose.Slides for Node.js via Java 允许开发人员设置图例的字体大小。请按以下步骤操作: + +- 实例化 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类。 +- 创建默认图表。 +- 设置字体大小。 +- 设置最小轴值。 +- 设置最大轴值。 +- 将演示文稿写入磁盘。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(20); + chart.getAxes().getVerticalAxis().setAutomaticMinValue(false); + chart.getAxes().getVerticalAxis().setMinValue(-5); + chart.getAxes().getVerticalAxis().setAutomaticMaxValue(false); + chart.getAxes().getVerticalAxis().setMaxValue(10); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置单个图例项的字体大小** + +Aspose.Slides for Node.js via Java 允许开发人员设置单个图例项的字体大小。请按以下步骤操作: + +- 实例化 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类。 +- 创建默认图表。 +- 访问图例项。 +- 设置字体大小。 +- 设置最小轴值。 +- 设置最大轴值。 +- 将演示文稿写入磁盘。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var tf = chart.getLegend().getEntries().get_Item(1).getTextFormat(); + tf.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + tf.getPortionFormat().setFontHeight(20); + tf.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + tf.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tf.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我可以启用图例,使图表自动为其分配空间而不是覆盖它吗?** + +是的。使用非覆盖模式([setOverlay(false)](https://reference.aspose.com/slides/nodejs-java/aspose.slides/legend/setoverlay/));在这种情况下,绘图区域会收缩以容纳图例。 + +**我可以创建多行图例标签吗?** + +是的。当空间不足时,长标签会自动换行;通过在系列名称中使用换行符可以实现强制换行。 + +**如何使图例遵循演示文稿主题的配色方案?** + +不要为图例或其文本显式设置颜色、填充或字体。这样它们会继承主题的配色,并在设计更改时自动更新。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md new file mode 100644 index 0000000000..f59e4703c6 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-plot-area/_index.md @@ -0,0 +1,81 @@ +--- +title: 图表绘图区 +type: docs +url: /zh/nodejs-java/chart-plot-area/ +--- + +## **获取图表绘图区的宽度和高度** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API 用于 . + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 访问第一张幻灯片。 +1. 使用默认数据添加图表。 +1. 在获取实际值之前调用方法 [Chart.validateChartLayout()](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#validateChartLayout--)。 +1. 获取图表元素相对于图表左上角的实际 X 位置(左)。 +1. 获取图表元素相对于图表左上角的实际顶部位置。 +1. 获取图表元素的实际宽度。 +1. 获取图表元素的实际高度。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 350); + chart.validateChartLayout(); + var x = chart.getPlotArea().getActualX(); + var y = chart.getPlotArea().getActualY(); + var w = chart.getPlotArea().getActualWidth(); + var h = chart.getPlotArea().getActualHeight(); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置图表绘图区的布局模式** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API 来设置图表绘图区的布局模式。已在 [**ChartPlotArea**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea) 类中添加了方法 [**setLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#setLayoutTargetType-int-) 和 [**getLayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartPlotArea#getLayoutTargetType--)。如果绘图区的布局是手动定义的,此属性指定是按内部(不包括坐标轴和坐标轴标签)还是外部(包括坐标轴和坐标轴标签)进行布局。共有两个可能的值,定义在 [**LayoutTargetType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType) 枚举中。 + +- [**LayoutTargetType.Inner**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Inner) - 指定绘图区的大小由绘图区的尺寸决定,不包括刻度线和坐标轴标签。 +- [**LayoutTargetType.Outer**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/LayoutTargetType#Outer) - 指定绘图区的大小由绘图区的尺寸、刻度线和坐标轴标签决定。 + +示例代码如下。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getPlotArea().setX(0.2); + chart.getPlotArea().setY(0.2); + chart.getPlotArea().setWidth(0.7); + chart.getPlotArea().setHeight(0.7); + chart.getPlotArea().setLayoutTargetType(aspose.slides.LayoutTargetType.Inner); + pres.save("SetLayoutMode_outer.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**实际 X、实际 Y、实际宽度和实际高度以什么单位返回?** + +以点为单位;1 英寸 = 72 点。这些是 Aspose.Slides 的坐标单位。 + +**绘图区在内容上与图表区域有何不同?** + +绘图区是数据绘制区域(系列、网格线、趋势线等);图表区域包括周围的元素(标题、图例等)。在 3D 图表中,绘图区还包括墙/地板和坐标轴。 + +**当布局为手动时,绘图区的 X、Y、宽度和高度如何解释?** + +它们是图表整体尺寸的比例(0–1);在此模式下,自动定位被禁用,使用您设置的比例值。 + +**为什么在添加/移动图例后绘图区的位置会变化?** + +图例位于图表区域的绘图区之外,但会影响布局和可用空间,因此在自动定位生效时绘图区可能会移动。(这是 PowerPoint 图表的标准行为。) \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md new file mode 100644 index 0000000000..2de41f420e --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/chart-series/_index.md @@ -0,0 +1,336 @@ +--- +title: 图表系列 +type: docs +url: /zh/nodejs-java/chart-series/ +keywords: "图表系列, 系列颜色, PowerPoint 演示文稿, Java, Aspose.Slides for Node.js via Java" +description: "JavaScript 中 PowerPoint 演示文稿的图表系列" +--- + +系列是绘制在图表中的一行或一列数字。 + +![chart-series-powerpoint](chart-series-powerpoint.png) + +## **设置图表系列重叠** + +使用 [ChartSeries.getOverlap](https://reference.aspose.com/slides/net/aspose.slides.charts/ichartseries/properties/overlap) 方法,您可以指定 2D 图表中条形和柱形的重叠程度(范围:-100 到 100)。此属性适用于父系列组的所有系列:它是相应组属性的投影。因此,此属性为只读。 + +使用 `ParentSeriesGroup.getOverlap` 可读写属性来设置您偏好的 `Overlap` 值。 + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 在幻灯片上添加一个簇状柱形图。 +3. 访问第一个图表系列。 +4. 访问该系列的 `ParentSeriesGroup` 并为系列设置您偏好的重叠值。 +5. 将修改后的演示文稿写入 PPTX 文件。 + +此 JavaScript 代码示例演示了如何为图表系列设置重叠: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 添加图表 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + if (series.get_Item(0).getOverlap() == 0) { + // 设置系列重叠 + series.get_Item(0).getParentSeriesGroup().setOverlap(-30); + } + // 将演示文稿文件写入磁盘 + pres.save("SetChartSeriesOverlap_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **更改系列颜色** + +Aspose.Slides for Node.js via Java 允许您按以下方式更改系列的颜色: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 在幻灯片上添加图表。 +3. 访问您要更改颜色的系列。 +4. 设置您偏好的填充类型和填充颜色。 +5. 保存修改后的演示文稿。 + +此 JavaScript 代码示例演示了如何更改系列颜色: +```javascript +var pres = new aspose.slides.Presentation("test.pptx"); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Pie, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1); + point.setExplosion(30); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **更改系列类别的颜色** + +Aspose.Slides for Node.js via Java 允许您按以下方式更改系列类别的颜色: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 在幻灯片上添加图表。 +3. 访问您要更改颜色的系列类别。 +4. 设置您偏好的填充类型和填充颜色。 +5. 保存修改后的演示文稿。 + +此 JavaScript 代码示例演示了如何更改系列类别的颜色: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400); + var point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0); + point.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + point.getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **更改系列名称** + +默认情况下,图表的图例名称是每列或每行数据上方单元格的内容。 + +在我们的示例(示例图像)中, + +* 列分别为 *Series 1, Series 2,* 和 *Series 3*; +* 行分别为 *Category 1, Category 2, Category 3,* 和 *Category 4*。 + +Aspose.Slides for Node.js via Java 允许您在图表数据和图例中更新或更改系列名称。 + +此 JavaScript 代码示例演示了如何在其图表数据 `ChartDataWorkbook` 中更改系列名称: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1); + seriesCell.setValue("New name"); + pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +此 JavaScript 代码示例演示了如何通过 `Series` 在图例中更改系列名称: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Column3D, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries().get_Item(0); + var name = series.getName(); + name.getAsCells().get_Item(0).setValue("New name"); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置图表系列填充颜色** + +Aspose.Slides for Node.js via Java 允许您按以下方式为绘图区域内的图表系列设置自动填充颜色: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 根据您偏好的类型(示例中使用 `ChartType.ClusteredColumn`)添加带有默认数据的图表。 +4. 访问图表系列并将填充颜色设为 Automatic。 +5. 将演示文稿保存为 PPTX 文件。 + +此 JavaScript 代码示例演示了如何为图表系列设置自动填充颜色: +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 创建簇状柱形图 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 50, 600, 400); + // 将系列填充格式设置为自动 + for (var i = 0; i < chart.getChartData().getSeries().size(); i++) { + chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor(); + } + // 将演示文稿文件写入磁盘 + pres.save("AutoFillSeries_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置图表系列反转填充颜色** + +Aspose.Slides 允许您按以下方式为绘图区域内的图表系列设置反转填充颜色: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 根据您偏好的类型(示例中使用 `ChartType.ClusteredColumn`)添加带有默认数据的图表。 +4. 访问图表系列并将填充颜色设为 invert。 +5. 将演示文稿保存为 PPTX 文件。 + +此 JavaScript 代码演示了该操作: +```javascript +var inverColor = java.getStaticFieldValue("java.awt.Color", "RED"); +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 400, 300); + var workBook = chart.getChartData().getChartDataWorkbook(); + chart.getChartData().getSeries().clear(); + chart.getChartData().getCategories().clear(); + // 添加新的系列和类别 + chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1")); + chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2")); + chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3")); + // 获取第一个图表系列并填充其系列数据。 + var series = chart.getChartData().getSeries().get_Item(0); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30)); + var seriesColor = series.getAutomaticSeriesColor(); + series.setInvertIfNegative(true); + series.getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + series.getFormat().getFill().getSolidFillColor().setColor(seriesColor); + series.getInvertedSolidFillColor().setColor(inverColor); + pres.save("SetInvertFillColorChart_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **当值为负时设置系列反转** + +Aspose.Slides 允许您通过 `ChartDataPoint.setInvertIfNegative` 方法设置反转。当通过属性设置反转时,数据点在获得负值时会反转其颜色。 + +此 JavaScript 代码演示了该操作: +```javascript +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 600, 400, true); + var series = chart.getChartData().getSeries(); + chart.getChartData().getSeries().clear(); + var chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType()); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2)); + chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1)); + chartSeries.setInvertIfNegative(false); + chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true); + pres.save("out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **清除特定数据点的数据** + +Aspose.Slides for Node.js via Java 允许您按以下方式清除特定图表系列的 `DataPoints` 数据: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 通过索引获取幻灯片的引用。 +3. 通过索引获取图表的引用。 +4. 遍历所有图表 `DataPoints` 并将 `XValue` 和 `YValue` 设为 null。 +5. 为特定图表系列清除所有`DataPoints`。 +6. 将修改后的演示文稿写入 PPTX 文件。 + +此 JavaScript 代码演示了该操作: +```javascript +var pres = new aspose.slides.Presentation("TestChart.pptx"); +try { + var sl = pres.getSlides().get_Item(0); + var chart = sl.getShapes().get_Item(0); + for (let i = 0; i < chart.getChartData().getSeries().get_Item(0).getDataPoints().size(); i++) { + let dataPoint = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(i); + dataPoint.getXValue().getAsCell().setValue(null); + dataPoint.getYValue().getAsCell().setValue(null); + } + chart.getChartData().getSeries().get_Item(0).getDataPoints().clear(); + pres.save("ClearSpecificChartSeriesDataPointsData.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置系列间隙宽度** + +Aspose.Slides for Node.js via Java 允许您通过 **`GapWidth`** 属性设置系列的间隙宽度: + +1. 创建一个 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +2. 访问第一张幻灯片。 +3. 添加带有默认数据的图表。 +4. 访问任意图表系列。 +5. 设置 `GapWidth` 属性。 +6. 将修改后的演示文稿写入 PPTX 文件。 + +此 JavaScript 代码示例演示了如何设置系列的间隙宽度: +```javascript +// Creates empty presentation +var pres = new aspose.slides.Presentation(); +try { + // Accesses the presentation's first slide + var slide = pres.getSlides().get_Item(0); + // Adds a chart with default data + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn, 0, 0, 500, 500); + // Sets the index of the chart data sheet + var defaultWorksheetIndex = 0; + // Gets the chart data worksheet + var fact = chart.getChartData().getChartDataWorkbook(); + // Adds series + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // Adds Categories + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // Takes the second chart series + var series = chart.getChartData().getSeries().get_Item(1); + // Populates the series data + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // Sets GapWidth value + series.getParentSeriesGroup().setGapWidth(50); + // Saves presentation to disk + pres.save("GapWidth_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**单个图表可以包含的系列数量是否有限制?** + +Aspose.Slides 对您添加的系列数量没有固定上限。实际限制取决于图表的可读性以及您的应用程序可用的内存。 + +**如果簇内的柱形之间间距过近或过远怎么办?** + +调整该系列(或其父系列组)的 Gap Width 设置。增大数值会扩大柱形之间的间距,减小数值则会使它们更靠近。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md new file mode 100644 index 0000000000..7dc00a3f66 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/error-bar/_index.md @@ -0,0 +1,106 @@ +--- +title: 错误棒 +type: docs +url: /zh/nodejs-java/error-bar/ +--- + +## **添加误差棒** + +Aspose.Slides for Node.js via Java 提供了一个用于管理误差棒值的简单 API。当使用自定义值类型时适用示例代码。要指定值,请使用系列的 [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) 集合中特定数据点的 **ErrorBarCustomValues** 属性: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 在所需幻灯片上添加气泡图。 +1. 访问第一个图表系列并设置误差棒 X 格式。 +1. 访问第一个图表系列并设置误差棒 Y 格式。 +1. 设置误差棒的值和格式。 +1. 将修改后的演示文稿写入 PPTX 文件。 +```javascript +// 创建 Presentation 类实例 + var pres = new aspose.slides.Presentation(); + try { + // 创建气泡图 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // 添加误差棒并设置其格式 + var errBarX = chart.getChartData().getSeries().get_Item(0).getErrorBarsXFormat(); + var errBarY = chart.getChartData().getSeries().get_Item(0).getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Fixed); + errBarX.setValue(0.1); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Percentage); + errBarY.setValue(5); + errBarX.setType(aspose.slides.ErrorBarType.Plus); + errBarY.getFormat().getLine().setWidth(2.0); + errBarX.hasEndCap(); + // 保存演示文稿 + pres.save("ErrorBars.pptx", aspose.slides.SaveFormat.Pptx); + } finally { + if (pres != null) { + pres.dispose(); + } + } +``` + + +## **添加自定义误差棒值** + +Aspose.Slides for Node.js via Java 提供了一个用于管理自定义误差棒值的简单 API。当 [**ErrorBarsFormat.ValueType**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ErrorBarsFormat#getValue--) 属性等于 **Custom** 时适用示例代码。要指定值,请使用系列的 [**DataPoints**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/ChartSeriesCollection) 集合中特定数据点的 **ErrorBarCustomValues** 属性: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 在所需幻灯片上添加气泡图。 +1. 访问第一个图表系列并设置误差棒 X 格式。 +1. 访问第一个图表系列并设置误差棒 Y 格式。 +1. 访问图表系列的各个数据点并为单个系列数据点设置误差棒值。 +1. 设置误差棒的值和格式。 +1. 将修改后的演示文稿写入 PPTX 文件。 +```javascript +// 创建 Presentation 类实例 +var pres = new aspose.slides.Presentation(); +try { + // 创建气泡图 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.Bubble, 50, 50, 400, 300, true); + // 添加自定义误差棒并设置其格式 + var series = chart.getChartData().getSeries().get_Item(0); + var errBarX = series.getErrorBarsXFormat(); + var errBarY = series.getErrorBarsYFormat(); + errBarX.isVisible(); + errBarY.isVisible(); + errBarX.setValueType(aspose.slides.ErrorBarValueType.Custom); + errBarY.setValueType(aspose.slides.ErrorBarValueType.Custom); + // 访问图表系列数据点并为其设置误差棒值用于 + // 单个数据点 + var points = series.getDataPoints(); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForXMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYPlusValues(aspose.slides.DataSourceType.DoubleLiterals); + points.getDataSourceTypeForErrorBarsCustomValues().setDataSourceTypeForYMinusValues(aspose.slides.DataSourceType.DoubleLiterals); + // 为图表系列点设置误差棒 + for (var i = 0; i < points.size(); i++) { + points.get_Item(i).getErrorBarsCustomValues().getXMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getXPlus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYMinus().setAsLiteralDouble(i + 1); + points.get_Item(i).getErrorBarsCustomValues().getYPlus().setAsLiteralDouble(i + 1); + } + // 保存演示文稿 + pres.save("ErrorBarsCustomValues.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**将演示文稿导出为 PDF 或图像时误差棒会怎么样?** + +它们作为图表的一部分进行渲染,并在转换过程中与图表的其余格式一起保留下来,前提是使用兼容的版本或渲染器。 + +**误差棒可以与标记和数据标签组合使用吗?** + +可以。误差棒是独立的元素,且与标记和数据标签兼容;如果元素重叠,可能需要调整格式。 + +**在哪里可以找到用于操作误差棒的属性和枚举列表?** + +在 API 参考中:[ErrorBarsFormat](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarsformat/) 类以及相关枚举 [ErrorBarType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbartype/) 和 [ErrorBarValueType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/errorbarvaluetype/)。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md new file mode 100644 index 0000000000..1c11f06fd4 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-entities/trend-line/_index.md @@ -0,0 +1,103 @@ +--- +title: 趋势线 +type: docs +url: /zh/nodejs-java/trend-line/ +--- + +## **添加趋势线** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API,用于管理不同图表的趋势线: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 通过索引获取幻灯片的引用。 +1. 添加一个带有默认数据的图表,并使用任意所需类型(此示例使用 ChartType.ClusteredColumn)。 +1. 为图表系列 1 添加指数趋势线。 +1. 为图表系列 1 添加线性趋势线。 +1. 为图表系列 2 添加对数趋势线。 +1. 为图表系列 2 添加移动平均趋势线。 +1. 为图表系列 3 添加多项式趋势线。 +1. 为图表系列 3 添加幂趋势线。 +1. 将修改后的演示文稿写入 PPTX 文件。 + +以下代码用于创建带有趋势线的图表。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 创建聚类柱形图 + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 20, 500, 400); + // 为图表系列 1 添加指数趋势线 + var tredLinep = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Exponential); + tredLinep.setDisplayEquation(false); + tredLinep.setDisplayRSquaredValue(false); + // 为图表系列 1 添加线性趋势线 + var tredLineLin = chart.getChartData().getSeries().get_Item(0).getTrendLines().add(aspose.slides.TrendlineType.Linear); + tredLineLin.setTrendlineType(aspose.slides.TrendlineType.Linear); + tredLineLin.getFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + tredLineLin.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // 为图表系列 2 添加对数趋势线 + var tredLineLog = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.setTrendlineType(aspose.slides.TrendlineType.Logarithmic); + tredLineLog.addTextFrameForOverriding("New log trend line"); + // 为图表系列 2 添加移动平均趋势线 + var tredLineMovAvg = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setTrendlineType(aspose.slides.TrendlineType.MovingAverage); + tredLineMovAvg.setPeriod(3); + tredLineMovAvg.setTrendlineName("New TrendLine Name"); + // 为图表系列 3 添加多项式趋势线 + var tredLinePol = chart.getChartData().getSeries().get_Item(2).getTrendLines().add(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setTrendlineType(aspose.slides.TrendlineType.Polynomial); + tredLinePol.setForward(1); + tredLinePol.setOrder(3); + // 为图表系列 3 添加幂趋势线 + var tredLinePower = chart.getChartData().getSeries().get_Item(1).getTrendLines().add(aspose.slides.TrendlineType.Power); + tredLinePower.setTrendlineType(aspose.slides.TrendlineType.Power); + tredLinePower.setBackward(1); + // 保存演示文稿 + pres.save("ChartTrendLines_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **添加自定义线** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API,用于在图表中添加自定义线。要向演示文稿的选定幻灯片添加一条简单的普通线,请按照以下步骤操作: + +- 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例 +- 使用其 Index 获取幻灯片的引用 +- 使用 Shapes 对象提供的 AddChart 方法创建新图表 +- 使用 Shapes 对象提供的 AddAutoShape 方法添加 Line 类型的 AutoShape +- 设置形状线条的颜色。 +- 将修改后的演示文稿写入 PPTX 文件 + +以下代码用于创建带有自定义线的图表。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + var shape = chart.getUserShapes().getShapes().addAutoShape(aspose.slides.ShapeType.Line, 0, chart.getHeight() / 2, chart.getWidth(), 0); + shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + pres.save("Presentation.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**趋势线的 “forward” 和 “backward” 是什么意思?** + +它们是趋势线向前/向后延伸的长度:对于散点(XY)图表,以坐标轴单位表示;对于非散点图表,以类别数量表示。仅允许非负值。 + +**在将演示文稿导出为 PDF 或 SVG,或将幻灯片渲染为图像时,趋势线会被保留吗?** + +是的。Aspose.Slides 将演示文稿转换为 [PDF](/slides/zh/nodejs-java/convert-powerpoint-to-pdf/)/[SVG](/slides/zh/nodejs-java/render-a-slide-as-an-svg-image/),并将图表渲染为图像;趋势线作为图表的一部分,在这些操作中会被保留。还提供了一种方法可[导出图表的图像](/slides/zh/nodejs-java/create-shape-thumbnails/)。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md new file mode 100644 index 0000000000..0db74fe27c --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-formatting/_index.md @@ -0,0 +1,328 @@ +--- +title: 图表格式化 +type: docs +weight: 60 +url: /zh/nodejs-java/chart-formatting/ +--- + +## **格式化图表实体** + +Aspose.Slides for Node.js via Java 让开发人员能够从头开始向幻灯片添加自定义图表。本文介绍如何格式化不同的图表实体,包括图表类别轴和数值轴。 + +Aspose.Slides for Node.js via Java 提供了一个简单的 API,用于管理不同的图表实体并使用自定义值进行格式化: + +1. 创建 [**Presentation**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类的实例。 +1. 通过索引获取幻灯片的引用。 +1. 添加一个带有默认数据的图表,并指定所需的类型(在本例中我们将使用 ChartType.LineWithMarkers)。 +1. 访问图表的数值轴并设置以下属性: + 1. 为数值轴主网格线设置 **Line format** + 1. 为数值轴次网格线设置 **Line format** + 1. 为数值轴设置 **Number Format** + 1. 为数值轴设置 **Min, Max, Major and Minor units** + 1. 为数值轴数据设置 **Text Properties** + 1. 为数值轴设置 **Title** + 1. 为数值轴设置 **Line Format** +1. 访问图表的类别轴并设置以下属性: + 1. 为类别轴主网格线设置 **Line format** + 1. 为类别轴次网格线设置 **Line format** + 1. 为类别轴数据设置 **Text Properties** + 1. 为类别轴设置 **Title** + 1. 为类别轴设置 **Label Positioning** + 1. 为类别轴标签设置 **Rotation Angle** +1. 访问图表的图例并为其设置 **Text Properties** +1. 设置显示图表图例而不与图表重叠 +1. 访问图表的 **Secondary Value Axis** 并设置以下属性: + 1. 启用辅助 **Value Axis** + 1. 为辅助数值轴设置 **Line Format** + 1. 为辅助数值轴设置 **Number Format** + 1. 为辅助数值轴设置 **Min, Max, Major and Minor units** +1. 现在在辅助数值轴上绘制第一条图表系列 +1. 设置图表背墙的填充颜色 +1. 设置图表绘图区域的填充颜色 +1. 将修改后的演示文稿写入 PPTX 文件 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加示例图表 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.LineWithMarkers, 50, 50, 500, 400); + // 设置图表标题 + chart.hasTitle(); + chart.getChartTitle().addTextFrameForOverriding(""); + var chartTitle = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + chartTitle.setText("Sample Chart"); + chartTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chartTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + chartTitle.getPortionFormat().setFontHeight(20); + chartTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + chartTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // 为数值轴设置主网格线格式 + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + chart.getAxes().getVerticalAxis().getMajorGridLinesFormat().getLine().setDashStyle(aspose.slides.LineDashStyle.DashDot); + // 为数值轴设置次网格线格式 + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + chart.getAxes().getVerticalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // 设置数值轴数字格式 + chart.getAxes().getVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Thousands); + chart.getAxes().getVerticalAxis().setNumberFormat("0.0%"); + // 设置图表的最大、最小值 + chart.getAxes().getVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getVerticalAxis().setMaxValue(15.0); + chart.getAxes().getVerticalAxis().setMinValue(-2.0); + chart.getAxes().getVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getVerticalAxis().setMajorUnit(2.0); + // 设置数值轴文本属性 + var txtVal = chart.getAxes().getVerticalAxis().getTextFormat().getPortionFormat(); + txtVal.setFontBold(aspose.slides.NullableBool.True); + txtVal.setFontHeight(16); + txtVal.setFontItalic(aspose.slides.NullableBool.True); + txtVal.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtVal.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkGreen)); + txtVal.setLatinFont(new aspose.slides.FontData("Times New Roman")); + // 设置数值轴标题 + chart.getAxes().getVerticalAxis().hasTitle(); + chart.getAxes().getVerticalAxis().getTitle().addTextFrameForOverriding(""); + var valtitle = chart.getAxes().getVerticalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + valtitle.setText("Primary Axis"); + valtitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + valtitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + valtitle.getPortionFormat().setFontHeight(20); + valtitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + valtitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // 为类别轴设置主网格线格式 + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN")); + chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().setWidth(5); + // 为类别轴设置次网格线格式 + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW")); + chart.getAxes().getHorizontalAxis().getMinorGridLinesFormat().getLine().setWidth(3); + // 设置类别轴文本属性 + var txtCat = chart.getAxes().getHorizontalAxis().getTextFormat().getPortionFormat(); + txtCat.setFontBold(aspose.slides.NullableBool.True); + txtCat.setFontHeight(16); + txtCat.setFontItalic(aspose.slides.NullableBool.True); + txtCat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtCat.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE")); + txtCat.setLatinFont(new aspose.slides.FontData("Arial")); + // 设置类别标题 + chart.getAxes().getHorizontalAxis().hasTitle(); + chart.getAxes().getHorizontalAxis().getTitle().addTextFrameForOverriding(""); + var catTitle = chart.getAxes().getHorizontalAxis().getTitle().getTextFrameForOverriding().getParagraphs().get_Item(0).getPortions().get_Item(0); + catTitle.setText("Sample Category"); + catTitle.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + catTitle.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY")); + catTitle.getPortionFormat().setFontHeight(20); + catTitle.getPortionFormat().setFontBold(aspose.slides.NullableBool.True); + catTitle.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True); + // 设置类别轴标签位置 + chart.getAxes().getHorizontalAxis().setTickLabelPosition(aspose.slides.TickLabelPositionType.Low); + // 设置类别轴标签旋转角度 + chart.getAxes().getHorizontalAxis().setTickLabelRotationAngle(45); + // 设置图例文本属性 + var txtleg = chart.getLegend().getTextFormat().getPortionFormat(); + txtleg.setFontBold(aspose.slides.NullableBool.True); + txtleg.setFontHeight(16); + txtleg.setFontItalic(aspose.slides.NullableBool.True); + txtleg.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + txtleg.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.DarkRed)); + // 设置显示图例而不与图表重叠 + chart.getLegend().setOverlay(true); + // chart.ChartData.Series[0].PlotOnSecondAxis=true; + chart.getChartData().getSeries().get_Item(0).setPlotOnSecondAxis(true); + // 设置次要数值轴 + chart.getAxes().getSecondaryVerticalAxis().isVisible(); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setStyle(aspose.slides.LineStyle.ThickBetweenThin); + chart.getAxes().getSecondaryVerticalAxis().getFormat().getLine().setWidth(20); + // 设置次要数值轴数字格式 + chart.getAxes().getSecondaryVerticalAxis().isNumberFormatLinkedToSource(); + chart.getAxes().getSecondaryVerticalAxis().setDisplayUnit(aspose.slides.DisplayUnitType.Hundreds); + chart.getAxes().getSecondaryVerticalAxis().setNumberFormat("0.0%"); + // 设置图表的最大、最小值 + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMajorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMaxValue(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinorUnit(); + chart.getAxes().getSecondaryVerticalAxis().isAutomaticMinValue(); + chart.getAxes().getSecondaryVerticalAxis().setMaxValue(20.0); + chart.getAxes().getSecondaryVerticalAxis().setMinValue(-5.0); + chart.getAxes().getSecondaryVerticalAxis().setMinorUnit(0.5); + chart.getAxes().getSecondaryVerticalAxis().setMajorUnit(2.0); + // 设置图表背墙颜色 + chart.getBackWall().setThickness(1); + chart.getBackWall().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getBackWall().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE")); + chart.getFloor().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getFloor().getFormat().getFill().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED")); + // 设置绘图区域颜色 + chart.getPlotArea().getFormat().getFill().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getPlotArea().getFormat().getFill().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", aspose.slides.PresetColor.LightCyan)); + // 保存演示文稿 + pres.save("FormattedChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **为图表设置字体属性** + +Aspose.Slides for Node.js via Java 提供了对图表字体相关属性的设置支持。请按照以下步骤为图表设置字体属性。 + +- 实例化 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/presentation/) 类对象。 +- 在幻灯片上添加图表。 +- 设置字体高度。 +- 保存修改后的演示文稿。 + +下面给出示例。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 100, 100, 500, 400); + chart.getTextFormat().getPortionFormat().setFontHeight(20); + chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true); + pres.save("FontPropertiesForChart.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **设置数值格式** + +Aspose.Slides for Node.js via Java 提供了一个简单的 API,用于管理图表数据格式: + +1. 创建 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类的实例。 +1. 通过索引获取幻灯片的引用。 +1. 添加一个带有默认数据的图表,并指定所需的类型(本例使用 **ChartType.ClusteredColumn**)。 +1. 从可能的预设值中设置预设数字格式。 +1. 遍历每个图表系列中的图表数据单元格并设置图表数据数字格式。 +1. 保存演示文稿。 +1. 设置自定义数字格式。 +1. 遍历每个图表系列中的图表数据单元格并设置不同的图表数据数字格式。 +1. 保存演示文稿。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加默认的簇状柱形图 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 50, 50, 500, 400); + // 访问图表系列集合 + var series = chart.getChartData().getSeries(); + // 遍历每个图表系列 + for (var i = 0; i < series.size(); i++) { + var ser = series.get_Item(i); + // 遍历系列中的每个数据单元格 + for (var j = 0; j < ser.getDataPoints().size(); j++) { + var cell = ser.getDataPoints().get_Item(j); + // 设置数字格式 + cell.getValue().getAsCell().setPresetNumberFormat(java.newByte(10));// 0.00% + } + } + // 保存演示文稿 + pres.save("PresetNumberFormat.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +下面给出可能的预设数字格式值及其对应的预设索引,可供使用: + +|**0**|常规| +| :- | :- | +|**1**|0| +|**2**|0.00| +|**3**|#,##0| +|**4**|#,##0.00| +|**5**|$#,##0;$-#,##0| +|**6**|$#,##0;Red$-#,##0| +|**7**|$#,##0.00;$-#,##0.00| +|**8**|$#,##0.00;Red$-#,##0.00| +|**9**|0%| +|**10**|0.00%| +|**11**|0.00E+00| +|**12**|# ?/?| +|**13**|# /| +|**14**|m/d/yy| +|**15**|d-mmm-yy| +|**16**|d-mmm| +|**17**|mmm-yy| +|**18**|h:mm AM/PM| +|**19**|h:mm:ss AM/PM| +|**20**|h:mm| +|**21**|h:mm:ss| +|**22**|m/d/yy h:mm| +|**37**|#,##0;-#,##0| +|**38**|#,##0;Red-#,##0| +|**39**|#,##0.00;-#,##0.00| +|**40**|#,##0.00;Red-#,##0.00| +|**41**|_ * #,##0_ ;_ * "_ ;_ @_| +|**42**|_ $* #,##0_ ;_ $* "_ ;_ @_| +|**43**|_ * #,##0.00_ ;_ * "??_ ;_ @_| +|**44**|_ $* #,##0.00_ ;_ $* "??_ ;_ @_| +|**45**|mm:ss| +|**46**|h :mm:ss| +|**47**|[mm:ss.0](http://mmss.0)| +|**48**|##0.0E+00| +|**49**|@| + +## **设置图表区域圆角边框** + +Aspose.Slides for Node.js via Java 提供了对设置图表区域的支持。已在 [Chart](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart) 类中添加了方法 [**hasRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#hasRoundedCorners--) 和 [**setRoundedCorners**](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Chart#setRoundedCorners-boolean-)。 + +1. 实例化 [Presentation](https://reference.aspose.com/slides/nodejs-java/aspose.slides/Presentation) 类对象。 +1. 在幻灯片上添加图表。 +1. 设置图表的填充类型和填充颜色 +1. 将圆角属性设为 True。 +1. 保存修改后的演示文稿。 + +下面给出示例。 +```javascript +// 创建 Presentation 类的实例 +var pres = new aspose.slides.Presentation(); +try { + var slide = pres.getSlides().get_Item(0); + var chart = slide.getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 20, 100, 600, 400); + chart.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid)); + chart.getLineFormat().setStyle(aspose.slides.LineStyle.Single); + chart.setRoundedCorners(true); + pres.save("output.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **常见问题** + +**我能为柱形/区域设置半透明填充,同时保持边框不透明吗?** + +是的。填充透明度和轮廓是分别配置的。这有助于在密集的可视化中提高网格和数据的可读性。 + +**当数据标签重叠时,我该如何处理?** + +可以减小字体大小,禁用非必需的标签组件(例如类别),设置标签的偏移/位置,必要时仅对选定的数据点显示标签,或将格式切换为“数值 + 图例”。 + +**我能为系列应用渐变或图案填充吗?** + +可以。通常同时支持纯色填充和渐变/图案填充。实际使用时应适度使用渐变,并避免与网格和文字的对比度降低的组合。 \ No newline at end of file diff --git a/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md new file mode 100644 index 0000000000..c6dda72f83 --- /dev/null +++ b/zh/nodejs-java/developer-guide/presentation-content/powerpoint-charts/chart-types/3d-chart/_index.md @@ -0,0 +1,72 @@ +--- +title: 3D 图表 +type: docs +url: /zh/nodejs-java/3d-chart/ +--- + +## **设置 3D 图表的 RotationX、RotationY 和 DepthPercents 属性** + +Aspose.Slides for Node.js via Java 提供了一个用于设置这些属性的简易 API。本文将帮助您了解如何设置不同的属性,如 **X、Y 旋转、DepthPercents** 等。示例代码演示了上述属性的设置。 + +1. 创建 Presentation 类的实例。 +2. 访问第一张幻灯片。 +3. 添加包含默认数据的图表。 +4. 设置 Rotation3D 属性。 +5. 将修改后的演示文稿写入 PPTX 文件。 +```javascript +var pres = new aspose.slides.Presentation(); +try { + // 访问第一张幻灯片 + var slide = pres.getSlides().get_Item(0); + // 添加带默认数据的图表 + var chart = slide.getShapes().addChart(aspose.slides.ChartType.StackedColumn3D, 0, 0, 500, 500); + // 设置图表数据工作表的索引 + var defaultWorksheetIndex = 0; + // 获取图表数据工作表 + var fact = chart.getChartData().getChartDataWorkbook(); + // 添加系列 + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.getType()); + chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.getType()); + // 添加类别 + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2")); + chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3")); + // 设置 Rotation3D 属性 + chart.getRotation3D().setRightAngleAxes(true); + chart.getRotation3D().setRotationX(40); + chart.getRotation3D().setRotationY(270); + chart.getRotation3D().setDepthPercents(150); + // 获取第二个图表系列 + var series = chart.getChartData().getSeries().get_Item(1); + // 现在填充系列数据 + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10)); + series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60)); + // 设置 OverLap 值 + series.getParentSeriesGroup().setOverlap(100); + // 将演示文稿写入磁盘 + pres.save("Rotation3D_out.pptx", aspose.slides.SaveFormat.Pptx); +} finally { + if (pres != null) { + pres.dispose(); + } +} +``` + + +## **FAQ** + +**Aspose.Slides 支持哪些图表类型的 3D 模式?** + +Aspose.Slides 支持柱形图的 3D 变体,包括 Column 3D、Clustered Column 3D、Stacked Column 3D 和 100% Stacked Column 3D,以及通过[ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/)枚举公开的相关 3D 类型。有关完整、最新的列表,请查阅您所使用版本的 API 参考中的[ChartType](https://reference.aspose.com/slides/nodejs-java/aspose.slides/charttype/)成员。 + +**我可以获取 3D 图表的栅格图像用于报告或网页吗?** + +是的。您可以通过[chart API](https://reference.aspose.com/slides/nodejs-java/aspose.slides/shape/#getImage)将图表导出为图像,或将整张幻灯片渲染为 PNG、JPEG 等格式。这在需要像素级预览或将图表嵌入文档、仪表盘或网页而无需 PowerPoint 时非常有用。 + +**构建和渲染大型 3D 图表的性能如何?** + +性能取决于数据量和视觉复杂度。为获得最佳效果,请尽量保持 3D 效果最小化,避免在墙面和绘图区域使用大量纹理,尽可能限制每个系列的数据点数量,并将渲染输出为适当尺寸(分辨率和尺寸),以匹配目标显示或打印需求。 \ No newline at end of file diff --git a/zh/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md b/zh/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md index 6148030aef..3929914207 100644 --- a/zh/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md +++ b/zh/python-net/developer-guide/presentation-content/manage-text/presentation-localization/_index.md @@ -12,7 +12,7 @@ keywords: - 演示文稿 - Python - Aspose.Slides -description: "使用 Aspose.Slides 在 Python 中自动化 PowerPoint 和 OpenDocument 幻灯片本地化,提供实用代码示例和技巧,加速全球部署。" +description: "使用 Aspose.Slides 在 Python 中自动化 PowerPoint 和 OpenDocument 幻灯片的本地化,提供实用的代码示例和技巧,以加快全球部署。" --- ## **更改演示文稿和形状文本的语言** @@ -20,10 +20,10 @@ description: "使用 Aspose.Slides 在 Python 中自动化 PowerPoint 和 OpenDo - 通过使用索引获取幻灯片的引用。 - 向幻灯片添加矩形类型的 AutoShape。 - 向 TextFrame 添加一些文本。 -- 设置文本的 Language Id。 -- 将演示文稿写入为 PPTX 文件。 +- 为文本设置 Language Id。 +- 将演示文稿写入 PPTX 文件。 -以下示例演示了上述步骤的实现。 +下面的示例演示了上述步骤的实现。 ```py import aspose.slides as slides @@ -37,14 +37,15 @@ with slides.Presentation("pres.pptx") as pres: ## **常见问题** -**language_id 会触发自动文本翻译吗?** -否。Aspose.Slides 中的 [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) 用于存储拼写检查和语法校对的语言,但它不会翻译或更改文本内容。它是 PowerPoint 用于校对的元数据。 +**语言 ID 会触发自动文本翻译吗?** -**language_id 会影响渲染时的连字符和换行吗?** +不会。Aspose.Slides 中的 [language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) 用于存储拼写检查和语法校对的语言,但它不会翻译或更改文本内容。这是 PowerPoint 用于校对的元数据。 -In Aspose.Slides 中,[language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) 用于校对。连字符质量和换行主要取决于[适当的字体](/slides/zh/python-net/powerpoint-fonts/)的可用性以及书写系统的布局/换行设置。为了确保正确渲染,请提供所需字体,配置[字体替换规则](/slides/zh/python-net/font-substitution/),并/或将[嵌入字体](/slides/zh/python-net/embedded-font/)嵌入演示文稿。 +**语言 ID 会影响渲染时的连字符和换行吗?** -**我可以在同一段落中设置不同的语言吗?** +在 Aspose.Slides 中,[language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) 用于校对。连字符质量和换行主要取决于[适当的字体](/slides/zh/python-net/powerpoint-fonts/)以及书写系统的布局/换行设置。要确保正确渲染,请提供所需字体,配置[字体替代规则](/slides/zh/python-net/font-substitution/),并/或[嵌入字体](/slides/zh/python-net/embedded-font/)到演示文稿。 -是的。[language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) 在文本片段级别应用,因此单个段落可以混合多种语言并具有不同的校对设置。 \ No newline at end of file +**我可以在单个段落中设置不同的语言吗?** + +可以。[language_id](https://reference.aspose.com/slides/python-net/aspose.slides/portionformat/language_id/) 应用于文本段落级别,因此单个段落可以混合多种语言并使用不同的校对设置。