在PHP中使用文字打印输出

问题描述

我正在使用PHP COM来操纵msword。

$word->PrintOut(false,empty,....);

某些参数/变量是“可选的”,但不能设置为null或“”或0

会抛出错误参数16:类型不匹配(已翻译)

我发现有人在 C#(“空/未设置”)中使用“ System.Reflection.Missing.Value

但是,如何在PHP中使用它呢?或类似的东西。

谢谢

我想在带有参数的PHP中使用 PrintOut

https://docs.microsoft.com/en-us/office/vba/api/word.document.printout

解决方法

我又放弃了。

使用vba宏,然后在php中调用,在参数后面加上,

import React,{ useContext,useState,useRef } from "react";
import {
  PanGestureHandler,PanGestureHandlerStateChangeEvent,State,} from "react-native-gesture-handler";
import { Animated,Dimensions } from "react-native";
import { RouteProp,useNavigation,useRoute } from "@react-navigation/native";
import { ThemeContext } from "styled-components/native";
import { Feather } from "@expo/vector-icons";

import Wrapper from "../../components/Wrapper";
import Bag from "../../components/Bag";
import CupSize from "../../components/CupSize";

import { useCart } from "../../contexts/cart";

const { height } = Dimensions.get("window");

import {
  Main,Container,Content,Header,LeftSide,Button,Heading,ImageBackground,Image,Circle,Title,Description,ProductOptions,PriceRow,PricePrefix,IntegerPart,DecimalPart,Sizes,Small,Medium,Large,AddButton,AddButtonText,PushBar,} from "./styles";

const Product: React.FC = () => {
  const navigation = useNavigation();
  const { colors } = useContext(ThemeContext);
  const { addToCart,clearCart,items } = useCart();

  const translateY = useRef(new Animated.Value(0)).current;
  let offset = useRef(0).current;
  let opened = useRef(false).current;

  const animatedEvent = Animated.event(
    [
      {
        nativeEvent: {
          translationY: items.length ? translateY : new Animated.Value(0),},],{
      useNativeDriver: true,}
  );

  const { product } = useRoute<RouteProp<ParamList,"Produto">>().params;

  const [active,setActive] = useState("large");
  const [total,setTotal] = useState(product.prices.large.toFixed(2));

  function isActive(size: string) {
    return active === size;
  }

  function handleSelect(size: string) {
    setActive(size);
    setTotal(product.prices[size].toFixed(2));
  }

  function splitDecimal(number: string) {
    const [integer,decimal] = number.split(".");
    return [integer,"." + decimal];
  }

  function handleAddProduct(item: typeof product) {
    Animated.timing(translateY,{
      toValue: -85,duration: 350,useNativeDriver: true,}).start(() => {});

    const formattedItem = {
      id: item.id,title: item.title,image: item.image,size: active,price: total,flavor: item.flavor,amount: 0,};

    addToCart(formattedItem);
  }

  function onHandlerStateChanged(event: PanGestureHandlerStateChangeEvent) {
    if (event.nativeEvent.oldState === State.ACTIVE && items.length) {
      let { translationY } = event.nativeEvent;

      offset += translationY;

      if (translationY <= -100 || offset <= -height + 100) {
        opened = true;
      } else {
        opened = false;

        translateY.setValue(offset);
        translateY.setOffset(0);
      }

      Animated.timing(translateY,{
        toValue: opened ? -height : 0,}).start(() => {
        offset = opened ? -height : 0;
        translateY.setOffset(offset);
        translateY.setValue(0);
      });
    }
  }

  return (
    <Wrapper>
      <Main>
        <PanGestureHandler
          onGestureEvent={animatedEvent}
          onHandlerStateChange={onHandlerStateChanged}
        >
          <Container
            style={{
              transform: [
                {
                  translateY: translateY.interpolate({
                    inputRange: [(height - 30) * -1,0],outputRange: [(height - 30) * -1,extrapolate: "clamp",}),}}
          >
            <Content
              style={{
                transform: [
                  {
                    translateY: translateY.interpolate({
                      inputRange: [height * -1,outputRange: [(height / 8) * -1,opacity: translateY.interpolate({
                  inputRange: [(height / 1.2) * -1,(height / 2) * -1],outputRange: [0.1,1],}}
            >
              <Header>
                <LeftSide>
                  <Button onPress={() => navigation.goBack()}>
                    <Feather
                      name="chevron-left"
                      size={32}
                      color={colors.heading}
                      style={{ marginLeft: -10 }}
                    />
                  </Button>
                  <Heading>{product.title}</Heading>
                </LeftSide>
                <Button onPress={() => clearCart()}>
                  <Feather name="heart" size={26} color={colors.heading} />
                </Button>
              </Header>
              <ImageBackground>
                <Image source={product.image} />
                <Circle />
              </ImageBackground>

              <Title>{product.flavor + " " + product.title}</Title>

              <Description>{product.description}</Description>
              <ProductOptions>
                <PriceRow>
                  <PricePrefix>$ </PricePrefix>
                  <IntegerPart duration={400}>
                    {splitDecimal(total)[0]}
                  </IntegerPart>
                  <DecimalPart duration={400}>
                    {splitDecimal(total)[1]}
                  </DecimalPart>
                </PriceRow>
                <Sizes>
                  <Small
                    active={isActive("small")}
                    onPress={() => handleSelect("small")}
                  >
                    <CupSize
                      height={30}
                      active={isActive("small")}
                      size="small"
                    />
                  </Small>
                  <Medium
                    active={isActive("medium")}
                    onPress={() => handleSelect("medium")}
                  >
                    <CupSize
                      height={34}
                      active={isActive("medium")}
                      size="medium"
                    />
                  </Medium>
                  <Large
                    active={isActive("large")}
                    onPress={() => handleSelect("large")}
                  >
                    <CupSize
                      height={38}
                      active={isActive("large")}
                      size="large"
                    />
                  </Large>
                </Sizes>
              </ProductOptions>
              <AddButton onPress={() => handleAddProduct(product)}>
                <AddButtonText>Add to Bag</AddButtonText>
              </AddButton>
            </Content>
            <PushBar
              style={{
                opacity: translateY.interpolate({
                  inputRange: [-100,-85],outputRange: [1,}}
            />
          </Container>
        </PanGestureHandler>
        <Bag
          animatedEvent={animatedEvent}
          onHandlerStateChanged={onHandlerStateChanged}
          translateY={translateY}
        />
      </Main>
    </Wrapper>
  );
};

export default Product;

用文字

$word->run('macro_to_printout',$copies);

比这更多的vba帮助,不要浪费您时间在php com上