Korlátok és API különbségek

Nyilvános API különbségek

Ez a lista, mintakód szegmenseket használva, bizonyos különbségeket mutat be az Aspose.Slides for Java és az Aspose.Slides for PHP via Java API-k között.

Könyvtár importálása (Csomag összehasonlítások)

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;

Új prezentáció példányosítása

Aspose.Slides for Java

Presentation presentation = new Presentation();

Aspose.Slides for PHP via Java

$presentation = new Presentation();

Enumok vagy állandók

Aspose.Slides for Java

arc2.getLineFormat().setDashStyle(MsoLineDashStyle.SOLID);

Aspose.Slides for PHP via Java

$arc2->getLineFormat()->setDashStyle(slides\MsoLineDashStyle::SOLID);

Példa

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
    {
        // Létrehoz egy Presentation objektumot, amely egy prezentációfájlt képvisel
        Presentation pres = new Presentation();
        try
        {
            // Lekéri az első diát
            ISlide slide = pres.getSlides().get_Item(0);

            // Hozzáad egy autóalakzatot, amelynek típusa vonal
            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
{
    // Lekéri az első diát
    $slide = $pres->getSlides()->get_Item(0);

    // Hozzáad egy autóalakzatot, amelynek típusa vonal
    $slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
    $pres->save("NewPresentation_out.pptx", SaveFormat::Pptx);
}
finally
{
    if (!java_is_null($pres)) $pres->dispose();
}
?>

Az Aspose.Slides for PHP via Java API többi korlátozása az Aspose.Slides for Java API-hoz képest

Az Aspose.Slides névterek és a használatukban lévő Java osztályok a PhpJavaBridge által a com.aspose.slides csomag azonos nevű Java osztályai fölött létrehozott wrapper-ek.

1. Java paraméterek és argumentumok becsomagolása

A visszaadott és elfogadott paraméterek és argumentumok wrapper-ek a Java osztályok azonos nevén. Csak a karakterláncok és numerikus típusok konvertálódnak automatikusan. A tömbök, gyűjtemények, bájtok és logikai értékek nem konvertálódnak.

Gyakori hiba:

if ($node->isAssistant()) - wrong!
if (java_values($node->isAssistant())) - correct!

2. Java osztály kiterjesztése és az instanceof operátor

Nem lehet egy PHP osztályból kiterjeszteni egy Java osztályt. Megoldásként szükség esetén kompozíciót valósíthat meg. Az instanceof operátor csak konkrét osztályra működik, nem működik egy osztály interfészére vagy ősosztályára.

workaround

3. A Java tömb NEM egy PHP tömb

Java tömb létrehozása PHP-ben:

$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. A Java tömb hossza

$data->length; - does NOT work

workaround

$Array = new JavaClass("java.lang.reflect.Array");
$Array->getLength($data);

5. A Java Files.readAllBytes metódus

$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. A Java Files.write metódus

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();
}