सीमाओं और API अंतर
सार्वजनिक API अंतर
यह सूची, नमूना कोड अंशों का उपयोग करके, Aspose.Slides for Java और Aspose.Slides for PHP via Java API के बीच कुछ अंतर दर्शाती है।
लाइब्रेरी आयात (पैकेज तुलना)
Aspose.Slides for Java
import com.aspose.slides.*;
Aspose.Slides for PHP via Java
require_once("Java.inc");
require_once("lib/aspose.slides.php");
use aspose\sldes;
use aspose\sldes\Presentation;
नए प्रेजेंटेशन का निर्माण
Aspose.Slides for Java
Presentation presentation = new Presentation();
Aspose.Slides for PHP via Java
$presentation = new Presentation();
एनम्स या स्थिरांक
Aspose.Slides for Java
arc2.getLineFormat().setDashStyle(MsoLineDashStyle.SOLID);
Aspose.Slides for PHP via Java
$arc2->getLineFormat()->setDashStyle(slides\MsoLineDashStyle::SOLID);
उदाहरण
Aspose.Slides for Java
import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ShapeType;
public class Test
{
public static void main(String[] args) throws Exception
{
// एक प्रस्तुति फ़ाइल को दर्शाने वाला Presentation ऑब्जेक्ट बनाता है
Presentation pres = new Presentation();
try
{
// पहली स्लाइड प्राप्त करता है
ISlide slide = pres.getSlides().get_Item(0);
// लाइन प्रकार के साथ एक ऑटोशेप जोड़ता है
slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
pres.save("NewPresentation_out.pptx", SaveFormat.Pptx);
}
finally
{
if (pres != null) pres.dispose();
}
}
}
Aspose.Slides for PHP via Java
<?php
require_once("Java.inc");
require_once("lib/aspose.slides.php");
use aspose\slides;
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
use aspose\slides\SaveFormat;
$pres = new Presentation();
try
{
// पहली स्लाइड प्राप्त करता है
$slide = $pres->getSlides()->get_Item(0);
// लाइन प्रकार के साथ एक ऑटोशेप जोड़ता है
$slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
$pres->save("NewPresentation_out.pptx", SaveFormat::Pptx);
}
finally
{
if (!java_is_null($pres)) $pres->dispose();
}
?>
Aspose.Slides for PHP via Java API की अन्य सीमाएँ, Aspose.Slides for Java API की तुलना में
Aspose.Slides नेमस्पेस और वे Java क्लासेज जिन्हें वे उपयोग करते हैं, PhpJavaBridge द्वारा उनके समान नाम वाले Java क्लासेज (com.aspose.slides पैकेज) के ऊपर बनाए गए रैपर होते हैं।
1. Java पैरामीटर और तर्कों को रैप करना
वे पैरामीटर और तर्क जो वे लौटाते और स्वीकार करते हैं, समान नाम वाले Java क्लासेज के ऊपर बनाए गए रैपर होते हैं। केवल स्ट्रिंग्स और संख्यात्मक प्रकार स्वचालित रूप से परिवर्तित होते हैं। एरेज़, कलेक्शन, बाइट्स, और बूलियन्स परिवर्तित नहीं होते।
एक आम गलती:
if ($node->isAssistant()) - wrong!
if (java_values($node->isAssistant())) - correct!
2. Java क्लास को विस्तारित करना और instanceof ऑपरेटर
आप PHP क्लास से Java क्लास को विस्तारित नहीं कर सकते। एक वैकल्पिक उपाय के रूप में, आवश्यक होने पर आप संरचना (composition) लागू कर सकते हैं।
instanceof ऑपरेटर केवल ठोस क्लास के लिए काम करता है। यह क्लास के इंटरफ़ेस या पैरेंट क्लास के लिए कार्य नहीं करता।
3. Java एरे PHP एरे नहीं है
PHP में Java एरे निर्माण:
$Array = new JavaClass("java.lang.reflect.Array");
$Integer = new JavaClass("java.lang.Integer");
$IntegerArray = $Array->newInstance($Integer, 2);
$IntegerArray[0] = 1;
$IntegerArray[1] = 0;
4. Java एरे की लंबाई
$data->length; - does NOT work
workaround
$Array = new JavaClass("java.lang.reflect.Array");
$Array->getLength($data);
5. Java मेथड Files.readAllBytes
$htmlBytes = Files->readAllBytes(Paths->get("embedOle.html")); - does NOT work
workaround
$file = new Java("java.io.File", "embedOle.html");
$Array = new JavaClass("java.lang.reflect.Array");
$Byte = new JavaClass("java.lang.Byte");
$htmlBytes = $Array->newInstance($Byte, $Array->getLength($file));
try {
$dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", $file));
$dis->readFully($htmlBytes);
} finally {
if (!java_is_null($dis)) $dis->close();
}
6. Java मेथड Files.write
Files->write(new File($path)->toPath(), $fontData, StandardOpenOption::CREATE); - does NOT work
workaround
$fstr = new Java("java.io.FileOutputStream", $path);
$Array = new java_class("java.lang.reflect.Array");
try {
$fstr->write($fontData, 0, $Array->getLength($fontData));
} finally {
$fstr->close();
}